mysql乱码修改character_set_server
[mac]
1、使用任何一个客户端或者命令行查询一下编码,俺用的是MySQLWorkbench
SHOW VARIABLES LIKE 'character_set_%';
2、发现编码是character_set_server = Latin1
3、将编码改为UTF8
4、前往-->前往文件夹/usr/local/mysql/
5、mysql->support-files->找到文件my-default.cnf
6、拷贝一份放到桌面,然后用文件编码,打开文件,找到[mysqld]在下面加入一行
如果是别的引起的,可以在[client]下面加入
[mysqld]
character-set-server=utf8
7、将桌面上的my-default.cnf文件重命名为my.cnf,并拷贝
8、到系统偏好设置中找到mysql,打开,stop mysql关掉服务
8、前往 --> 前往文件夹 /private/ect/,粘进去,然后start mysql开启服务
9、SHOW VARIABLES LIKE 'character_set_%'; 成功。
说明:俺在设置的时候搞了半个小时没有成功,
可能是一开始新建的my.cnf有问题,内容是一样,就是不成功,后来通过拷贝的方法成功了。
网上也有新建能成功的,不管了,目前成功即可。
[windows]
下的mysql的话,安装的时候会弹出来让你配制,或者转到bin中找到那个配制的exe双击就可以配了。
(这个有点忘记了 :))
注:mysql5.7.*版本
今天又碰到了这个问题,提示:Error Code: 1366. Incorrect string value: '\xE4\xBA\xA7\xE4\xB8\x9A...' for column 'xxxx'列
这个明显是编码问题。
解决:
1、查看mysql版本5.7.31
2、打开终端
sudo vim /etc/my.cnf. #按i可以修改为Insert模式
sudo nano /etc/my.cnf #这个^X退出,底部有提示。
3、加入编码设置
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] character-set-server=utf8
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
###还碰到了下面的问题
#In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'contracts4.v.rightId'; this is incompatible w#ith sql_mode=only_full_group_by
解决:
在mysqld下面增加 sql_mode
4、保存退出
Esc
:wq
重启了一下,然后查看就可以了。
vim处理的命令:
在Mac终端中使用vim编辑文件:
cd 文件所在的文件夹路径 <回车> 输入 vim 文件名 <回车> 按下 i 键来编辑文本文字 退出vim编辑器: 不保存并退出 <ESC> :q! <回车> 保存并退出 <ESC> :wq <回车>
按ESC键跳到命令模式,然后输入: :w - 保存文件,不退出 vim :w file -将修改另外保存到 file 中,不退出 vim :w! -强制保存,不退出 vim :wq -保存文件,退出 vim :wq! -强制保存文件,退出 vim :q -不保存文件,退出 vim :q! -不保存文件,强制退出 vim :e! -放弃所有修改,从上次保存文件开始再编辑 链接:https://www.jianshu.com/p/9177bfcf4480