首先我想说这个问题.对于我来说坑了一下午
首先问题就是我用mybatispuls 连接mysql
第一步
jdbc:mysql://localhost:3306/11e?useUnicode=true&characterEncoding=UTF-8
先把连接改了.设置utf-8 ,但是发现问题并没有解决
第二步.
然后我在是不是没有没有配置my.cnf
查找MySQL用到的my.cnf
ps aux|grep mysql|grep 'my.cnf' 发现没有找到.
mysql --help |grep 'my.cnf' 使用这个命令发现有
在etc/下创建 my.cnf
# Default Homebrew MySQL server config
[mysqld]
# Only allow connections from localhost
bind-address = 127.0.0.1
default-character-set=utf8
[mysqld]
character-set-server=utf8
init_connect=’SET NAMES utf8’
[client]
default-character-set=utf8mb4
mysql: [Warning] World-writable config file '/etc/my.cnf' is ignored 这个是因为配置MySQL权限太高了MySQL认为有风险性自动忽略了
然后我修改chmod 644 /etc/my.cnf 这个时候可以使用了
但是发现还没有解决
第三步
因为我使用的是MySQL8.0 然后我换驱动到5.1 也是没有解决了.
第四步
我使用mysql -uroot 进入命令行在查询发现我的是显示中文的
最坑的原因已经找到了.因为我连接的是navicat
我又创建了一个连接
这个时候发现我的字符是对的
来源:oschina
链接:https://my.oschina.net/u/4274692/blog/3499906