mysql -u root -p mysql
UPDATE user SET Host = '%' WHERE User = 'root';
FLUSH PRIVILEGES;
EXIT;
查看結果:SELECT Host, User FROM user;
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'StrongPass123!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
'root'@'%':% 代表任意主機,可改為具體 IP(如 192.168.1.%、10.0.0.5)。IDENTIFIED BY:設定密碼,MySQL 8.0+ 需加 WITH mysql_native_password 相容舊客戶端。WITH GRANT OPTION:允許該帳號再授權他人。[mysqld]
bind-address = 0.0.0.0 # 監聽所有介面,預設 127.0.0.1 僅本機
# skip-networking # 確保未啟用
修改後重啟:systemctl restart mysqld
# 遠端機器
mysql -h -u root -p
# 或 Navicat / Workbench 新建連線
root 遠端登入,建立專用帳號 'app'@'192.168.1.%'。REQUIRE SSL 於 GRANT 子句中。