MySQL workbench 和mysql command之中的中文显示???解决!

一、发现问题的错误点:中文显示错误

中文显示错误,插入和重写的中文均显示为??,无法进行处理。第一时间便想到了编码格式的问题,因为windows下计算机的存储格式默认为GB2312字符格式,而在mysql安装的时候客户端和服务器端都默认的是latin1格式。
在mysql command 中查询一下安装的字符格式:

进入数据库


mysql> show variables like 'char%'; //查询当前数据库的编码格式

--------------------------±-------------------------------------+
| Variable_name | Value |
±-------------------------±-------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | latin1 |
| character_set_system | utf8 |

mysql>  set names utf8;//等价于下面三句话:
mysql>  SET character_set_client = utf8;    
mysql>  SET character_set_results = utf8;    
mysql>  SET character_set_connection = utf8; 

设置数据库和服务器的编码格式


mysql>  set  character_set_database=utf8;
mysql>  set character_set_server= utf8;

在全部更改好之后应该为:

±-------------------------±-------------------------------------+
| Variable_name | Value |
±-------------------------±-------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |

二、问题来了,在commond命令行中更改之后再次打开查询发现编码格式仍然没有改变。

解决思路:在sql下载保存的位置找到 my.ini配置文件,修改其中的相关配置。
反复查询了自己的安装路径,尴尬的是my.ini不见了,甚至my-default.ini 文件也没有,尝试自己新建了一个my.ini文件将相关的配置添加进去。
设置之后再打开commond命令行。新问题出现了,mysql commond 闪退(我现在还没有发现问题的原因),查阅资料后查看MySQL 8.0 Command Line Client的保存路径
"C:\Program Files\MySQL\bin\mysql.exe" "--defaults-file=C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" "
默认存储的位置在MySQL Server 8.0\my.ini但是我查找了很多遍这个地方都没有这个文件。由于之前是可以打开的,而在新建或修改了my.ini之后却出现了闪退的问题。在之后我在C:\ProgramData\MySQL\MySQL Server 8.0目录下找到了my.ini文件再将其修改和复制C:\ProgramData\MySQL\MySQL Server 8.0\my.ini竟然成功了。虽然成功但是其闪退的原因还是没有找到(肯定不是因为缺失了my.ini文件,因为之前没有也能正常打开)

三、在MySQL workbench 中解决编码问题:

在MySQL workbench中解决中文的问题比较简单,主要是要注意在每一个过程中定义的字符集(特别是注意一下定义属性时采用的编码格式)

数据库定义一般采用utf8编码格式的

database

表格的编码格式定义

table

表格属性(实体属性的定义一般要default charset,如果检查发现是latin1的话就需要更改了)

属性
可以发现重新检查和调整之后再测试的结果成功了!!!
在这里插入图片描述
处理留下的问题:
1、为什么命令行设置编码格式不能一直保存
2、为什么MySQL 8.0 Command Line的目标地址是my.ini文件但是在文件夹下却找不到这个文件,而且其能正常运行,反倒是新建了一个my.ini文件之后出现了闪退的新问题

发布了7 篇原创文章 · 获赞 2 · 访问量 855

猜你喜欢

转载自blog.csdn.net/jerry_liufeng/article/details/104316493
今日推荐