在MySQL 8.0及更高版本中,GRANT 语句的语法有所变化。不再使用 IDENTIFIED BY 'password' 来设置或修改用户的密码。相反,你需要分两步来完成这个过程:首先创建或修改用户,并设置密码;然后授予相应的权限。
这里是你应该遵循的步骤:
-
创建或修改用户及其密码:
-
如果
root用户已存在并且你只是想更改其密码或允许从另一个地址访问,使用ALTER USER语句:ALTER USER 'root'@'内网IP' IDENTIFIED BY '新密码';将
'内网IP'替换为你的内网IP地址,'新密码'替换为新密码。 -
如果你想允许
root用户从任何IP地址连接,你可以使用:ALTER USER 'root'@'%' IDENTIFIED BY '新密码'; -
如果
root用户在指定的主机上还不存在,你需要先创建用户:CREATE USER 'root'@'内网IP' IDENTIFIED BY '新密码';或者对于任意IP地址:
CREATE USER 'root'@'%' IDENTIFIED BY '新密码';
-
-
授予权限:
- 然后使用
GRANT语句授予权限(不再包含密码):
或者对于任意IP地址:GRANT ALL PRIVILEGES ON *.* TO 'root'@'内网IP' WITH GRANT OPTION;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
- 然后使用
-
刷新权限:
- 最后,刷新权限使更改生效:
FLUSH PRIVILEGES;
- 最后,刷新权限使更改生效:
这些操作完成后,root 用户应该能够从指定的内网IP地址访问MySQL服务器。记得替换示例中的 '内网IP' 和 '新密码' 为实际的IP地址和你想要设置的密码。请小心操作,并确保你了解每个命令的作用。如果你对此有任何疑问,最好咨询经验丰富的数据库管理员。










