mac mysql excel乱码_Mac 下彻底解决 mysql 中文乱码问题

数据库中文乱码是个比较常见的问题,今天笔者就遇到了。系统环境:macOS Sierra 10.12.6

MySQL 版本:5.7.18 Homebrew

连接软件:Navicat Premium 12.0.12 TNT edition

1. MySQL程序问题1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20#启动

mysql.server start

#关闭

mysql.server stop

#执行mysql命令

mysql;

#查看编码设置[下面显示的是已经设置好的]

mysql> show variables like '%char%';

+--------------------------+--------------------------------------------------------+

| 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 |

| character_sets_dir | /usr/local/Cellar/mysql/5.7.18_1/share/mysql/charsets/ |

+--------------------------+--------------------------------------------------------+与客户端(网页或软件:web/终端/数据库管理工具)有关的:character_set_client:对客户端的请求字符串进行编码

character_set_connection:连接服务器时的默认编码,例如navicat连接阿里云服务器

character_set_results:表示客户端想以哪种编码接收查询结果

如果后两个没有特别指定,则默认和character_set_client是一样的

与服务器端(增删查改命令)有关的:character_set_server:服务器编码

character_set_database:创建数据库时的默认编码

如果后一个没有特别指定,则默认和character_set_server是一样的

其他:character_set_filesystem:以二进制文件进行设置,不影响字符显示

character_set_system:用于mysql存储标识符,一直是UTF8,也不影响字符显示

因此如果字符编码有异常,我们只需要在my.cnf中对character_set_client与character_set_server进行设置就ok了。1

2

3

4

5#默认路径下,配置文件加载的先后顺序

/etc/my.cnf

/etc/mysql/my.cnf

/usr/local/etc/my.cnf

~/.my.cnf

但是我的系统是通过 homebrew 安装的 MySQL,默认情况下没有 my.cnf 文件。1cd /etc && touch my.cnf

使用 vi 编辑器将下面内容写入 /etc/my.cnf 。1

2

3

4[client]

default-character-set=utf8

[mysqld]

character-set-server=utf8

保存退出,然后停止 MySQL(mysql.server stop),并重新启动 MySQL(mysql.server start),并用以下命令校验字符编码信息。1

2

3

4#执行mysql命令

mysql -uroot -proot;

#查看编码设置[下面显示的是已经设置好的]

mysql> show variables like '%char%';

2. MySQL 数据库数据问题

如果显示的数据查询结果还是乱码,可能就是之前创建的数据库或数据表有问题了,可以通过以下方式进行检查。查询数据库支持的所有字符集1show character set;或者show char set;

查看mysql服务器当前状态1status或者\s

查看数据库编码1show create database dbname;

查看数据表编码1show create table tablename\G;

查看数据表字段编码1show full columns from tablename;

如果发现编码不是 UTF-8,请重新创建相应的数据库/数据表/字段 。

3. Mac终端-iTerm2软件设置

这一种情况比较少见,就是Mac终端不支持显示中文,这样也会导致乱码。

一方面对终端软件如iterm2的软件偏好设置进行修改为utf-8。

另一方面就是在终端执行以下语句:1

2LANG='zh_CN.UTF-8';

export $LANG;

4. MySQL 管理工具—Navicat 软件设置

笔者这次遇到的问题就属于最后一种,前面的数据库配置,查看的编码都是正确的,并且使用程序查询出来的也没有乱码,偏偏 Navicat 显示数据表时中文便乱码了,那么请新建mysql服务器连接,Encoding那一栏不要选择默认的 UTF-8,选择Auto即可正常显示中文。

baefa57d0127b987b9b4ba0a993ed7fb.png

5. 参考

Mac系统解决MySQL乱码问题

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值