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;
相关推荐
CRMEB系统商城8 分钟前
Redis + 消息队列 + 连接池:CRMEB PRO 性能优化的三驾马车
大数据·数据库·人工智能·小程序·php·1024程序员节
鸽芷咕20 分钟前
KingbaseES SQL 调优六步法:定位、诊断、下药、验证,一步都别省
数据库
黄俊懿1 小时前
【架构师从入门到进阶】第七章:缓存和存储的优化思路——第一节:缓存概述
数据结构·数据库·分布式·缓存·架构·系统架构·1024程序员节
John_Hui1 小时前
MySQL 进阶知识
数据库·sql·mysql·1024程序员节
java_nnnn1 小时前
Redis 核心特性与应用场景:从底层原理到分布式系统应用
数据库·redis·1024程序员节
Random Glow1 小时前
一条 SQL 从输入到返回,中间经历了什么
数据库·后端·mysql·性能优化·innodb·1024程序员节
何中应2 小时前
MySQL 连接驱动单独下载的两种方式
数据库·mysql·maven
合尘猫2 小时前
AI客服国标落地一个月:从工程角度看,真正要改的是三处数据结构
数据库·人工智能·架构
Maynor9963 小时前
免费 Cloudflare 只有 10 个 D1?满了之后的「穷鬼打法」:表前缀复用同一个库
数据库·后端·云计算·cloudflare
冰暮流星3 小时前
mysql之索引设计的原则
数据库·mysql·1024程序员节