如果您在使用mysql創建角色時遇到了問題,這篇文章可能會對您有所幫助。
場景:
# 創建一個名為test的角色,指定其密碼為123456 CREATE USER 'test'@'localhost' IDENTIFIED BY '123456'; # 給test角色授權,使其能夠進入mytest庫 GRANT ALL PRIVILEGES ON mytest.* TO 'test'@'localhost';
問題:
執行以上命令后,您發現無法登錄到mysql,提示您的賬戶或密碼有誤。
原因:
創建用戶的命令是正確的,但是缺少了一個步驟,即重新加載授權表。
# 加載授權表 FLUSH PRIVILEGES;
解決方案:
重新執行以上命令,在最后添加刷新授權表的命令,即:
# 創建一個名為test的角色,指定其密碼為123456 CREATE USER 'test'@'localhost' IDENTIFIED BY '123456'; # 給test角色授權,使其能夠進入mytest庫 GRANT ALL PRIVILEGES ON mytest.* TO 'test'@'localhost'; # 刷新授權表 FLUSH PRIVILEGES;
提示:
在mysql中,授權數據庫的命令是由mysql.user表來存儲的,使用GRANT或REVOKE命令后,需要執行FLUSH PRIVILEGES命令才能刷新該表,否則新授權的權限無法生效。