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

MySQL 命令行導入導出 SQL 文件完整指南:從環境配置到大文件突破

     編輯:MySQL 資料庫相關知識

一、環境配置:讓 mysql/mysqldump 進入 PATH

# Windows:右鍵「此電腦」→屬性→高級系統設置→環境變量
# PATH 新增:C:\Program Files\MySQL\MySQL Server 8.0\bin

# Linux:通常安裝包已配置,若無
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> ~/.bashrc && source ~/.bashrc

二、命令行連接 MySQL

mysql -h localhost -u root -p
# 輸入密碼後進入 mysql> 交互模式

# 常用交互命令
SHOW DATABASES;
USE db_name;
SHOW TABLES;
DESC tbl_name;

三、導出 (mysqldump)

場景命令說明
全庫導出mysqldump -h localhost -u root -p db_name > /path/db_name.sql含結構+數據
單表導出mysqldump -h localhost -u root -p db_name tbl_name > /path/tbl_name.sql
僅導出結構mysqldump -h localhost -u root -p db_name --no-data > /path/db_struct.sql--add-drop-table 可加 DROP
導出壓縮mysqldump ... | gzip > /path/db_name.sql.gz管道壓縮,節省空間
排除表mysqldump ... --ignore-table=db.log_table多表重複參數
主從一致性備份mysqldump --single-transaction --master-data=2 ...InnoDB 熱備份標配

四、導入 (mysql)

# 1. 先建庫(若不存在)
mysql -h localhost -u root -p -e "CREATE DATABASE db_name CHARSET=utf8mb4;"

# 2. 導入
mysql -h localhost -u root -p db_name < /path/db_name.sql

# 3. 壓縮文件直接導入
gunzip -c /path/db_name.sql.gz | mysql -h localhost -u root -p db_name

五、大文件導入突破限制(默認 max_allowed_packet=2M/4M)

方案 1:調整服務端參數(需重啟)

# my.cnf
[mysqld]
max_allowed_packet = 512M
# 重啟生效

方案 2:調整客戶端參數(無需重啟,臨時生效)

mysql --max_allowed_packet=512M -h localhost -u root -p db_name < big.sql

方案 3:分割大文件導入

# 按行分割(如 10萬行一個文件)
split -l 100000 big.sql chunk_
# 依次導入
for f in chunk_*; do mysql -h localhost -u root -p db_name < $f; done

方案 4:源碼編譯/部署時調大默認值

編譯參數 -DMAX_ALLOWED_PACKET=536870912 (512M)。

六、PHP 環境下的上傳限制(phpMyAdmin 等)

; php.ini
memory_limit = 256M
upload_max_filesize = 200M
post_max_size = 200M
; 修改後重啟 php-fpm / Apache

七、總結清單

  1. PATH 配置一次,終身受益
  2. 導出習慣加 --single-transaction --master-data=2(主庫)
  3. 大文件**管道壓縮傳輸 + 客戶端 max_allowed_packet + 分割導入** 三板斧
  4. 導入前 **建庫指定 utf8mb4**,導入後 **驗證行數/校驗和**
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved