環境準備
- 作業系統:Ubuntu 16.04/18.04/20.04
- MySQL 版本:5.7 / 8.0 (apt 官方倉庫)
一、安裝 MySQL
# 更新套件索引
sudo apt update
# 安裝伺服器與客戶端
sudo apt install -y mysql-server mysql-client
# 安裝過程會提示設定 root 密碼 (5.7) 或使用 auth_socket 插件 (8.0 預設)
# 8.0 若需密碼登入,安裝後執行:
sudo mysql_secure_installation
二、服務管理
| 操作 | 指令 |
| 啟動 | sudo systemctl start mysql |
| 停止 | sudo systemctl stop mysql |
| 重啟 | sudo systemctl restart mysql |
| 查看狀態 | sudo systemctl status mysql |
| 開機自啟 | sudo systemctl enable mysql |
三、登入 MySQL
# 方式 1:sudo 免密登入 (8.0 預設 root 使用 auth_socket)
sudo mysql
# 方式 2:密碼登入 (已設定密碼或修改認證插件)
mysql -u root -p
Enter password:
# 方式 3:指定主機埠口
mysql -h 127.0.0.1 -P 3306 -u root -p
四、基本 SQL 操作實戰
1. 查看所有資料庫
SHOW DATABASES;
2. 建立資料庫
CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. 進入資料庫
USE testdb;
4. 建立資料表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
email VARCHAR(100) NOT NULL,
age TINYINT UNSIGNED DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
5. 插入資料
INSERT INTO users (username, email, age) VALUES
('alice', 'alice@example.com', 25),
('bob', 'bob@example.com', 30);
6. 查詢資料
SELECT * FROM users;
SELECT username, email FROM users WHERE age > 25;
7. 更新資料
UPDATE users SET age = 26 WHERE username = 'alice';
8. 刪除資料
DELETE FROM users WHERE username = 'bob';
9. 查看表結構
DESC users;
SHOW CREATE TABLE users;
五、退出與關閉
EXIT; -- 或 QUIT; 或 \q
六、常見問題快速解決
- 忘記 root 密碼:
sudo systemctl stop mysql; sudo mysqld_safe --skip-grant-tables & → mysql -u root → FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass';
- 中文亂碼: 確認
/etc/mysql/mysql.conf.d/mysqld.cnf 含 character-set-server=utf8mb4,重啟服務。
- 遠程連線被拒: 修改
bind-address = 0.0.0.0,建立 '%' 主機用戶,開放防火牆 3306。
七、進階學習路徑
- 索引設計與
EXPLAIN 分析
- 事務隔離級別與鎖機制
- 主從複寫與 GTID
- 備份恢復策略 (mysqldump, XtraBackup, Binlog PITR)
- 效能調優