首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 命令行導入導出 .sql 文件完整實戰指南

     編輯:MySQL 綜合教學

無形界面環境下的 MySQL 數據備份與恢復操作

生產環境常無圖形化工具,掌握 mysqldump 導出與 mysql 導入命令是運維基本功。本文涵蓋庫/表/結構導出、大文件導入優化、常見參數詳解。

前置準備

REM 進入 MySQL bin 目錄(按實際安裝路徑調整)
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

REM 登錄驗證(可選,導出導入命令會提示輸入密碼)
mysql -h localhost -u root -p

導出操作

需求命令範例關鍵參數說明
導出整庫 mysqldump -h localhost -u root -p db_name > backup.sql 包含建表語句、插入數據
導出單表 mysqldump -h localhost -u root -p db_name table_name > table.sql 指定表名
僅導出結構(無數據) mysqldump -h localhost -u root -p db_name --no-data > schema.sql --no-data 或 -d
導出結構+數據,並帶 DROP TABLE mysqldump -h localhost -u root -p db_name --add-drop-table > full.sql 便於覆蓋導入
導出壓縮(節省空間/傳輸) mysqldump -h localhost -u root -p db_name | gzip > backup.sql.gz 管道配合 gzip
指定字符集避免亂碼 mysqldump --default-character-set=utf8mb4 ... 關鍵!防止中文亂碼

導入操作

REM 方式一:SQL 文件導入(最常用)
mysql -h localhost -u root -p db_name < backup.sql

REM 方式二:進入 mysql 交互模式後執行
mysql -h localhost -u root -p db_name
mysql> SOURCE /path/to/backup.sql;

REM 方式三:壓縮文件直接導入(Linux/Mac/Git Bash)
gunzip < backup.sql.gz | mysql -h localhost -u root -p db_name

大文件導入優化(超過默認限制)

現象:ERROR 2006 (HY000): MySQL server has gone away 或導入極慢。

服務端配置調整(my.ini/my.cnf)

[mysqld]
max_allowed_packet = 512M          # 關鍵:最大包大小
innodb_log_file_size = 256M        # 配合大事務
innodb_buffer_pool_size = 2G       # 視內存而定,建議 50-70% 物理內存
net_read_timeout = 600
net_write_timeout = 600

客戶端導入技巧

  • 關閉自動提交:mysql --max_allowed_packet=512M -e "SET autocommit=0; SOURCE backup.sql; COMMIT;"
  • 分批導入:使用 sed 或腳本按表/行數切分大文件
  • 禁用索引/外鍵檢查(導入後重建):
    SET FOREIGN_KEY_CHECKS=0;
    SET UNIQUE_CHECKS=0;
    SOURCE backup.sql;
    SET FOREIGN_KEY_CHECKS=1;
    SET UNIQUE_CHECKS=1;

php.ini 相關參數(僅影響 PHP 腳本導入,如 phpMyAdmin)

參數默認值建議調整
upload_max_filesize2M200M
post_max_size8M200M
memory_limit128M512M
max_execution_time30300
max_input_time60300

驗證備份完整性

REM 檢查文件頭尾
head -20 backup.sql
tail -10 backup.sql

REM 統計表數量
grep -c "CREATE TABLE" backup.sql

REM 試導入測試庫
mysql -h localhost -u root -p test_db < backup.sql
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved