Mysql-5

無法遠端訪問在 Mac OS X 上執行的 MySQL 伺服器

  • September 6, 2019

我的工作電腦上執行著一個 MySQL 伺服器,它執行 Mac OS X Maverick。我想從也有 Mac OS Maverick 的家用電腦上訪問它。

從終端,如果在 1 個選項卡中,我 ssh 進入我的工作電腦並讓 ssh 會話坐在那里而不是空閒,然後在另一個選項卡上,我可以訪問 MySQL 伺服器。

但是,如果沒有執行 ssh 會話,我將收到以下錯誤

**錯誤 2003 (HY000):**無法連接到“SERVER_IP_ADDRESS”上的 MySQL 伺服器 (60)

我試圖my.cnf通過註釋掉綁定地址或將其分配給它來修改伺服器上的文件,0.0.0.0但它不起作用。

為什麼會這樣?如何配置伺服器以允許遠端訪問而無需在客戶端上執行 ssh?有人可以幫忙嗎?

今天我一直在用最近用 Homebrew 更新的 MySQL 5.7 在 OSX Yosemite 上解決這個錯誤。根據 StackOverflow 和其他地方的建議,我四處尋找my.cnf所有指定bind-address=0.0.0.0. 我什至按照這些說明刪除並重新安裝了 MySQL,然後使用brew install mysql. 仍然不允許遠端連接。

直到我執行ps -ax | grep mysql並註意到綁定地址在啟動命令中傳遞(從而覆蓋任何my.cnf文件),我才探勘了更多並發現Homebrew 預設將 MySQL 綁定到 127.0.0.1

編輯~/Library/LaunchAgents/homebrew.mxcl.mysql.plist更改--bind-address=127.0.0.1--bind-address=0.0.0.0解決我的問題(如果這不僅僅是一台開發機器,則後者應更改為特定的 IP 地址)。

我覺得這是我諮詢過的大多數資源中缺少的重要資訊,因此希望在此處發布此資訊對其他人有所幫助!

**編輯:**正如LeandroCR在評論中指出的那樣,執行brew services restart mysql將用預設文件覆蓋 LaunchAgents 中的 plist 文件,導致 MySQL 再次神秘地拒絕連接。因此,比我最初寫的更好的建議如下:

  1. 編輯/usr/local/Cellar/mysql/<yourversion>/homebrew.mxcl.mysql.plist並替換--bind-address=127.0.0.1bind-address=*or --bind-address=0.0.0.0參見 MySQL 的 bind-address 文件
  2. 使用重啟mysqlbrew services restart mysql

然後 MySQL 應該從那時起繼續接受非本地連接 - 大概直到你重新安裝它。

編輯(2019 年 9 月) Timothy Zorn指出,通過 Homebrew 安裝和執行的 MySQL 8.x 不再出現此問題,因此我在 2016 年編寫的上述答案可能僅與 5.x 相關。

執行locate my.cnf找到文件/usr/local/etc/my.cnf

  1. 編輯該文件並設置bind-address = 0.0.0.0
  2. 重啟mysql:brew services restart mysql

引用自:https://dba.stackexchange.com/questions/55958