标题: 在 IntelliJ IDEA 中连接 MySQL 时出现 Access denied for user ‘root‘@‘localhost‘ (using p [打印本页] 作者: 魏晓东 时间: 2025-4-1 16:58 标题: 在 IntelliJ IDEA 中连接 MySQL 时出现 Access denied for user ‘root‘@‘localhost‘ (using p 在 IntelliJ IDEA 中连接 MySQL 时出现 Access denied for user 'root'@'localhost' (using password: YES) 错误,通常是由于用户名、暗码或权限设置不精确导致的。以下是具体的排查和解决方法: 1. 检查用户名和暗码
确认用户名和暗码是否精确
确保在 IDEA 中填写的用户名和暗码与 MySQL 的实际设置同等。
默认情况下,MySQL 的 root 用户暗码大概为空,或者是你安装时设置的暗码。
测试连接
利用命令行或 MySQL 客户端(如 MySQL Workbench)测试连接:
mysql -u root -p
复制代码
输入暗码后,如果能成功登录,说明用户名和暗码精确。
2. 检查 MySQL 用户权限
查看 root 用户的权限
登录 MySQL:
mysql -u root -p
复制代码
查询 root 用户的权限:
SELECT host, user FROM mysql.user;
复制代码
确保 root 用户的 host 是 localhost 或 %(答应长途连接)。
修改 root 用户权限
如果 root 用户没有权限,可以重新授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
复制代码
将 your_password 替换为你的暗码。
如果答应长途连接:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
复制代码
3. 检查 MySQL 设置文件
修改 MySQL 设置文件
找到 MySQL 设置文件:
Windows: my.ini(通常位于 C:\ProgramData\MySQL\MySQL Server X.X\)。
UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';
FLUSH PRIVILEGES;
复制代码
退出并重启 MySQL 服务:
sudo systemctl restart mysqld
复制代码
5. 检查 IDEA 的数据库设置
打开 IDEA 的 Database 工具窗口。
检查连接设置:
Host: localhost 或 127.0.0.1
Port: 3306(默认端口)
User: root
Password: 你的暗码
Database: 可选,如果未指定则连接默认数据库。
测试连接:
点击 Test Connection,确保连接成功。
6. 检查防火墙
如果 MySQL 运行在长途服务器上,确保防火墙答应 MySQL 端口(默认 3306)的访问:
Linux:
sudo ufw allow 3306/tcp
复制代码
Windows:
在防火墙设置中答应 mysqld.exe 或端口 3306。
7. 其他大概的原因
MySQL 版本问题:
某些 MySQL 版本(如 8.0+)默认利用 caching_sha2_password 加密方式,大概导致连接问题。
修改加密方式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
FLUSH PRIVILEGES;
复制代码
IDEA 插件问题:
确保已安装并启用了 Database Tools and SQL 插件。
总结
通过以上步调,可以解决 Access denied for user 'root'@'localhost' (using password: YES) 错误。如果问题仍未解决,请检查 MySQL 的错误日志(通常位于 /var/log/mysql/error.log 或 C:\ProgramData\MySQL\MySQL Server X.X\Data\*.err),获取更多具体信息。