MySQL 5.5 社區版 Windows 安裝、配置、命令列操作、Navicat 圖形化管理、JDBC 驅動整合與 NetBeans/Java 連線完整實戰教學,適合初學者快速上手。
https://dev.mysql.com/downloads/mysql/5.5.htmlmysql-5.5.36-win32.msi (32位) 或 winx64.msi (64位)abcd),記住!localhost、埠 3306、用戶 root、密碼安裝時設定的mysql -u root -p # 提示輸入密碼
mysql -u root -pabcd # 直接帶密碼 (無空格)
exit / quit / \q # 退出
mysql -h 192.168.0.1 -u root -p1234
# 或
mysql -h 192.168.0.1 -u root -p 1234
| 操作 | 命令 |
|---|---|
| 顯示庫 | SHOW DATABASES; |
| 使用庫 | USE mysql; |
| 顯示表 | SHOW TABLES; |
| 看表結構 | DESC tbl_name; |
| 建庫 | CREATE DATABASE school; / DROP DATABASE IF EXISTS school; |
| 建表 | CREATE TABLE teacher (id INT AUTO_INCREMENT PRIMARY KEY, name CHAR(10) NOT NULL, address VARCHAR(50) DEFAULT 'ChengDu', year DATE); |
| 刪表/庫 | DROP TABLE teacher; / DROP DATABASE school; |
| 增/改/刪/查 | INSERT INTO teacher VALUES(0,'Wang','BJ','1988-10-10');UPDATE teacher SET address='CD' WHERE name='Wang';DELETE FROM teacher WHERE name='Jiang';SELECT * FROM teacher; |
| 統計行數 | SELECT COUNT(*) FROM teacher; |
mysql -u root -pabcd < school.sql
-- school.sql 內容:
DROP DATABASE IF EXISTS school;
CREATE DATABASE school;
USE school;
CREATE TABLE teacher (...);
INSERT INTO teacher VALUES('001','Tom','ChengDu','1976-10-10');
...
-- 建用戶 test1,全庫增刪改查,任意主機
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'test1'@'%' IDENTIFIED BY 'abc';
-- 建用戶 test2,僅本地、指定庫 mydb
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY 'abc';
-- 移除密碼
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'test2'@'localhost' IDENTIFIED BY '';
-- 修改密碼 (5.7+)
ALTER USER 'test1'@'%' IDENTIFIED BY 'newpass';
FLUSH PRIVILEGES;
mysql-connector-java-5.1.x-bin.jar%JAVA_HOME%/lib 或專案 Libraries → Add JAR/Folderlocalhost (本地) 或遠程 IPimport java.sql.*;
public class MySQLTest {
public static void main(String[] args) {
String url = "jdbc:mysql://127.0.0.1:3306/school";
String user = "root";
String pass = "abcd";
try (Connection con = DriverManager.getConnection(url, user, pass)) {
// 1. 載入驅動 (JDBC 4.0+ SPI 自動載入,可省略)
// Class.forName("com.mysql.jdbc.Driver").newInstance();
try (Statement stmt = con.createStatement()) {
// 新增
stmt.executeUpdate("INSERT INTO user(username,password) VALUES('qgao','123456')");
try (ResultSet rs = stmt.executeQuery("SELECT LAST_INSERT_ID()")) {
if (rs.next()) System.out.println("Insert ID: " + rs.getInt(1));
}
// 刪除
long del = stmt.executeUpdate("DELETE FROM user WHERE username='Li Si'");
System.out.println("DELETE: " + del);
// 更新
long upd = stmt.executeUpdate("UPDATE user SET password='1234' WHERE username='Gao Shou'");
System.out.println("UPDATE: " + upd);
// 查詢
try (ResultSet rs = stmt.executeQuery("SELECT * FROM user")) {
while (rs.next()) {
System.out.printf("user: %s, pass: %s%n", rs.getString("username"), rs.getString("password"));
}
}
}
} catch (SQLException e) {
System.err.println("MYSQL ERROR: " + e.getMessage());
e.printStackTrace();
}
}
}
cd \bin
mysqladmin -u root -p1234 password abcd # 1234 舊密碼,abcd 新密碼
.sql 腳本,便於版控與自動化jdbc:mysql://host:port/db?useUnicode=true&characterEncoding=utf8mb4&useSSL=false&serverTimezone=Asia/Taipeitry-with-resources 自動關閉連線/Statement/ResultSetDriverManager.getConnection 直連從安裝到 Java 連線全流程打通,建立「命令列驗證 → GUI 管理 → 程式碼連線」三位一體開發習慣,MySQL 入門不再迷路。