MySQL命令行中文编码完美解决方案

MySQL命令行查询,若数据内容含有中文字符则会在中文字符位置显示“”,本文针对这个问题提出解决方案


编码解决踩坑流程
  • MySQL命令行中文编码显示问题

    • |MySQL 编码为Latinl 与UTF8冲突

    • | 执行命令:set character_set_results=gb2312; 直接显示中文(命令行查询语句执行后),但是插入row时中文仍旧错误

    • | 继续执行:

`set character_set_server=gb2312;

set character_set_client=gb2312;`

至此正常.(能够在插入数据后中文显示)

- | 存在问题:修改只在**当前会话**(*cmd or bash*)生效,重启失效



- | **完美解决**: 修改my.ini

`[client]下编码由latin -> utf8

[server]下编码改为utf8`

- | 重启mysql服务, 倘若操作不当(命令行操作失败),报错1067

在my.ini添加: `innodb_force_recovery = 1` ,重启即可



- | 若数据库操作程序运行出错->Got error -1 from storage engine: 

- | 修改`innodb_force_recovery=0`

所遇到的错误
  • 1067报错,原因数据库关闭异常直接导致数据库日志系统异常无法启动

  • Got error -1 from storage engine:(数据库代码java,jdbc操作), 原因innodb_force_recovery = 1导致无法执行插入,删除等操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值