mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1'

上一篇中,因为使用参数强制启动了mysql服务,所以需要使用mysqldump对数据进行备份
但是备份过程中报错如下:
[root@test11g ~]# mysqldump -uroot -proot -h 192.168.100.141 --all-database > all.sql
mysqldump: Couldn't execute 'SET OPTION SQL_QUOTE_SHOW_CREATE=1': You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_QUOTE_SHOW_CREATE=1' at line 1 (1064)

检查发现是mysqldump工具版本的问题:
默认使用的是系统自带的
[root@test11g ~]# which mysqldump
/usr/bin/mysqldump

使用新版本的备份
[root@test11g ~]# /tol/mysql/bin/mysqldump -uroot -proot -h 192.168.100.141 --database  live_koo mysql > all.sql
Warning: Using a password on the command line interface can be insecure.
Warning: Using unique option prefix database instead of databases is deprecated and will be removed in a future release. Please use the full name instead.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23249684/viewspace-1386984/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23249684/viewspace-1386984/

### mysqldump 表空间丢失问题解决方案 当执行 `mysqldump` 时遇到 **Tablespace is missing for table 'engine_cost' error 1812** 的错误,通常是因为目标数据库缺少相应的表空间文件(`.ibd` 文件),或者在导出/导入过程中未正确处理 InnoDB 表的空间分离模式。 以下是针对该问题的分析和解决方法: #### 错误原因 此错误的根本原因是,在尝试恢复备份数据到新环境时,InnoDB 存储引擎无法找到对应的 `.ibd` 表空间文件。这可能发生在以下场景之一: - 数据库迁移期间删除了原有的 `.ibd` 文件[^1]。 - 使用了不完整的备份策略,仅导出了逻辑结构而忽略了物理存储文件。 - 导入操作中未启用或配置正确的选项来重建缺失的表空间。 #### 解决方案一:重新创建表空间 如果确认原表空间已丢失,则可以通过手动方式重置并初始化新的表空间。具体步骤如下所示: ```sql -- 删除损坏的目标表及其关联对象 DROP TABLE performance_schema.engine_cost; -- 手动定义一个新的空表结构以触发自动分配默认表空间 CREATE TABLE performance_schema.engine_cost ( -- 这里复制原始DDL语句中的列定义部分... ) ENGINE=InnoDB; ``` 注意:以上 SQL 片段仅为示意用途,请根据实际业务需求调整字段列表等内容后再运行。 #### 解决方案二:修改 dump 脚本参数 为了避免未来再次发生类似情况,建议优化现有的 mysqldump 命令调用形式,增加必要的附加标志位确保完整捕获所有元信息: ```bash mysqldump \ -u root \ -p password \ -h localhost \ --all-databases \ --single-transaction \ --routines \ --triggers \ --events \ --hex-blob \ --set-gtid-purged=OFF \ > full_backup.sql ``` 其中特别需要注意的是加入 `--no-tablespaces` 参数可以防止因个别孤立实例引发全局崩溃风险;而对于那些确实依赖外部独立磁盘映射关系的对象则应单独提取出来另行处置[^4]。 另外还可以考虑利用官方工具 Percona XtraBackup 实现热备功能从而规避传统冷拷贝带来的局限性。 #### 额外提示关于 CREATE 和 ALTER 失败的情况 对于某些特定条件下可能出现的建表失败现象(比如指定非法属性组合),自 MySQL 5.7 开始已经改进了诊断反馈机制,将原先模糊不清的一般异常替换成了更具针对性的新编码 ER_MISSING_HA_CREATE_OPTION ,便于开发者快速定位根源所在[^2] 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值