簡體   English   中英

MySQL - ODBC 連接失敗,Workbench 連接有效

[英]MySQL - ODBC connect fails, Workbench connect works

我正在嘗試在我的機器 (Windows 7) 上安裝和測試 MySQL ODBC 連接器以連接到遠程 MySQL 數據庫服務器,但是,當我配置和測試連接時,我不斷收到以下錯誤:

Connection Failed
[MySQL][ODBC 5.3(w) Driver]Access denied for user 'root'@'(my host)' (using password: YES):

問題是,我可以很好地連接 MySQL Workbench(遠程 - 從我的本地機器到遠程服務器)。 我已經廣泛閱讀了這個常見問題,但它沒有幫助。 我試過了:

  • 檢查 mysql 是否在服務器上運行(確實如此。我什至嘗試過多次重新啟動它);
  • 檢查端口是否正在偵聽遠程服務器上的連接。 這是。
  • 使用 MySQL Workbench 連接到遠程服務器。 有用。
  • 檢查遠程數據庫的IP地址和端口是否正確;
  • 檢查用戶(root)和密碼是否正確;
  • 在 ODBC 配置窗口中重新輸入密碼;
  • 檢查和修改遠程服務器上“my.conf”的內容以允許來自各方的連接(0.0.0.0);
  • 在來自 mySQL 的 GRANT HOST 表中包含(我的主機)(我也嘗試了通配符 '%',但它與沒有相同);
  • 運行 FLUSH HOSTS; 和沖洗特權; 遠程mySQL服務器上的命令重置權限緩存;
  • 在配置 ODBC 驅動程序期間關閉我的防火牆;
  • 檢查 MySQL 變量“skip_networking”是否關閉以允許遠程連接。

令人沮喪的是,我可以在我的本地機器上連接 MySQL Workbench(使用相同的 IP/用戶/密碼),只是不能使用 ODBC。

我可能做錯了什么,或者什么可能會破壞我與 ODBC 連接的嘗試?

更新:我設法設置了 ODBC 驅動程序並讓它在服務器端正確運行。 我可以使用命令行(使用“isql”命令)連接到本地主機。 但是我仍然無法通過我的 Windows 7 機器遠程連接。

解決了。

事實證明,這是一個權限問題。 我在遠程服務器 SQL 上運行了以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'(my_host)' IDENTIFIED BY '(my_password)';

我已經運行了上一個命令,但沒有“IDENTIFIED BY”密碼。 然后,為了重置 mysql 權限緩存,我也跑了

FLUSH PRIVILEGES;

現在它起作用了。

也只適用於 64 位 odbc 驅動程序而不適用於 mySQL 32 位。

我們有一個類似的情況,即在服務器上授予了 'user'@'%' 權限,但 ODBC 連接在 PC 上失敗,而工作台連接成功。

MariaDB 10.0.31、MySQL ODBC 3.51、MySQL 工作台 8.0

通過安裝 MariaDB Connector/ODBC 3.1 而不是 MySQL ODBC ( https://downloads.mariadb.org/connector-odbc/ ) 解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM