首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

Java 連接 MySQL 常見報錯排查指南:環境變量、權限、驅動、Socket 等 9 大典型問題

     編輯:MySQL 綜合教學

Java 開發中 MySQL 連接報錯完整排查手冊

整理了 9 類高頻 MySQL 連接/啟動報錯,涵蓋 Windows/Linux 環境、Java 驅動、權限、配置文件損壞等場景,附帶具體解決步驟與命令。

1. 'mysql' 不是內部或外部命令(Windows)

場景:CMD 下執行 mysql 報錯。
原因:未將 MySQL bin 目錄加入 PATH。
解決:

  1. 新建系統變量 MYSQL_HOME = MySQL 安裝目錄
  2. 在 Path 追加 %MYSQL_HOME%\bin
  3. 重啟 CMD 驗證 mysql --version

2. ERROR 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 設密碼。

3. ClassNotFoundException: com.mysql.jdbc.Driver

場景:CentOS 下 Java 程序連接 MySQL。
原因:缺少驅動 JAR。
解決:

  1. 確認 MySQL 版本:mysql -V
  2. 下載對應版本 mysql-connector-java-x.x.x.jar
  3. 複製到 /usr/lib/jvm/java-xxx/jre/lib/ext/

4. Access denied for user 'root'@'localhost' (using password: YES)

原因:密碼錯誤或 Linux 下 root 默認無密碼。
解決:修改配置 skip-grant-tables 免密登錄,重置密碼或置空。

5. 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

6. MySQL Daemon failed to start

同問題 5,檢查錯誤日誌定具體原因。

7. Can't open and lock privilege tables: Table 'mysql.user' doesn't exist

同問題 5,系統表損壞需重新初始化。

8. ERROR 1064: You have an error in your SQL syntax near 'database'

場景:執行 SQL 文件報語法錯。
原因:目標數據庫不存在。
解決:

CREATE DATABASE thinkphp;
USE thinkphp;
SOURCE your_file.sql;

9. ERROR 1005/1146: Table 'mysql.user' doesn't exist

場景:導入 SQL 時誤在 mysql 系統庫而非目標庫。
解決:執行 USE thinkphp; 切換正確庫後再導入。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved