其實之前說過 JAVA 代碼訪問數據庫的問題,這裏再重新說明一下訪問 MySQL 的問題。
資源有限,所以在 Windows XP 下利用 VM 搭建了一個 Unbuntu 的 Linux 系統,比較邪門的是,同樣的方法裝了三次,唯獨這臺機器就是無法通過 Network 訪問 Windows 的共享文件夾,不過不管它,回到正題。安裝 MySQL 很簡單,控制檯下輸入:
apt-get install mysql-server
安裝過程中,會提示輸入用戶名和密碼,用於數據庫的管理。這裏輸入用戶名 root ,密碼 root 。
MySQL 的配置
- 綁定IP地址。
找到 /etc/mysql/my.cnf 配置文件,將 bind-address=127.0.0.1 改爲 bind-address=192.168.72.130,其中 192.168.72.130 爲本機的 IP 地址,意思是將 MySQL 綁定到此 IP 地址,修改後在本機試驗時,顯示無法訪問,因爲在配置文件 /etc/hosts 中,localhost 對應的 IP 地址爲 127.0.0.1,而 MySQL 已經綁定到了 192.168.72.130 這個 IP 地址。
- 添加用戶。
進入控制檯,按如下操作:
-
- mysql -uroot -proot mysql
- show tables;
- select * from user;
- grant all privileges on db.* to leidiqiu@'%' identified by '888888';
- flush privileges;
- select * from user;
- exit;
- /etc/init.d/mysql restart
解釋
-
- 進入 mysql ,用戶爲 root,密碼爲 root,數據庫爲 mysql(後者),-u 意爲用戶,-p 意爲密碼,數據庫 mysql 保存着一些數據庫相關的表,如表 user 保存着一些用戶信息。
- 顯示 mysql 數據庫的所有表,記得後面有個 ; 號。
- 顯示錶 user 的信息。
- 增加用戶 leidiqiu ,所有權限,數據庫爲 db ,後面的 .* 不可少,% 代表對所有遠程的 IP 地址,如果要限定 IP 地址的話,單獨寫上 IP 地址,密碼是 888888,注意引號 ' 不可少,用來表示是字符串。
- 使設置生效。
- 查看錶 user,看是否添加上了。
- 退出 MySQL。
- 重啓 MySQL 服務器。
遠程的JAVA代碼
-
下載支持MySQL的jar包 mysql-connector-java-5.0.8-bin.jar ,放在工程目錄下。
-
之前配置的 MySQL 中,已經有一個數據庫 db,其中有一個表 student。
package com.ldq;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test05 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
Class.forName("com.mysql.jdbc.Driver");
String sql = "SELECT * FROM student";
Connection con = DriverManager
.getConnection("jdbc:mysql://192.168.72.130:3306/db",
"leidiqiu", "888888");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out
.println(rs.getInt("id") + " " + rs.getString("name"));
}
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}
}
輸出結果:
1001 zhang
1002 wang
注:
如果是在本機試驗,應使用:
DriverManager.getConnection("jdbc:mysql://192.168.72.130:3306/db", "leidiqiu", "888888");
進入到工程目錄,控制檯命令:
javac Test05.java
java -cp mysql-connector-java-5.0.8-bin.jar:. Test05
-cp 意思是指定類的路徑。
: 用於分隔 jar 路徑和當前路徑 . ,別忘那個點。