首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 匯入匯出 .sql 檔案與常用命令完整速查表

     編輯:MySQL 資料庫相關知識

一、在 MySQL Client 中執行 SQL 檔案

mysql> SOURCE /path/to/file.sql;

或在 Shell 直接導入:

mysql -u user -p db_name < /path/to/file.sql

二、連接 MySQL

場景命令範例
本機連接(無密碼)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 指令

指令說明
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.sql
  • 只匯入特定表:sed -n '/CREATE TABLE `target_table`/,/^UNLOCK TABLES;/p' backup.sql | mysql -u root -p db_name
  • 匯出時忽略某些表:mysqldump -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,納入自動化備份與部署流程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved