in Navicat for MySQL,PostgreSQL and Oracle
產生錯誤的原因是mysql帳戶連接到遠程mysql服務器沒有足夠的權限。
mysql安裝後默認僅允許"localhost"連接。因此多數服務器端的腳本程序很容易連接到本地服務器的本地數據庫。客戶端計算機被遠程服務器阻止直到配置好用戶權限。
如果您想從您的桌面訪問遠程mysql服務器,首先需要知道mysql系統工作的權限。
用戶信息存儲在名字為"mysql"數據庫的user, db, host, tables_priv和 columns_priv表中。mysql服務器啟動時讀這些表的內容。
MySQL訪問控制涉及兩個階段:
1.服務器檢查您的桌面(主機地址或IP地址)是允許連接。
2.假設可以連接,服務器檢查每個請求,看看你是否有足夠的權限來執行它。例如,創建表的權限,刪除表的權限或修改表的權限。
MySQL服務器在兩個階段訪問控制使用MySQL數據庫的User, Db,和Host 表。
如果您的遠程服務器支持SSH連接,你的Navicat將能夠通過SSH隧道與遠程MySQL數據庫連接,而不進行任何更改現有的MySQL的權限設置。該隧道的SSH的主要優點是它允許我們可以從後面連接到MySQL服務器被防火牆阻止的端口,
步驟:
你可以在MySQL服務器的命令提示符下運行以下命令。請咨詢您的數據庫管理員,因為他們通常會具有設置權限的管理權。
復制代碼 代碼如下:
GRANT ALL PRIVILEGES ON *.* TO 'YourUserName'@'%' IDENTIFIED BY "YourPassword";
或者
復制代碼 代碼如下:
GRANT ALL PRIVILEGES ON *.* TO 'YourUserName'@'YourIP' IDENTIFIED BY "YourPassword";