mysql连接问题

张开发
2026/5/30 6:49:41 15 分钟阅读
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. 刷新权限使配置立即生效sqlFLUSH PRIVILEGES; 补充说明适配不同场景1. 仅允许指定 IP / 网段更安全生产环境推荐sql-- 仅允许192.168.124.x网段的机器连接 DROP USER IF EXISTS root192.168.124.%; CREATE USER root192.168.124.% IDENTIFIED BY root; GRANT ALL PRIVILEGES ON *.* TO root192.168.124.% WITH GRANT OPTION; FLUSH PRIVILEGES;2. 验证用户是否创建成功sql-- 查看所有用户权限 SELECT user, host FROM mysql.user;能看到root对应的host为%说明配置成功。3. 额外关键配置避免连接失败修改绑定地址编辑my.cnfLinux/my.iniWindows将bind-address 127.0.0.1改为bind-address 0.0.0.0或直接注释然后重启 MySQL 服务开放防火墙放行 3306 端口Linuxfirewall-cmd --permanent --add-port3306/tcp firewall-cmd --reloadWindows防火墙入站规则放行 3306⚠️ 版本差异提醒表格MySQL 版本授权语法支持5.7 及更早支持GRANT ... IDENTIFIED BY二合一语法8.0 及更高仅支持「创建用户 单独授权」两步语法你当前的环境是 MySQL 8.0所以必须用分两步的新语法旧语法会直接报 1064 错误。✅ 完整一键执行命令直接复制到 MySQL 命令行sqlDROP 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;

更多文章