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

MySQL 新增遠程超級管理員帳號:GRANT 與 INSERT 兩種方法

     編輯:MySQL 資料庫相關知識

需求情境

  • 預設僅有 root@localhost,無法遠程管理
  • 開發、管理工具需遠程以超級權限連線
  • 建立專用遠程管理帳號 admin,保留 root 僅本機使用

方法一:GRANT 指令 (推薦)

-- 1. 本機以 root 登入
mysql -uroot -p

-- 2. 授權本機存取 (可選,視需求)
GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY 'strong_password' WITH GRANT OPTION;

-- 3. 授權任意主機遠程存取 (關鍵)
GRANT ALL PRIVILEGES ON *.* TO admin@'%' IDENTIFIED BY 'strong_password' WITH GRANT OPTION;

% 為通配符,代表任意主機。WITH GRANT OPTION 允許授權他人。

方法二:直接 INSERT 使用者表

INSERT INTO mysql.user 
VALUES ('%', 'admin', PASSWORD('strong_password'), 
        'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
FLUSH PRIVILEGES;

注意:

  • 欄位順序需符合 mysql.user 表結構 (版本間可能不同)
  • 建議先用 DESCRIBE mysql.user; 確認欄位數與順序
  • 必須執行 FLUSH PRIVILEGES 重載權限
  • Y 的個數必須精確對應權限欄位數

驗證與安全建議

  1. 遠程機器測試:mysql -h 伺服器IP -uadmin -p
  2. 生產環境建議:
  • 使用強密碼 (16+ 字元、混合大小寫數字符號)
  • 限制來源 IP:admin@'192.168.1.%' 替代 %
  • 啟用 SSL 連線
  • 定期審核 mysql.user 異常帳號
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved