问题描述:
- 通过Eclipse中的”db.sql”文件插入数据不会出现乱码问题;
- 通过Navicat插入数据也不会出现乱码问题;
- 只有在”stmt.execute(sql);”时, 插入的中文数据会出现乱码.
平台: MacOS
解决方案:
step 1: 查看MySQL数据库的参数状态.
// 此命令不仅可以查询mysql的版本号, 也可以进入"mysql命令行"状态.
$ mysql -v
// 此命令用于查询mysql数据库的参数状态.
mysql> show variables like 'character%';
可以发现有两处不是utf-8类型的, 接下来的目标就是把那两处的”Latin1”改为”utf8”.
step 2: 修改 my.cnf 文件(Windows系统下是 my.ini ).
1.MacOS中默认没有 my.cnf 文件, 所以需要从/usr/local/mysql/support-files
下拷贝一个 .cnf 文件模板, 我拷贝的是 my-default.cnf 文件.
// 将其复制到home目录下.
$ cp /usr/local/mysql/support-files/my-default.cnf ~
2.将其重命名为 my.cnf , 并在其中添加:
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
default-character-set=utf8
- mysqlId对应的就是character_set_database设置.
3.将其粘贴至 /etc 下即可.
没有粘贴权限?
// sudo可使Linux命令获得管理员权限.
$ sudo cp ~/my.cnf /etc
step 3: 重启mysql服务, 然后再次查看mysql数据库的参数状态.
结果如下, 修改成功!