Mysql

RHEL 6 中的 mysql jdbc 連接問題

  • July 19, 2014

我已經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

當我進行上述更改時,我可以使用主機名從任何地方連接到這台機器。

引用自:https://unix.stackexchange.com/questions/145416