mysql> SOURCE /path/to/file.sql;
或在 Shell 直接導入:
mysql -u user -p db_name < /path/to/file.sql
| 場景 | 命令範例 |
|---|---|
| 本機連接(無密碼) | mysql -u root -p(按 Enter 跳過密碼) |
| 本機連接(有密碼) | mysql -u root -p'password' |
| 遠端連接 | mysql -h 10.0.0.1 -u root -p'123' |
| 指定端口 | mysql -h 127.0.0.1 -P 3307 -u root -p |
| 退出 | exit / quit / \q |
# 方式 1:mysqladmin(需舊密碼)
mysqladmin -u root -p'oldpass' password 'newpass'
# 方式 2:SQL 語句(登入後)
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');
FLUSH PRIVILEGES;
-- 建立使用者並授權 CREATE USER 'app_user'@'%' IDENTIFIED BY 'strong_pass'; GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'app_user'@'%'; FLUSH PRIVILEGES; -- 僅授權特定表 GRANT SELECT ON mydb.orders TO 'readonly'@'%'; -- 回收權限 REVOKE INSERT ON mydb.* FROM 'app_user'@'%'; -- 刪除使用者 DROP USER 'app_user'@'%';
| 指令 | 說明 |
|---|---|
SHOW DATABASES; | 列出所有資料庫 |
USE db_name; SHOW TABLES; | 列出指定資料庫的表 |
DESC table_name; | 顯示表結構 |
SHOW CREATE TABLE table_name; | 顯示建表 SQL |
SHOW INDEX FROM table_name; | 顯示索引資訊 |
SHOW PROCESSLIST; | 查看當前執行緒 |
SHOW ENGINE INNODB STATUS; | InnoDB 內部狀態 |
SHOW VARIABLES LIKE 'max_connections'; | 查看系統變數 |
SHOW STATUS LIKE 'Threads_connected'; | 查看狀態變數 |
-- 建庫 CREATE DATABASE `db_name` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 建表 USE `db_name`; CREATE TABLE `users` ( `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, `name` VARCHAR(50) NOT NULL, `email` VARCHAR(100) NOT NULL UNIQUE, `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 刪庫/刪表 DROP DATABASE `db_name`; DROP TABLE `table_name`; -- 清空表資料(保留結構、自增歸零) TRUNCATE TABLE `table_name`; -- 刪除資料(可帶 WHERE,不重置自增) DELETE FROM `table_name`;
# 匯出整個資料庫 mysqldump -u root -p db_name > backup.sql # 匯出單張表 mysqldump -u root -p db_name table_name > table.sql # 僅匯出結構(不含資料) mysqldump -u root -p -d --add-drop-table db_name > schema.sql # 匯出多個資料庫 mysqldump -u root -p --databases db1 db2 > multi.sql # 壓縮匯出 mysqldump -u root -p db_name | gzip > backup.sql.gz
# 方式 1:SOURCE(需先建好資料庫) mysql -u root -p mysql> CREATE DATABASE db_name; mysql> USE db_name; mysql> SOURCE /path/to/backup.sql; # 方式 2:重導向(需先建好資料庫) mysql -u root -p db_name < backup.sql # 方式 3:解壓並匯入 gunzip < backup.sql.gz | mysql -u root -p db_name
mysql -u root -p --force db_name < backup.sqlsed -n '/CREATE TABLE `target_table`/,/^UNLOCK TABLES;/p' backup.sql | mysql -u root -p db_namemysqldump -u root -p db_name --ignore-table=db_name.log_table > backup.sql/*!40101 SET NAMES utf8mb4 */:mysqldump --default-character-set=utf8mb4 ...熟練掌握 mysqldump/mysql 導入導出與常用管理命令,是 DBA 與開發人員的基本功。建議將常用參數封裝為 Shell 腳本或 Makefile,納入自動化備份與部署流程。