You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL 8.0.18连接失败及GRANT语句语法错误求助

解决MySQL 8.0授权语句语法错误及root连接失败问题

你的问题核心在于MySQL 8.0对用户管理语法做了重大变更——旧版本里可以在GRANT语句中直接用IDENTIFIED BY创建/设置用户密码,但8.0之后,创建用户、设置密码和授权操作必须分开执行,这就是你收到1064语法错误的原因。

正确的操作步骤

1. 先创建/修改root@'%'用户的密码

MySQL 8.0要求先确保用户存在并设置好密码,再执行授权:

-- 如果`root@'%'`用户还不存在,执行创建语句
CREATE USER 'root'@'%' IDENTIFIED BY 'mysql';

-- 如果用户已经存在,直接修改密码
ALTER USER 'root'@'%' IDENTIFIED BY 'mysql';

2. 执行授权语句

单独执行授权操作,去掉原来的IDENTIFIED BY部分:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

3. 刷新权限使变更生效

FLUSH PRIVILEGES;

关于Java应用连接失败的额外提示

你提到用root用户连接localhost失败,还要注意:

  • root@localhost和root@'%'是两个独立的用户!如果Java应用是通过localhost连接MySQL,MySQL会优先匹配root@localhost用户,而不是你授权的root@'%'。你需要确保root@localhost的密码正确,或者也给这个用户授权(如果需要的话)。
  • MySQL 8.0的JDBC连接需要额外参数,建议你的JDBC URL写成这样:
jdbc:mysql://localhost:3306/你的数据库名?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC
  • 驱动类要使用新版的com.mysql.cj.jdbc.Driver,而不是旧的com.mysql.jdbc.Driver。

内容的提问来源于stack exchange,提问作者flixe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:52:18