一、数据库操作
1.1 创建数据库语法
创建名称为“testdb”数据库,并设定编码集为utf8
create database if not exists testdb default charset utf8 collate utf8_general_ci;
1.2 删除数据库语法
删除名称为“testdb”数据库
drop database testdb;
二、用户操作
2.1 新建用户
创建了一个名为:test 密码为:1234 的用户
create user 'test'@'localhost' identified by '1234';
注意
:此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录。如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
2.2 查询用户
查询用户
select user,host from mysql.user;
2.3 删除用户
删除用户“test”
drop user test@localhost ;
或者
delete from mysql.user where user='test';
若创建的用户允许任何电脑登陆,删除用户如下
drop user test@'%';
2.4 更改密码
方法1,密码实时更新;修改用户“test”的密码为“1122”
set password for test =password('1122');
方法2,需要刷新;修改用户“test”的密码为“1234”
update mysql.user set password=password('1234') where user='test'
方法3,服务器上访问改密码
set password = password('19920503');
alter user 'root'@'localhost' password expire never;
flush privileges;
2.5 查看用户权限
查看用户“test”
show grants for test;
2.6 用户分配权限
授予用户test通过外网IP对数据库“testdb”的全部权限
grant all privileges on 'testdb'.* to 'test'@'%' identified by '1234';
授予用户“test”通过外网IP对于该数据库“testdb”中表的创建、修改、删除权限,以及表数据的增删查改权限
grant create,alter,drop,select,insert,update,delete on testdb.* to test@'%';
2.7 取消用户权限
取消用户所有数据库(表)的所有权限
revoke all on . from tester;
2.8 快速脚本
创建数据、创建用户,并分配权限
create database fb_quartz default character set utf8 collate utf8_general_ci;
create user 'fb'@'%' identified by 'febs#123';
create user 'fb'@'localhost' identified by 'febs#123';
grant all privileges on fb_quartz.* to 'fb'@'%' identified by 'febs#123';
grant all privileges on fb_quartz.* to 'fb'@'localhost' identified by 'febs#123';
flush privileges;
三、其他
3.1 表空间回收
1、drop table table_name 立刻释放磁盘空间 ,不管是 InnoDB和MyISAM
2、truncate table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM 。
truncate table其实有点类似于drop table 然后create。只不过这个create table 的过程做了优化,比如表结构文件之前已经有了等等,就不需要重新再搞一把。所以速度上应该是接近drop table的速度。
3、对于delete from table_name 删除表的全部数据
对于MyISAM 会立刻释放磁盘空间 (应该是做了特别处理,也比较合理); InnoDB 不会释放磁盘空间
4、对于delete from table_name where xxx带条件的删除
不管是innodb还是MyISAM都不会释放磁盘空间。
5、delete操作以后 使用optimize table table_name 会立刻释放磁盘空间。不管是InnoDB还是MyISAM 。
所以要想达到清理数据的目的,请delete以后执行optimize table 操作。
6、delete from表 以后虽然未释放磁盘空间,但是下次插入数据的时候,仍然可以使用这部分空间