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;
相关推荐
Tisfy5 分钟前
LeetCode 2058.找出临界点之间的最小和最大距离:遍历+遇到极值则更新(这种题谁空间复杂度不是O(1)啊)
linux·数据库·leetcode·链表·题解·模拟·遍历
数据库小学妹10 分钟前
MySQL死锁排查:锁机制原理、死锁日志与information_schema定位
运维·数据库·mysql
2601_9673387110 分钟前
Text2SQL智能体基础到实战课程
数据库·oracle
CadeCode16 分钟前
Oracle 逗号拼接字段处理
数据库·后端·性能优化
Sirens.17 分钟前
MySQL数据库:视图
数据库·mysql
山岚的运维笔记32 分钟前
mysql 专业笔记 -- 第 1 章:MySQL 入门
运维·数据库·笔记·后端·学习·mysql·dba
IT小白杨33 分钟前
TikTok小店防封号浏览器实战:2026年多店铺环境隔离与账号安全运营技术解析
开发语言·数据库·安全·php·chrome devtools·指纹浏览器
祢真伟大37 分钟前
Oracle含LOB大字段表的存储占用统计
数据库·oracle
Inhand-Victor1 小时前
从 CAN 总线到 AWS IoT:EC312 边缘计算网关实现 CAN 数据云端接入
数据库
活跃的煤矿打工人1 小时前
【星海出品】SQLite的进阶操作
数据库·sqlite