mysqldump 使用 問題記錄

mysqldump 使用 問題記錄

報錯一
語句如下:

mysqldump -h'192.168.11.31' -P3306 -uroot -proot --no-create-info --no-create-db --complete-insert --replace --skip-add-locks --skip-comments --skip-triggers  --databases testdb > 2020-06-03 22:54:20_自動備份.sql

報錯如下:
mysqldump: Couldn't execute 'SELECT COLUMN_NAME, JSON_EXTRACT(HISTOGRAM, '$."number-of-buckets-specified"') FROM information_schema.COLUMN_STATISTICS WHERE SCHEMA_NAME = 'testdb' AND TABLE_NAME = '111';': Unknown table 'column_statistics' in information_schema (1109)
問題出現原因:
高版本的mysqldump(比如8.0版本)備份低版本mysqlserver(比如5.7版本),會報上述錯誤。這是由於高版本的mysqldump加入了“–column-statistics”並且默認狀態爲on.官方描述入下圖:
在這裏插入圖片描述
所以正確的語句應該是:

mysqldump -h'192.168.11.31' -P3306 -uroot -proot --no-create-info --no-create-db --complete-insert --replace --skip-add-locks --skip-comments --skip-triggers  --skip-column-statistics --databases testdb > 2020-06-03 22:54:20_自動備份.sql

或者是下面這段也可以:

 mysqldump -h'192.168.11.31' -P3306 -uroot -proot --no-create-info --no-create-db --complete-insert --replace --skip-add-locks --skip-comments --skip-triggers  --column-statistics=0 --databases testdb > 2020-06-03 22:54:20_自動備份.sql

報錯 二
語句與上一致:

mysqldump -h'192.168.11.31' -P3306 -uroot -proot --no-create-info --no-create-db --complete-insert --replace --skip-add-locks --skip-comments --skip-triggers  --databases testdb > 2020-06-03 22:54:20_自動備份2.sql

報錯如下:

mysqldump: Got error: 1049: "Unknown database '22:54:20_自動備份2.sql'" when selecting the database

一開始看到這個錯誤,一頭霧水。什麼鬼?明明寫的文件名稱,怎麼識別成database了?後來,仔細一想,是不是時間格式中間導致了sh解析錯了?然後把文件名稱用單引號包括進去,再次測試。好了,成功備份了數據庫
完整語句如下:

mysqldump -h'192.168.11.31' -P3306 -uroot -proot --no-create-info --no-create-db --complete-insert --replace --skip-add-locks --skip-comments --skip-triggers  --databases testdb > '2020-06-03 22:54:20_自動備份2.sql'

恢復數據庫語句如下:

mysql -h192.168.11.31 -P3306 -uroot -proot  -f < '2020-06-03 22:54:20_自動備份2.sql'

遇到問題記錄一下,能幫助到遇到同樣問題的朋友,就更好了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章