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'

遇到问题记录一下,能帮助到遇到同样问题的朋友,就更好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值