Ubuntu
如何配置我的本地伺服器以允許 jdbc 連接到 mysql?
我有我的小型 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”類型的命令要非常小心。