DCL (Data Control Language)
创建用户:
CREATE USER 用户名@IP地址 IDENTIFIED BY '密码';:用户只能在指定的 IP 地址上登录CREATE USER 用户名@'%' IDENTIFIED BY '密码';:用户可以在任意 IP 地址上登录
示例:
CREATE USER zhangsan@localhost IDENTIFIED BY '123';给用户授权:
GRANT 权限1, … , 权限n ON 数据库.* TO 用户名@IP地址;:给用户分派在指定的数据库上的指定的权限GRANT ALL ON 数据库.* TO 用户名@IP地址;:给用户分派指定数据库上的所有权限
示例:
GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON mydb1.* TO user1@localhost;撤销授权:
REVOKE 权限1, … , 权限n ON 数据库.* FROM 用户名@IP地址;
查看权限:
SHOW GRANTS FOR 用户名@IP地址;
删除用户:
DROP USER 用户名@IP地址;
MySQL的编码问题
查看 MySQL 数据库编码:SHOW VARIABLES LIKE 'char%';
在 windows 控制台下乱码原因:
因为character_set_client和character_set_results这两个变量的编码设置有问题。
character_set_client:MySQL使用该编码来解读客户端发送过来的数据,例如该编码为 utf8,那么如果客户端发送过来的数据不是 utf8,那么就会出现乱码。
character_set_results:MySQL会把数据转换成该编码后,再发送给客户端,例如该编码为 utf8,那么如果客户端不使用 utf8 来解读,那么就会出现乱码。
设置变量的语句:
SET character_set_client=gbk;
SET character_set_results=gbk;注意:设置变量只对当前连接有效,当退出窗口后,再次登录 mysql,还需要再次设置变量。
**一劳永逸的办法:**修改 MySQL 配置文件 my.ini :default-character-set=utf8修改为default-character-set=gbk,它可以修改三个变量:character_set_client,character_set_results,character_set_connection。
MySQL 的备份与恢复
备份
在 MySQL 外执行:
mysqldump -u用户名 -p密码 数据库名>生成的脚本文件路径
mysqldump -uroot -p123 mydb1>C:\mydb1.sql恢复
第一种方式:
- 先在数据库中创建一个空的要恢复的数据库,然后退出数据库
- 然后执行:
mysql -u用户名 -p密码 数据库<脚本文件路径
mysql -u用户名 -p密码 数据库<脚本文件路径
mysql -uroot -p123 mydb1<C:\mydb1.sql第二种方式:
- 先在数据库中创建一个空的要恢复的数据库
- 然后执行:
source SQL脚本路径
mysql -u用户名 -p密码
sourse C:\mydb1.sql