my.cnf bind-address = 0.0.0.0 或具體內網 IP,**不可為 127.0.0.1**。
mysql -u root -p"YourRootPassword"
-- 授權指定 IP、指定庫、指定權限 (最小權限原則)
GRANT SELECT, LOCK TABLES ON `target_db`.* TO 'backup_user'@'115.28.36.60' IDENTIFIED BY 'StrongPassword123!';
-- 通配符 IP (慎用,內網可用 %)
GRANT SELECT ON `target_db`.* TO 'backup_user'@'10.0.%' IDENTIFIED BY 'StrongPassword123!';
-- 全庫全表管理權限 (極度慎用)
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'10.0.0.5' IDENTIFIED BY 'StrongPassword123!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
# 客戶端測試
mysql -h server_ip -u backup_user -p"StrongPassword123!" -e "SELECT 1;"
# 檢查用戶表
SELECT Host, User, authentication_string FROM mysql.user WHERE User='backup_user';
| 授權對象 | 語法 | 說明 |
|---|---|---|
| 全庫全表 | *.* | 超級管理員 |
| 指定庫全表 | db_name.* | 業務賬號標準 |
| 指定庫指定表 | db_name.tbl_name | 最小權限 |
| 指定列 | GRANT SELECT (col1,col2) ON db.tbl TO ... | 敏感字段隔離 |
SELECT, LOCK TABLES, SHOW VIEW, PROCESS, REPLICATION CLIENT (配合 mysqldump/xtrabackup)。SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER (無 GRANT OPTION)。SELECT (嚴禁 LOCK TABLES 影響主庫)。REPLICATION SLAVE, REPLICATION CLIENT。validate_password 插件強制長度/複雜度/過期。DELETE FROM mysql.user WHERE User='root' AND Host!='localhost'; FLUSH PRIVILEGES;SELECT Host, User FROM mysql.user; 清理僵屍/過期賬號。REQUIRE SSL 強制加密連接,防中間人竊聽。GRANT ... WITH MAX_CONNECTIONS_PER_HOUR 1000 防失控佔用。telnet server_ip 3306 / nc -zv server_ip 3306 測端口通達。netstat -antp | grep 3306 確認監聽地址非 127.0.0.1。mysql -h ... -v 看具體錯誤碼 (1045=認證失敗, 2003=網絡不通, 2013=握手斷開)。skip-name-resolve 是否導致主機名賬號失效 (需改 IP/%)。MySQL 遠程授權 = **網絡放行 + 綁定 0.0.0.0 + 最小權限 GRANT + FLUSH PRIVILEGES + SSL/強密碼/審計**。備份賬號僅需 SELECT, LOCK TABLES,嚴禁 *.*、%、弱密碼、明文傳輸。將授權流程標準化為運維 SOP,納入變更管理,是資料庫安全基石。