国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

使用MySQL MySqldump命令導出數據時的注意事項

2024-07-24 12:46:53
字體:
來源:轉載
供稿:網友

今天使用mysqldump命令備份數據的時候出現了一個問題。
一開始遷移 Discuz 7 論壇的 mysql 數據庫時,采用 mysqldump 命令的時候一切順利,但導入的時候卻遇到了
 ERROR 1062 (xxxxx) at line 1262: Duplicate entry 'XXX' for key 'XXX‘ 錯誤,并停在原地。

對于遇到相同錯誤的朋友千萬別第一時間就嘗試用 –force 參數強行導入(除非你原來的數據庫已經崩潰)。因為這樣做的話,即使導入了,也會有一大片數據丟失!
這時候你可以嘗試以下2個方法:

一、mysqldump 備份的時候使用 --extended-insert=false 參數。

原理如下:
使用MySqldump命令導出數據時的注意
在使用Mysql做基礎數據庫時,由于需要將庫B的數據導入庫A,而A,B庫又包含大量相同的數據,需要使用mysqldump導出腳本.
通常的命令會是

mysqldump -t 'dbName' > 'scriptName.sql'mysql -f 'dbName' < 'scriptName.sql'

而使用如下命令導入到A庫時不會成功,現象是報出幾個Duplicate key error后就完畢了,并未將其余正確的數據插入到A庫中.
搗鼓了好一會,發現在使用mysqldump導出的腳本命令中,insert語句采用是multiline insert synax.而不是采用single insert synax.原來是這個問題. 多行的插入語法在第一個主健重復錯誤后就不執行后續的對應表的插入語句了.
于是再加參數 --extended-insert=false,完整的命令是

mysqldump --extended-insert=false dbname > scriptname.sql

二、手工把表中username里存在重復的值刪除

使用數據庫工具 Navicat 之類的,執行查詢:

Select username,Count(*) From cdb_members Group By username Having Count(*) > 1

結果中就能顯示出表中存在重復的字段, 你會看到2個或者多個完全一模一樣重復的用戶名。刪除其中一行的記錄,保存后再導出數據庫。
這里需要特別注意:備份的時候,把表結構跟數據分開!

以下是 mysqldump 的一些使用參數

備份數據庫:

#mysqldump 數據庫名 >數據庫備份名#mysqldump -A -u用戶名 -p密碼 數據庫名>數據庫備份名#mysqldump -d -A --add-drop-table -uroot -p >xxx.sql

1.導出結構不導出數據

mysqldump -d 數據庫名 -uroot -p > xxx.sql

2.導出數據不導出結構

mysqldump -t 數據庫名 -uroot -p > xxx.sql

3.導出數據和表結構

mysqldump 數據庫名 -uroot -p > xxx.sql

4.導出特定表的結構

mysqldump -uroot -p -B數據庫名 --table 表名 > xxx.sql#mysqldump [OPTIONS] database [tables]

mysqldump支持下列選項:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丽水市| 凤台县| 罗江县| 固安县| 英吉沙县| 拜城县| 邵阳县| 大庆市| 新平| 辽源市| 襄汾县| 连州市| 绵竹市| 志丹县| 饶平县| 孙吴县| 静海县| 施秉县| 新余市| 南和县| 衡阳县| 松阳县| 岳阳市| 玛曲县| 怀宁县| 嘉禾县| 古交市| 洪江市| 新竹县| 萨嘎县| 防城港市| 勐海县| 汝阳县| 辽中县| 福海县| 怀化市| 来凤县| 塔城市| 大厂| 泾川县| 彰化县|