查看當前登錄用戶:
創建用戶:
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 '主機名'@'主機地址';