首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 用戶創建與密碼修改實戰:root 改密、帳號授權模板、本地/遠程訪問控制

     編輯:MySQL 資料庫相關知識

MySQL 用戶管理是 DBA 日常高頻操作。本文記錄 root 密碼修改、創建用戶授權模板(唯讀、讀寫、開發、超管)、本地與遠程訪問控制、密碼清空、常用客戶端工具連接參數,供快速參考。

1. 修改 root 密碼

方法一:mysqladmin(命令行)


# 進入 MySQL bin 目錄
cd /usr/local/mysql/bin
# 或 Windows: E:\wamp\bin\mysql\mysql5.1.36\bin

# 修改密碼為 new_pass
mysqladmin -u root -p password new_pass
# 提示輸入舊密碼,回車確認

方法二:SQL 語句(登入後)


mysql -u root -p
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_pass');
-- 或 5.7.6+
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_pass';
FLUSH PRIVILEGES;

2. 創建用戶授權模板

語法:GRANT 權限 ON 數據庫.表 TO '用戶'@'主機' IDENTIFIED BY '密碼';

模板 A:唯讀帳號(報表、備份、監控)


-- 僅本地訪問
GRANT SELECT ON mydb.* TO 'readonly'@'localhost' IDENTIFIED BY 'ro_pass';

-- 允許特定網段遠程
GRANT SELECT ON mydb.* TO 'readonly'@'10.0.1.%' IDENTIFIED BY 'ro_pass';

模板 B:業務讀寫帳號(應用服務)


GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'10.0.2.%' IDENTIFIED BY 'app_strong_pass';
-- 無 DDL、無 DROP、無 GRANT、無管理權限

模板 C:開發人員(結構變更權限)


GRANT SELECT, INSERT, UPDATE, DELETE,
      CREATE, DROP, ALTER, INDEX,
      CREATE VIEW, SHOW VIEW,
      CREATE ROUTINE, ALTER ROUTINE, EXECUTE
ON dev_db.* TO 'dev'@'192.168.1.%' IDENTIFIED BY 'dev_pass';

模板 D:超級管理員(極少數)


GRANT ALL PRIVILEGES ON *.* TO 'dba'@'localhost' IDENTIFIED BY 'super_strong_pass' WITH GRANT OPTION;
-- 僅限 localhost,禁止遠程 root

3. 危險操作與修正


-- 危險:允許任意主機、全庫權限
GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
-- 風險:密碼洩露 = 全庫洩露/破壞

-- 修正:限制主機、限制庫
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';

4. 密碼清空(不推薦生產)


GRANT SELECT ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';
-- 或
SET PASSWORD FOR 'test2'@'localhost' = PASSWORD('');

5. 刪除用戶


DROP USER 'old_user'@'%';
-- 或
DELETE FROM mysql.user WHERE User='old_user' AND Host='%';
FLUSH PRIVILEGES;

6. 常用客戶端連接參數

工具 關鍵參數
mysql 命令行 -u user -p -h host -P port -S socket
Navicat / Workbench Host, Port, Username, Password, Database (可選)
JDBC URL jdbc:mysql://host:port/db?user=...&password=...&useSSL=false&serverTimezone=UTC

7. 權限生效機制

  • GRANT 修改內存權限快取,**新連線自動生效**
  • 現有連線需重連或執行 FLUSH PRIVILEGES
  • 直接操作 mysql.user 表後**必須** FLUSH PRIVILEGES

用戶管理核心原則:最小權限、IP 白名單、強密碼、定期審計、分環境分帳號。養成用 GRANT 而非直接改表的習慣,避免忘記 FLUSH PRIVILEGES 導致配置不生效。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved