最近,我在使用MySQL命令行時遇到了一個問題:無法使用命令行。
當我嘗試使用如下命令時:
mysql -u USERNAME -p PASSWORD
命令行返回了一個錯誤消息:
'Access denied for user 'USERNAME'@'localhost' (using password: YES)'
我知道我的用戶名和密碼是正確的,因為我可以在phpMyAdmin中使用它們。因此,我決定排除用戶權限的問題,并檢查MySQL服務器是否正在運行。
我在終端中輸入以下命令:
sudo service mysql status
執行命令后,終端顯示:“MySQL服務器正在運行”,說明MySQL服務器已在運行。
然后我檢查MySQL錯誤日志,看看是否有任何錯誤。
sudo tail /var/log/mysql/error.log
若干行日志后,我發現以下錯誤:
Can't open and lock privilege tables: Table 'mysql.servers' doesn't exist
這個錯誤消息告訴我,MySQL無法打開和鎖定權限表,因為`mysql.servers`表不存在。為什么它缺少呢?
我檢查了MySQL安裝并發現我的MySQL安裝沒有安裝`mysql`數據表:
sudo apt-get install mysql-server sudo apt-get install mysql-client sudo apt-get install mysql-common
我應該運行以下命令來修復它:
sudo mysql_install_db sudo service mysql restart
在執行以上命令后,我再次使用用戶名和密碼登錄MySQL命令行,它開始正常工作了。
綜上所述,當MySQL命令行無法使用時,請檢查MySQL是否正在運行,并檢查MySQL錯誤日志,以查看任何問題。您也可以嘗試重新安裝MySQL并運行mysql_install_db命令來修復它。
下一篇react vue性能