ERROR 1130 (HY000): Host 'root@localhost' is not allowed to connect to this MySQL server 表示該用戶無連接權限。本文提供最直接的排查與修復步驟。
user@host 精確匹配root@localhost 僅允許本機 Unix Socket 連接root@% 或 root@127.0.0.1 才允許 TCP 連接mysql_secure_installation、手動刪除 root 帳號、匿名用戶干擾# 1. 停止服務 service mysql stop # 2. 跳過權限表啟動 mysqld_safe --skip-grant-tables & # 3. 無密碼登入 mysql -uroot # 4. 更新權限 UPDATE mysql.user SET Host='%' WHERE User='root' AND Host='localhost'; FLUSH PRIVILEGES; # 5. 正常重啟 service mysql restart
mysql -uroot -p -h 127.0.0.1 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'newpass' WITH GRANT OPTION; FLUSH PRIVILEGES;
service mysql stop mv /var/lib/mysql /var/lib/mysql.bak mysqld --initialize-insecure --user=mysql service mysql start # root 密碼為空,登入後立即修改
mysql -uroot -p -h localhost mysql -uroot -p -h 127.0.0.1 # 兩種方式均應成功
mysql_secure_installationroot@localhost (Socket) 與 root@127.0.0.1 (TCP) 兩個帳號root@%,改用專用應用帳號 + 最小權限mysql.user 表,清理匿名用戶與過期帳號ERROR 1130 本質是權限元數據與連接方式不匹配。掌握 --skip-grant-tables 急救模式,配合標準化帳號管理流程,即可從容應對。