非常好的问题 👍。在 IntelliJ IDEA 中连接 MySQL 数据库时经常会出现连接失败的情况,比如提示 Communications link failure、Public Key Retrieval is not allowed 或 Access denied for user 等等。下面我帮你系统性梳理一下 从环境、驱动到配置 的完整排查与解决步骤。
🧭 一、常见问题分类
| 类型 | 常见报错信息 | 原因说明 |
|---|---|---|
| 🔌 网络问题 | Communications link failure | MySQL 没启动、端口被防火墙拦截、主机不通 |
| 🔐 用户认证 | Access denied for user 'root'@'localhost' | 用户名/密码错误,或连接 host 权限不对 |
| 🔑 SSL/加密问题 | Public Key Retrieval is not allowed | 8.x 驱动默认不允许公钥检索 |
| 🧱 驱动版本不匹配 | No suitable driver、Driver class not found | 未下载 MySQL 驱动或版本不兼容 |
| ⚙️ IDEA 设置问题 | “Driver class not found” | 数据源驱动未正确加载或 jar 缺失 |
🧩 二、逐步排查与解决
✅ Step 1:检查 MySQL 服务是否运行
# Windows
net start | find "MySQL"
# macOS / Linux
sudo systemctl status mysql
若没运行,启动它:
sudo systemctl start mysql
✅ Step 2:确认端口和地址是否正确
MySQL 默认端口是 3306。
在命令行中测试:
mysql -h 127.0.0.1 -P 3306 -u root -p
如果命令行都连不上,IDEA 也一定不行。
这说明问题出在数据库配置、端口、防火墙或网络。
✅ Step 3:确认账号权限
登录 MySQL 后查看用户权限:
SELECT host, user FROM mysql.user;
确保有一条:
root | localhost
或
root | %
如果没有 %(代表任意主机可连),执行:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
✅ Step 4:检查驱动版本匹配
| MySQL 版本 | 推荐驱动 |
|---|---|
| 5.x | mysql-connector-java 5.1.49 |
| 8.x | mysql-connector-java 8.0.33(或更高) |
在 IDEA 连接界面点击:
Driver→Download Driver Files
自动下载正确的驱动版本。
✅ Step 5:调整 IDEA 数据源配置
在 Database 工具窗口 中:
- 点击 ➕ → Data Source → MySQL
- 填写信息:
- Host: 127.0.0.1
- Port: 3306
- User: root
- Password: 你的密码
- 在 Driver Settings 里:
- 如果是 MySQL 8.x,URL 里添加:
?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai - 完整示例:
jdbc:mysql://127.0.0.1:3306/testdb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
- 如果是 MySQL 8.x,URL 里添加:
- 点击
Test Connection测试。
✅ Step 6:特殊情况处理
💡 报错:Public Key Retrieval is not allowed
👉 在 URL 添加:
allowPublicKeyRetrieval=true
💡 报错:The server time zone value 'CST' is unrecognized
👉 在 URL 添加:
serverTimezone=Asia/Shanghai
💡 报错:SSL connection error
👉 在 URL 添加:
useSSL=false
🧰 三、实用命令汇总
| 操作 | 命令 |
|---|---|
| 查看 MySQL 端口 | SHOW VARIABLES LIKE 'port'; |
| 查看绑定地址 | SHOW VARIABLES LIKE 'bind_address'; |
| 查看所有用户 | SELECT user, host FROM mysql.user; |
| 修改 root 密码 | ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; |
✅ 四、推荐最终可用配置示例
URL:
jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
User: root
Password: 你的密码
Driver: com.mysql.cj.jdbc.Driver
🔍 五、若仍无法连接
请提供以下信息,我可以帮你精准定位:
- MySQL 版本(如 8.0.36)
- IDEA 版本(如 2024.2)
- 报错截图或完整错误信息
- 连接 URL
发表回复