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

MySQL 數據導出全攻略:SELECT INTO OUTFILE、mysqldump、跨主機遷移實戰

     編輯:MySQL 資料庫相關知識

方法一:SELECT ... INTO OUTFILE(伺服器端導出)

SELECT * FROM tutorials_tbl
INTO OUTFILE '/tmp/tutorials.txt'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';

限制條件

  • 需 FILE 權限
  • 目標文件**必須不存在**(防覆蓋)
  • 文件生成在**伺服器主機**,需登入該主機取回
  • 文件屬主為 mysql,權限 644(全域可讀、不可刪)

方法二:mysqldump 導出原始數據(--tab)

mysqldump -u root -p --no-create-info --tab=/tmp TUTORIALS tutorials_tbl
  • 產生 .txt(數據)+ .sql(建表語句)
  • 適合大量數據、需保留表結構場景

方法三:mysqldump 導出 SQL 格式(最通用)

# 單表
mysqldump -u root -p TUTORIALS tutorials_tbl > dump.txt
# 多表
mysqldump -u root -p TUTORIALS t1 t2 > dump.txt
# 全庫
mysqldump -u root -p TUTORIALS > full_dump.txt
# 所有庫
mysqldump -u root -p --all-databases > all_dump.txt

跨主機遷移兩種方式

1. 中間文件法

# 源主機
mysqldump -u root -p db_name table_name > dump.txt
# 目標主機(先建庫)
mysql -u root -p db_name < dump.txt

2. 管道直連法(無中間文件)

mysqldump -u root -p db_name table_name | mysql -h target_host db_name

備份策略建議

  • 全量備份:每日 --all-databases --single-transaction --master-data=2
  • 增量備份:啟用 binlog,定期 mysqlbinlog 導出
  • 驗證備份:定期恢復演練,校驗 CHECKSUM TABLE
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved