查看当前登录用户:
创建用户:
create user '用户名'@'主机地址' identified with mysql_native_password by '密码';
修改密码:
alter user '用户名'@'主机地址' identified with mysql_native_password by '新密码';
原因是:在mysql 5.7.9版本以后废弃了password字段和password()函数,并加密方式默认不是使用mysql_native_password再mysql8以上版本中caching_sha2_password和sha256_password认证插件比mysql_native_password插件提供的密码加密更加安全,并且caching_sha2_password加密比sha256_password的加密性能更好。由于caching_sha2_password这样优秀的安全和性能特性,让他作为MySQL8.0的默认首选认证插件,这也是默认的认证插件插件而不是mysql_native_password。
所以mysql8默认是caching_sha2_password加密,5.7.9版本后的版本默认是mysql_native_password
可以在创建和修改时使用identified with mysql_native_password来指定加密方式
mysql8使用alter user来修改用户密码:
兼容8版本下的修改密码方式只需要将加密方式写成mysql_native_password即可:
alert user的手册
新密码认证方式,官方解释
检查用户信息:
命令: select user,host,plugin,authentication_string from mysql.user;
mysql的用户信息都存储在mysql数据中的user表中,其实这就是查询这些对应字段而已
以上掌握了基本的用户创建,密码修改,和查看用户信息,但怎么修改一个账号的权限呢?
答:
授权所有权限
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'主机地址';
授权基本的查询修改权限,指定指定权限授权给账号
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO '用户名'@'主机名';
select是查询 insert是插入 update是更新 delete是删除 create是创建 drop是删除 alter是修改等权限
查看用户权限
show grants for '主机名'@'主机地址';