mysqlbinlog: unknown variable 'default-character-set=utf8' Mariadb数据库实验7记录

问题描述

在Mariadb中使用mysqlbinlog对数据库进行从日志中恢复的操作。

[root@ecs mysql]# mysqlbinlog --start-position="578" --stop-position="1355" bin.000009 | mysql -u root -p
mysqlbinlog: unknown variable 'default-character-set=utf8' 
Enter password: 
[root@ecs mysql]# 

虽然能够输入密码并检验密码的错误,但是这个语句的预期执行效果并没有出现,我试了以下几个方法,实锤这个语句没有被执行

  1. 使用错误的密码,不能通过验证,无数据库恢复反应;
  2. 使用不存在的日志文件,能通过密码验证,无数据库恢复反应;
  3. 单一start参数或者单一stop参数,能通过密码验证,无数据库恢复反应;
  4. 给日志文件加上绝对路径,能通过密码验证,无数据库恢复反应;
  5. 重启数据库服务,无数据库恢复反应;
  6. 根据日志的commit确定多个时间端进行修改position,能通过密码验证,无数据库恢复反应;
  7. 每次进行数据库操作后,都进行日志查看,精确到哪个commit对应那个增删改操作,矫正position,能通过密码验证,无数据库恢复反应;

第一次得到的结论是,mariadb可能取消了这个操作,然后默默打开了mariadb的官网查看最新版文档,没有删除锕!!!(我想去翻译,可每次用github登录之后要填信息,填完点击确认却没反应!!!高墙出来挨打)。

于是,十多次失败后的结论就是:unknown variable 这个提示说明语句无法正确执行,即使能输入密码验证。
于是问题就变成了如何close这个issue

解决办法

方法一:注释

vim /etc/my.cnf.d

里面有五个文档,把client和serve里面的
default-character-set=utf8
变成
#default-character-set=utf8
即注释掉,这样不用重启数据库服务。

但是还没有找到完全之策。

方法二:defaults

mysqlbinlog --no-defaults bin.000009 

这样的话不会报出上面的提示,唯一的缺陷就是这个中文会乱码。。。

参考

  • https://blog.csdn.net/gnufre/article/details/6955169 (推荐)
  • https://www.cnblogs.com/cobbliu/p/4311926.html (着实看不懂)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值