Mysql
RHEL 6 中的 mysql jdbc 連接問題
我已經
mysql
在其中一台 RHEL 6 伺服器中設置了數據庫。我想使用java
程序從任何其他機器連接到該伺服器的數據庫。我該怎麼做?
設置類路徑
JDBC 連接器將位於路徑中
/usr/share/java/
。我們可以將類路徑導出為,export CLASSPATH=/usr/share/java/mysql-connector-java.jar:$CLASSPATH
授予使用者權限
對於連接到數據庫的使用者,應授予權限。這可以使用以下
mysql
查詢來實現。GRANT ALL PRIVILEGES ON *.* TO ‘user’@’%’ IDENTIFIED BY ‘<user-password>’ WITH GRANT OPTION;
現在,我們可以使用 java 程序建立到這台機器的
mysql
伺服器的連接,但只能作為localhost
. 如果我們需要使用此伺服器的名稱或從其他機器連接,我們將得到幾個例外,如這里和這裡所討論的。編輯
/etc/hosts
文件需要注意的是,在上面的步驟中,如果我只使用機器的 IP 地址而不是機器的主機名,它就可以工作。所以,我懷疑這個問題與
dns
名稱解析有關。我修改了我的
/etc/hosts
文件以具有以下條目。127.0.0.1 servername.edu localhost
我仍然無法使用主機名連接到數據庫,考慮到我也更改了
/etc/hosts
文件,我認為這很奇怪。我什至停下ip6tables
來檢查這是否是問題所在。但是,沒有一個選項有效,這給了我一個例外,因為,ERROR: java.net.UnknownHostException:connection refused
編輯 /etc/my.cnf 文件
最後一個例外是有希望的。它說連接被拒絕,而不是說無法解析主機名。所以,我認為應該在
/etc/my.cnf
文件中更改一些內容,並將以下行添加到文件中。port=3306 bind-address=0.0.0.0
當我進行上述更改時,我可以使用主機名從任何地方連接到這台機器。