MySQL 用户权限与密码修改
MySQL 用户权限与密码修改
修改root允许远程登录
update mysql.user set Host = '%' where User = 'root';
flush privileges;
Host='%'代表允许从任意IP地址连接,生产环境建议限制为指定网段。
修改用户密码
不同MySQL版本语法存在差异: MySQL5.7:
PASSWORD()函数可用; MySQL8.0:不再支持PASSWORD()函数,推荐使用ALTER USER。
方法一:UPDATE语句修改(适合MySQL5.7)
-- UPDATE mysql.user SET authentication_string = PASSWORD('新密码') WHERE User = '用户名' AND Host = '访问主机';
UPDATE mysql.user SET authentication_string = PASSWORD('123456') WHERE User = 'root' AND Host = '%';
FLUSH PRIVILEGES;
执行FLUSH PRIVILEGES;刷新权限缓存,使修改立即生效。
方法二:ALTER USER语句修改(推荐,5.7/8.0通用)
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
示例:修改root,允许任意IP,密码123456
ALTER USER 'root'@'%' IDENTIFIED BY '123456';
方法三:SET PASSWORD语句
SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');
注意事项
- 修改完权限/密码,要么执行
FLUSH PRIVILEGES;,要么重启mysql服务。- MySQL8.0移除
PASSWORD()函数,不能在8.0中使用PASSWORD()。- 生产环境不建议直接开放
root@%全网远程访问。