Ubuntu

如何配置我的本地伺服器以允許 jdbc 連接到 mysql?

  • July 18, 2011

我有我的小型 Java 應用程序。目前我正試圖讓它與mysql一起工作。我有 VMware Workstation 和 Ubuntu Server 10.10 在上面執行。當我嘗試連接到伺服器(從執行 VMware 的我的 PC)以啟動 mysql 驅動程序的 JDBC 連接時,它不起作用。我早些時候在 SO 上問過類似的問題。第一個也是唯一的**答案**(目前)是防火牆或連接類型可能是問題,但我不知道如何正確配置它。

也許有人可以幫助這部分?

此外,我嘗試*.jar從我的應用程序創建一個文件,並在連結中放置 localhost 並且在伺服器上它工作正常,所以我想它再次證明了連接期間存在一些限制。

我的猜測是綁定地址

mysql 的預設埠是 3306。檢查它是否監聽所有介面netstat -tanlp | grep LISTEN | grep 3306

tcp        0      0 0.0.0.0:3306  0.0.0.0:*  LISTEN      mysqld

如果這樣說,127.0.0.1:3306那麼您的 mysql 僅在本地主機上偵聽。如果是這種情況,請更改 mysql 的my.cnf 綁定地址設置:

bind-address    = 10.0.0.1

或者

bind-address = 0.0.0.0 

監聽所有介面。

更新: 好的,現在您可以連接到埠 3306。錯誤消息:

Host 'vm_ip' is not allowed to connect to this MySQL server

意味著沒有防火牆/iptables。該消息來自 MySQL 本身。您將需要執行適當的“授權”以允許您的“使用者”從您的“主機”連接到數據庫。從安全形度來看,您需要非常小心您在此處啟用的內容。請參閱以下 URL 以獲取幫助:

http://dev.mysql.com/doc/refman/5.5/en/access-denied.html

有很多網站都向所有人授予所有類型的連結。要非常小心你從這些中使用什麼。如果您的使用者需要只讀訪問權限,那麼您可以從以下內容開始:

GRANT select ON mydatabase.* to myusername@'192.168.1.1' IDENTIFIED BY 'mypasssword';

對於只執行“GRANT all”類型的命令要非常小心。

引用自:https://serverfault.com/questions/291378