mysql二进制日志是乱码_mysql-MySQL二进制日志使用遇到的编码问题

以下是MySQL的二进制日志数据,其中

问题1:日志中/*!\C binary //!*/; 和 /*!\C utf8 //!*/;是什么作用?

使用场景:

解析二进制日志,存储到数据库中

再调取出来执行到别一个数据库

问题2:

存储SQL的时候会出现乱码,如

alter table lezhi_app.tmp

change etid etid int(11) NOT NULL comment '编号'

其中“编号”就成乱码了,SQl调取出来执行的时候就会报错,无法执行?(数据库默认使用了set names gbk,不使用set names的话也是乱码)

解决方案:

解析 /*!\C utf8 //!*/ 中的utf8,加上set names utf8 后,可以正常存储执行

问题2:

很多SQL是在 /*!\C binary //!*/; 下面

执行 set names binary 后,有部分中文SQL存储出现乱码(存储出现 ???)。

(我们数据编码用的是GBK)COMMIT/*!*/;# at 87931309#150108 20:08:13 server id 5 end_log_pos 87931465 Query thread_id=2649685 exec_time=0 error_code=0use `lezhi_app`/*!*/;SET TIMESTAMP=1420718893/*!*/;/*!\C utf8 *//*!*/;SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;alter table `lezhi_app`.`tmp` change `etid` `etid` int(11) NOT NULL comment '编号'/*!*/;# at 87931465#150108 20:08:13 server id 5 end_log_pos 87931529 Query thread_id=2649874 exec_time=0 error_code=0SET TIMESTAMP=1420718893/*!*/;/*!\C binary *//*!*/;SET @@session.character_set_client=63,@@session.collation_connection=28,@@session.collation_server=8/*!*/;BEGIN/*!*/;# at 87931529

数据库编码是这样的:

1421314391_584608.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值