預設 MySQL 僅允許 localhost 本地連接,當應用與資料庫分離部署時,需授權遠程 IP 訪問。本文示範通過修改 mysql.user 表實現 root 遠程登入,並說明權限表結構與安全注意事項。
mysql -h localhost -u root -p
USE mysql;
SELECT host, user FROM user;
初始狀態下 host 僅為 localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
% 代表所有外部 IP;若需限定特定 IP,將 % 替換為具體 IP 或主機名
FLUSH PRIVILEGES;
SELECT host, user FROM user;
應出現 % | root 記錄
在遠程機器執行 mysql -h ,若連線成功,應用程式即可正常連接。
mysql.user:全局權限,控制連接來源與用戶身份mysql.db:庫級權限,記錄用戶對具體庫的操作權限,多用戶管理核心mysql.tables_priv、mysql.columns_priv:表/列級細粒度控制生產環境建議:避免 root 遠程登入,改為建立專用業務帳號,最小權限原則,配合防火牆限制來源 IP 段。
bind-address 綁定 127.0.0.1,需改為 0.0.0.0 或具體內網 IP