MySQL数据库之DCL(数据控制语言)
进入mysql:mysql -uroot -p或者mysql -uroot -h127.0.0.1 -p(host默认为127.0.0.1)
mysql> use mysql;
mysql> update user set host = 'ip' where user = 'root';
mysql> select host, user from user;
mysql> flush privileges;
2.MySQL之DCL修改密码以及忘记密码的解决
MySQL8.0修改密码问题:MySQL8.0后请使用alter修改用户密码,因为在MySQL8.0以后的加密方式为caching_sha2_password,如果使用update修改密码会给user表中root用户的authentication_string字段下设置newpassowrd值,当再使用alter user 'root'@'localhost' identified by 'newpassword'修改密码时会一直报错,必须清空后再修改,因为authentication_string字段下只能是MySQL加密后的43位字符串密码,其他的会报格式错误,所以在MySQL8.0以后能修改密码的方法只能是:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
3.MySQL之DCL普通用户的创建授权以及权限回收
一般地,一个项目对应一个数据库;
(1)创建用户
create user 用户名@'IP地址' identified by '密码';
注意:此用户只能在制定的IP上使用 所有的IP要用%。
(2)用户授权
grant 权限1,权限2,...... on 数据库名.* to 用户名 @IP地址或者%
注意:所有的数据库就用*.*,所有的权限就用all或者all privileges
(3)撤销权限
revoke 权限1,权限2,...... on 数据库名.*from 用户名 @IP地址或者%
4.MySQL之DCL用户权限的查看以及用户的删除
(1)查看权限
show grants for 用户名@IP地址;
(2)删除用户
drop user 用户名@IP地址;