MySQLに外部からJDBCドライバで接続する |
久しぶりにJDBCでMySQLに接続しようとしたときはまったのでメモ
構成は・・・
開発端末(WinXP)
MySQLサーバー(Debian)
まず、MySQLの外部接続許可
以前調べていたけど、片言過ぎて意味わからず。
MySQL 外部接続許可
まずは開発端末から接続できるようにMySQLを構成。
※開発用なので、とりあえず動けばいい(セキュリティ完全無視)で設定しています。
1.bind-addressの編集
# vi /etc/mysql/my.cnf
bind-addressをコメント
#bind-address = 127.0.0.1
2.mysqlユーザー(root)に外部接続許可の権限付与
# mysql -uroot -pPassword
mysql> grant all privileges on *.* to root@'%' IDENTIFIED BY 'Password' WITH GRANT OPTION;
これで、外部からMySQLに(とりあえず)接続できるようになるはずです。
MySQL用のJDBCドライバ
http://www.mysql.com/downloads/connector/j/
ここから、mysql-connector-java-5.1.13.zipをダウンロード。
解凍すると、mysql-connector-java-5.1.13-bin.jarが入っているので、
開発環境のビルドパスに含めます。
コネクション獲得のサンプル。
try {
//JDBCドライバロード
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://[ホストIP]/[データベース名]";
Connection con = DriverManager.getConnection(url, "root", "Password");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from sample_table");
while(rs.next()) {
System.out.println(rs.getString("sample_field"));
}
rs.close();
stmt.close();
con.close();
} catch(Exception e) {
e.printStackTrace();
}