mysql> SELECT * FROM db_archivelog\G
*************************** 1. row ***************************
id: 1
check_day: 2008-06-26
db_name: TBDB1
arc_size: 137
arc_num: 166
per_second: 1.6
avg_time: 8.7
適用於欄位較多、單行較寬的查詢結果。
mysql> PAGER less
mysql> SELECT * FROM large_table;
# 使用方向鍵翻頁,q 退出
mysql> NOPAGER -- 恢復預設
mysql> TEE output.txt
mysql> SELECT * FROM table;
mysql> NOTEE -- 關閉
mysql> SYSTEM ls -la
mysql> ! pwd
mysql> SOURCE /path/to/script.sql
mysql> . /path/to/script.sql
# 本地連線
mysql -u root -p
# 遠端連線
mysql -h 10.0.0.1 -u root -p123
# 指定資料庫
mysql -u root -p mydb
# 首次設定 root 密碼
mysqladmin -u root password 'newpass'
# 變更密碼
mysqladmin -u root -p'oldpass' password 'newpass'
-- 僅本地存取,特定資料庫權限(推薦)
GRANT SELECT, INSERT, UPDATE, DELETE
ON mydb.*
TO 'app_user'@'localhost'
IDENTIFIED BY 'strong_password';
-- 所有資料庫、所有主機(高風險,避免使用)
GRANT ALL PRIVILEGES
ON *.*
TO 'admin'@'%'
IDENTIFIED BY 'password'
WITH GRANT OPTION;
| 權限 | 範圍 | 說明 |
|---|---|---|
| SELECT | 表/欄 | 查詢資料 |
| INSERT | 表 | 新增資料 |
| UPDATE | 表/欄 | 修改資料 |
| DELETE | 表 | 刪除資料 |
| CREATE | 資料庫/表 | 建立物件 |
| DROP | 資料庫/表 | 刪除物件 |
| INDEX | 表 | 建立/刪除索引 |
| ALTER | 表 | 修改表結構 |
| GRANT OPTION | 全域 | 授權給他人 |
| FILE | 全域 | 讀寫伺服器檔案 |
| PROCESS | 全域 | 檢視/終止執行緒 |
| RELOAD | 全域 | 重載權限、刷新日誌 |
| SHUTDOWN | 全域 | 關閉 MySQL 服務 |
| SUPER | 全域 | 終止任何查詢、修改全域變數 |
REVOKE INSERT, UPDATE ON mydb.* FROM 'user'@'localhost';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'%';
SHOW DATABASES;
SHOW TABLES;
DESCRIBE table_name;
SHOW CREATE TABLE table_name;
SHOW INDEX FROM table_name;
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE mydb;
CREATE TABLE users (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE
) ENGINE=InnoDB;
DROP TABLE users;
DROP DATABASE mydb;
INSERT INTO users (name, email) VALUES ('John', 'john@example.com');
UPDATE users SET name = 'Jane' WHERE id = 1;
DELETE FROM users WHERE id = 1;
TRUNCATE TABLE users; -- 快速清空表
LOAD DATA LOCAL INFILE '/path/data.txt'
INTO TABLE users
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
mysql -u root -p mydb < backup.sql
# 完整備份
mysqldump -u root -p --all-databases > full_backup.sql
# 單一資料庫
mysqldump -u root -p mydb > mydb_backup.sql
# 僅結構
mysqldump -u root -p -d mydb > structure_only.sql
DELETE FROM mysql.user WHERE User='';UPDATE mysql.user SET Host='localhost' WHERE User='root';DROP DATABASE test;SHOW GRANTS FOR 'user'@'host';# Linux (systemd)
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
systemctl status mysqld
# Windows
net start mysql
net stop mysql