# 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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。