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

Navicat 連接 MySQL 報錯 1044/1045 權限問題解決方案

     編輯:MySQL 資料庫相關知識

錯誤原因

MySQL 默認僅允許 localhost 本地連接。遠程客戶端(如 Navicat)被阻攔,需配置用戶權限。

MySQL 兩階段訪問控制

  1. 連接驗證:檢查客戶端 IP/主機是否允許連接(mysql.user 表 Host 列)
  2. 權限驗證:檢查具體操作權限(SELECT、INSERT、DROP 等)

解決方案:授權遠程訪問

方案一:允許任意 IP 連接(開發/測試環境)

GRANT ALL PRIVILEGES ON *.* TO 'YourUserName'@'%' IDENTIFIED BY 'YourPassword';
FLUSH PRIVILEGES;

方案二:限定具體 IP 連接(生產環境推薦)

GRANT ALL PRIVILEGES ON *.* TO 'YourUserName'@'192.168.1.100' IDENTIFIED BY 'YourPassword';
FLUSH PRIVILEGES;

SSH 隧道替代方案

若遠程服務器支援 SSH,Navicat 可配置 SSH 隧道連接,無需修改 MySQL 權限,且能穿透防火牆限制端口。

權限表結構說明

權限信息存儲在 mysql 數據庫的 user、db、host、tables_priv、columns_priv 表中,服務啟動時載入內存。

安全建議

  • 生產環境禁用 '%' 通配符主機,最小權限原則
  • 區分讀寫賬號:只讀賬號僅授 SELECT
  • 定期審計 mysql.user 表,清理無用/弱密碼賬號
  • 啟用 SSL 連接加密傳輸
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved