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