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

来源:互联网 发布:php架构师书籍 编辑:程序博客网 时间:2024/05/19 01:31

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导致无法执行插入,删除等操作