簡體   English   中英

無法連接到遠程mysql數據庫服務器

[英]Can't connect to remote mysql database server

我不明白為什么我無法在 VMware 中訪問 ubuntu 中的遠程 MySQL 服務器。 我已經有了代碼,它成功連接到我的本地主機以及插入、刪除和更新數據。 但是當我用指定的 IP 服務器地址創建一個新的連接字符串時,它顯示一個錯誤:

在此處輸入圖片說明

我只能通過 SSH 和瀏覽器 (192.168.56.xxx/phpmyadmin) 訪問該服務器中的文件。

這是我的連接字符串代碼。

 Dim conn As New MySqlConnection
 conn.ConnectionString = "Server=192.168.56.xxx;port=3306;User=root;password=mypassword;Database=prodDB_vb"
 conn.Open()
 MessageBox.Show("Connection to Database has been opened.")
 cmd.Connection = conn

我已經閱讀了很多關於這個的論壇。 但不明白他們指的是什么。 我也執行了代碼:

  GRANT ALL PRIVILEGES ON prodDB_vb TO 'root@*' IDENTIFIED BY 'my_password';
  FLUSH PRIVILEGE;

我唯一知道的是我在服務器文件中找不到 my.cnf,但已經在我的本地主機的綁定 IP 地址中更改了 my.ini。

  #bind-address="127.0.0.1" 

3306正在聽

在此處輸入圖片說明

我的 my.cnf 中有這個

在此處輸入圖片說明

為什么會出現這個錯誤?

在此處輸入圖片說明 任何人請幫忙。

您是否檢查以確保 MySQL 實際上正在偵聽 3306? 運行 netstat -tlpn 並提供結果。 如果您沒有看到 3306,那么它可能沒有。

在 my.cnf 中,您應該驗證 --skip-networking 已被注釋掉

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 65.55.55.2
# skip-networking

定位您的CNF 文件

編輯:

例如,如果您的 MySQL 服務器 IP 是 192.162.0.3,那么整個塊應該如下所示:

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 192.168.0.3
# skip-networking
....
..
....
  • bind-address :要綁定到的 IP 地址。
  • skip-networking :根本不監聽 TCP/IP 連接。 與 mysqld 的所有交互都必須通過 Unix 套接字進行。 對於只允許本地請求的系統,強烈建議使用此選項。 由於您需要允許遠程連接,因此應從文件中刪除此行或將其置於注釋狀態。

然后我們必須重新啟動mysql服務才能使更改生效:

/etc/init.d/mysql restart

暫無
暫無

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

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