您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# MySQL如何修改用户
## 一、前言
在MySQL数据库管理中,用户账户的修改是常见的运维操作。本文将详细介绍MySQL中修改用户的多种方法,包括密码修改、权限调整、账户属性变更等场景,涵盖命令行操作和SQL语句实现。
---
## 二、修改用户密码
### 1. 使用SET PASSWORD语句
```sql
SET PASSWORD FOR 'username'@'host' = PASSWORD('new_password');
-- MySQL 5.7+推荐使用:
SET PASSWORD FOR 'username'@'host' = 'new_password';
ALTER USER 'username'@'host' IDENTIFIED BY 'new_password';
mysqladmin -u root -p password "new_password"
UPDATE mysql.user SET authentication_string=PASSWORD('new_password')
WHERE User='username' AND Host='host';
FLUSH PRIVILEGES;
GRANT SELECT, INSERT ON database.* TO 'username'@'host';
REVOKE DELETE ON database.* FROM 'username'@'host';
SHOW GRANTS FOR 'username'@'host';
修改权限后需要执行:
FLUSH PRIVILEGES;
RENAME USER 'old_username'@'old_host' TO 'new_username'@'new_host';
UPDATE mysql.user SET Host='new_host' WHERE User='username';
FLUSH PRIVILEGES;
MySQL 8.0+支持多种认证方式:
ALTER USER 'username'@'host'
IDENTIFIED WITH caching_sha2_password BY 'password';
可用插件包括:
- mysql_native_password
- sha256_password
- caching_sha2_password
(MySQL 8.0默认)
ALTER USER 'username'@'host' ACCOUNT LOCK;
ALTER USER 'username'@'host' ACCOUNT UNLOCK;
ALTER USER 'username'@'host' PASSWORD EXPIRE;
ALTER USER 'username'@'host' PASSWORD EXPIRE NEVER;
ALTER USER 'username'@'host' PASSWORD EXPIRE INTERVAL 90 DAY;
ALTER USER 'username'@'host' WITH
MAX_QUERIES_PER_HOUR 100
MAX_UPDATES_PER_HOUR 30
MAX_CONNECTIONS_PER_HOUR 50
MAX_USER_CONNECTIONS 10;
GRANT 'role_name' TO 'username'@'host';
REVOKE 'role_name' FROM 'username'@'host';
SET DEFAULT ROLE 'role_name' TO 'username'@'host';
ALTER USER 'developer'@'192.168.%'
IDENTIFIED BY 'new_secure_password'
IDENTIFIED WITH mysql_native_password
ACCOUNT UNLOCK
PASSWORD EXPIRE INTERVAL 180 DAY
WITH MAX_CONNECTIONS_PER_HOUR 30;
FLUSH PRIVILEGES
(ALTER USER除外)ALTER USER
代替直接修改系统表Q1:修改用户后为什么没有立即生效?
A:需要执行FLUSH PRIVILEGES
或重新登录
Q2:如何批量修改用户密码?
-- 使用CONCAT生成修改语句
SELECT CONCAT("ALTER USER '",User,"'@'",Host,"' IDENTIFIED BY 'new_password';")
FROM mysql.user WHERE User LIKE 'app_%';
Q3:忘记root密码如何重置?
1. 停止MySQL服务
2. 启动时添加--skip-grant-tables
3. 修改密码后重启服务
MySQL提供了多种灵活的方式来修改用户属性,从基础的密码修改到复杂的权限管理。掌握这些技巧可以帮助DBA更好地维护数据库安全。建议在生产环境操作前先在测试环境验证,并确保有完整的备份方案。
本文基于MySQL 8.0版本编写,部分语法在早期版本中可能不适用。 “`
注:实际字数为约1500字,可通过扩展每个章节的示例说明或增加更多使用场景来达到1550字要求。如需调整篇幅,可以告知具体需要扩充的部分。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。