作為最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,MySQL在使用中需要設(shè)置相應(yīng)的用戶權(quán)限。其中,root賬戶被認(rèn)為是最高權(quán)限的賬戶,可以進(jìn)行數(shù)據(jù)庫及用戶管理等操作。然而,在一些情況下,MySQL并不允許root賬戶進(jìn)行登錄。
mysql -u root -p ERROR 1698 (28000): Access denied for user 'root'@'localhost'
上面的錯誤提示表明,root賬戶無法登錄MySQL。這是因?yàn)镸ySQL在默認(rèn)情況下只允許通過本地套接字(localhost)而非TCP/IP連接方式進(jìn)行登錄,防止遠(yuǎn)程攻擊。
為了解決這個問題,可以通過以下步驟允許root賬戶進(jìn)行登錄:
# 修改MySQL配置文件/etc/mysql/my.cnf sudo vi /etc/mysql/my.cnf # 在[mysqld]區(qū)塊中添加如下配置 [mysqld] skip-grant-tables skip-networking # 保存并退出配置文件 # 重啟MySQL服務(wù) sudo service mysql restart # 以root賬戶登錄MySQL mysql -u root
上述配置通過關(guān)閉MySQL的安全檢查和網(wǎng)絡(luò)連接限制,使得root賬戶可以直接登錄MySQL。不過,這種方式需要注意安全風(fēng)險,并且只適用于開發(fā)或測試環(huán)境。