cd mysql5.0\bin
mysqld --install # 安裝服務
net start mysql # 啟動服務
net stop mysql # 停止服務
mysql -u root -p # 本機登入,提示輸入密碼
mysql -h 192.168.1.100 -u root -p # 遠端登入
-- 全權限本機用戶
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'localhost' IDENTIFIED BY 'pass1' WITH GRANT OPTION;
-- 全權限任意主機用戶
GRANT ALL PRIVILEGES ON *.* TO 'user1'@'%' IDENTIFIED BY 'pass1' WITH GRANT OPTION;
-- 僅特定資料庫權限
GRANT SELECT,INSERT,UPDATE,DELETE ON mydb.* TO 'user2'@'%' IDENTIFIED BY 'pass2';
-- 移除密碼
GRANT SELECT ON mydb.* TO 'user2'@'%' IDENTIFIED BY '';
SHOW GRANTS FOR 'user1'@'localhost';
REVOKE ALL PRIVILEGES ON *.* FROM 'user1'@'localhost';
SHOW DATABASES;
USE mysql;
SHOW TABLES;
DESCRIBE user;
CREATE DATABASE testdb;
DROP DATABASE testdb;
CREATE TABLE t (id INT PRIMARY KEY, name VARCHAR(20));
DROP TABLE t;
DELETE FROM t;
SELECT * FROM t;
# 整庫匯出並壓縮
mysqldump -u root -p --opt testdb | gzip > testdb.sql.gz
# 單表匯出
mysqldump -u root -p testdb users > users.sql
# 僅匯出結構
mysqldump -u root -p -d --add-drop-table testdb > schema.sql
# 遠端同步
mysqldump -u root -p testdb | mysql -h remote_host -u root -p testdb
# 方式一:source 指令 (進入 mysql 後)
SOURCE /path/to/backup.sql;
# 方式二:管道導入
mysql -u root -p testdb < backup.sql
# 方式三:mysqlimport 導入文字檔 (欄位以 Tab 分隔)
mysqlimport -u root -p --fields-terminated-by=, testdb data.txt
| 選項 | 說明 |
|---|---|
--add-drop-table | CREATE 前加 DROP IF EXISTS |
--add-locks | INSERT 前後加 LOCK/UNLOCK TABLES |
-c / --complete-insert | INSERT 含欄位名,利於跨庫匯入 |
-q / --quick | 逐行讀取寫入,不佔大量記憶體 |
-t / --no-create-info | 僅導出資料,不含 DDL |
-d / --no-data | 僅導出結構 |
--opt | 開啟多項優化選項 (預設開啟) |
-w "WHERE" | 條件過濾導出資料 |
SELECT * INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
FROM orders WHERE order_date >= '2024-01-01';
可搭配 JOIN 產出複雜報表,直接導向檔案。
mysqlimport [options] db_name text_file
# 常用選項
-d, --delete 匯入前清空資料表
-f, --force 忽略錯誤繼續
-i, --ignore 跳過唯一鍵衝突行
-r, --replace 替換唯一鍵衝突行
-l, --lock-tables 匯入期間鎖表
--fields-terminated-by=, 指定分隔符
--lines-terminated-by=\n 指定行結束符
mysql> SET NAMES gbk; -- 或 charset gbk