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