Linux下控制台可正常使用MySQL但IntelliJ IDEA Ultimate连接报错1045怎么办
故障根因
你遇到的报错是因为Linux环境下MySQL默认对root@localhost用户采用auth_socket插件做身份验证,而非密码验证。该验证规则只允许拥有操作系统root权限的进程登录root账户,你控制台加sudo就是临时获取系统root权限所以可以登录,而IDEA是普通用户权限启动,哪怕密码输入正确也会被拒绝。
解决方案
推荐优先选择方案二,不会修改root用户的默认安全规则,更符合生产/开发环境的安全规范。
方案1:修改root用户验证方式为密码验证
- 第一步:控制台执行命令登录MySQL:
sudo mysql -u root - 第二步:切换到MySQL系统库:
use mysql; - 第三步:执行命令修改验证规则,将
你的自定义密码替换为你要设置的MySQL root密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的自定义密码'; - 第四步:刷新权限使配置生效:
FLUSH PRIVILEGES; - 第五步:退出MySQL控制台,执行
mysql -u root -p输入刚才设置的密码测试无sudo登录,成功后即可在IDEA中使用root账户+对应密码连接。
方案2:新建专用MySQL用户供IDEA使用
- 第一步:控制台执行命令登录MySQL:
sudo mysql -u root - 第二步:创建新用户,将
自定义用户名、自定义密码替换为你要设置的账号信息:CREATE USER '自定义用户名'@'localhost' IDENTIFIED BY '自定义密码'; - 第三步:给新用户授权,以下示例授予所有数据库的全部权限,你也可以按需限制仅授权指定数据库:
GRANT ALL PRIVILEGES ON *.* TO '自定义用户名'@'localhost' WITH GRANT OPTION; - 第四步:刷新权限使配置生效:
FLUSH PRIVILEGES; - 第五步:退出MySQL控制台,用新创建的账号测试登录,成功后即可在IDEA中使用该账号连接。
排查提示
如果配置完成后依然连接失败,可按顺序检查:
- IDEA连接配置中Host是否为
localhost、端口是否为你实际设置的MySQL端口(默认3306) - 输入的用户名、密码和你配置的完全一致,没有多余空格
- MySQL服务处于运行状态:可执行
sudo systemctl status mysql查看状态
内容的提问来源于stack exchange,提问作者life_fire1
相关产品推荐
相关产品推荐

