整理了 9 類高頻 MySQL 連接/啟動報錯,涵蓋 Windows/Linux 環境、Java 驅動、權限、配置文件損壞等場景,附帶具體解決步驟與命令。
'mysql' 不是內部或外部命令(Windows)場景:CMD 下執行 mysql 報錯。
原因:未將 MySQL bin 目錄加入 PATH。
解決:
MYSQL_HOME = MySQL 安裝目錄Path 追加 %MYSQL_HOME%\binmysql --versionERROR 1130: Host 'xxx' is not allowed to connect場景:遠程連接被拒。
原因:用戶無遠程登錄權限。
解決:在 MySQL 服務器執行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
FLUSH PRIVILEGES;
參數說明:*/* 所有庫所有表,% 允許任意 IP,IDENTIFIED BY 設密碼。
ClassNotFoundException: com.mysql.jdbc.Driver場景:CentOS 下 Java 程序連接 MySQL。
原因:缺少驅動 JAR。
解決:
mysql -Vmysql-connector-java-x.x.x.jar/usr/lib/jvm/java-xxx/jre/lib/ext/Access denied for user 'root'@'localhost' (using password: YES)原因:密碼錯誤或 Linux 下 root 默認無密碼。
解決:修改配置 skip-grant-tables 免密登錄,重置密碼或置空。
ERROR 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'場景:修改 my.cnf 導致啟動失敗。
根因:MySQL 未啟動,無 mysql.sock。
解決:查錯誤日誌發現 Table 'mysql.user' doesn't exist,重新初始化:
mysql_install_db --user=mysql
service mysqld restart
MySQL Daemon failed to start同問題 5,檢查錯誤日誌定具體原因。
Can't open and lock privilege tables: Table 'mysql.user' doesn't exist同問題 5,系統表損壞需重新初始化。
ERROR 1064: You have an error in your SQL syntax near 'database'場景:執行 SQL 文件報語法錯。
原因:目標數據庫不存在。
解決:
CREATE DATABASE thinkphp;
USE thinkphp;
SOURCE your_file.sql;
ERROR 1005/1146: Table 'mysql.user' doesn't exist場景:導入 SQL 時誤在 mysql 系統庫而非目標庫。
解決:執行 USE thinkphp; 切換正確庫後再導入。