最近使用MySQL的用戶可能會受到一些困擾,因為他們會發現原來的用戶賬號不能夠使用了。這是因為MySQL升級到了8.0版本,對于之前的一些用戶授權規則進行了改變,導致原來的授權無法生效。
例如,原本我們可能會使用下面的命令給一個用戶賦予所有數據庫的訪問權限: GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost'; 然而,在MySQL 8.0版本中,這個命令會出現以下錯誤提示: ERROR 1396 (HY000): Operation CREATE USER failed for 'username'@'localhost'
這是因為MySQL 8.0版本中增加了密碼驗證插件,而這個插件需要用戶名和密碼兩個參數才能進行授權。我們需要修改原有的命令為:
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost';
這樣,我們就可以正常地將權限授予給用戶了。
除了這個問題,MySQL 8.0版本還有其他一些改變和增加的功能,需要使用者做好充分的研究和準備,以便更好地使用這個數據庫系統。