mysql连接问题

错误原因分析

报错 ERROR 1064 (42000)MySQL 8.0 版本的语法不兼容问题 :MySQL 8.0 彻底废弃了 GRANT ... IDENTIFIED BY 这种「授权 + 改密码」二合一的旧语法,必须分两步执行:先创建 / 更新用户,再单独授权,否则就会报语法错误。


✅ 正确执行步骤(MySQL 8.0 专用,可直接复制)

1. 先创建 / 更新 root 用户(允许任意 IP 远程连接)

sql

复制代码
-- 若用户已存在,先删除旧的(可选,避免冲突)
DROP USER IF EXISTS 'root'@'%';

-- 创建允许任意IP连接的root用户,设置密码为root
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
2. 再给用户分配全部权限

sql

复制代码
-- 授予root用户所有库、所有表的全部权限,并允许转授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
3. 刷新权限,使配置立即生效

sql

复制代码
FLUSH PRIVILEGES;

📌 补充说明(适配不同场景)

1. 仅允许指定 IP / 网段(更安全,生产环境推荐)

sql

复制代码
-- 仅允许192.168.124.x网段的机器连接
DROP USER IF EXISTS 'root'@'192.168.124.%';
CREATE USER 'root'@'192.168.124.%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.124.%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
2. 验证用户是否创建成功

sql

复制代码
-- 查看所有用户权限
SELECT user, host FROM mysql.user;

能看到 root 对应的 host%,说明配置成功。

3. 额外关键配置(避免连接失败)
  • 修改绑定地址 :编辑 my.cnf(Linux)/ my.ini(Windows),将 bind-address = 127.0.0.1 改为 bind-address = 0.0.0.0 或直接注释,然后重启 MySQL 服务
  • 开放防火墙 :放行 3306 端口(Linux:firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload;Windows:防火墙入站规则放行 3306)

⚠️ 版本差异提醒

表格

MySQL 版本 授权语法支持
5.7 及更早 支持 GRANT ... IDENTIFIED BY 二合一语法
8.0 及更高 仅支持「创建用户 + 单独授权」两步语法

你当前的环境是 MySQL 8.0,所以必须用分两步的新语法,旧语法会直接报 1064 错误。


✅ 完整一键执行命令(直接复制到 MySQL 命令行)

sql

复制代码
DROP USER IF EXISTS 'root'@'%';
CREATE USER 'root'@'%' IDENTIFIED BY 'root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SELECT user, host FROM mysql.user;
相关推荐
jwt7939279372 小时前
MySQL 批量删除海量数据的几种方法
数据库·mysql
Yvonne爱编码2 小时前
数据库---Day8 多表联合查询
数据库
云飞云共享云桌面2 小时前
SolidWorks三维设计不用单独买电脑,1台服务器10个设计用
运维·服务器·数据库·3d·电脑
l1t2 小时前
DeepSeek总结的PAX:PostgreSQL存储引擎
数据库·postgresql
我不听你讲话2 小时前
PostgreSQL 日常维护核心内容总结
数据库·postgresql
倔强的石头1062 小时前
数据库行标识符机制探究:OID、ROWID与自增主键的实现与应用
数据库·oracle·kingbase
quintin-lee3 小时前
Postgres 内核:从入门到“入土” (三) —— Page 结构:数据是如何在磁盘上“躺平”的
c语言·数据库·postgresql·数据库架构
不愿透露姓名的大鹏3 小时前
MySQL Binlog配置优化全攻略
运维·服务器·数据库·mysql·adb
柒.梧.3 小时前
MySQL核心考点:存储引擎区别+视图详解
数据库·mysql·面试