Mac下mysql中文乱码问题2016.6
系统环境
mac 10.10.3
mysql 5.6.30
问题一:手动插入中文显示???
数据库管理工具,手动插入中文最后变成?号
解决方法:
1先停止mysql服务
2.拷贝mysql的默认配置文件
mac下/etc目录下默认是没有mysql的配置文件的
mysql如果是apk下载安装的话,默认是在/usr/local/mysql/
终端输入以下命令,把mysql的默认配置文件拷贝到/etc目录下
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
注意点:有些文件名可能不一样,具体查看/usr/local/mysql/support-files/目录下的*.cnf是什么,然后替换上面的名字my-default.cnf
也可以直接手动拷贝复制。
3.修改mysql的配置文件
finder前往到/etc目录下,找到拷贝进来的my.cnf文件
默认my.cnf是只读的,编辑之前修改权限。点击右键,选择显示简介,下面就有权限修改。
修改为可读可写。
然后在终端,切换到/etc目录
cd /etc
vim my.cnf
就会显示默认的配置信息
添加以下代码
[client]
default-character-set=utf8
在[mysqld]的下面再添加以下代码
default-storage-engine=INNODB
character-set-server=utf8
collation-server=utf8_general_ci
注意点:直接复制粘贴,可能会漏掉一些字,注意检查就是了。
最后结果如下图:
50645B91-73D2-460A-8A71-05E7ACA37FC7.png
最后按键盘ESC,退出insert模式,输入三个字符
:x!
就可以保存退出了。
4.重新启动mysql服务
如果发现点击启动,没有反应,是配置问题出错,看下添加设置的时候有没有错吧。
没错的话,就可以启动的了。还是不可以,那你就试着重新启动电脑。
重新启动后还是不可以,好吧,你只能把ect/目录下的那个my.cnf文件删除,就会自动加载默认的配置文件的了,服务就会正常启动了。
如果修改成功,那就登录查看结果。
终端登录mysql,输入以下命令
mysql -u root -p
正常提示输入密码,输入你设置的密码,默认空
登录成功后,继续输入命令,status查看字符编码设置。显示如下:
如果提示找不到这个mysql -u root -p命令,那就是你一开始环境配置没有设置。
输入 alias 命令
alias mysql=/usr/local/mysql/bin/mysql
回车,在输入
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
就可以了。
另外网上很多人都说
Server characterset: latin1
Db characterset: latin1
这两个也要设置utf8,个人测试发现,不用设置,一样可以插入中文。
到目前为止,管理工具手动插入中文,还是不可以。还需要以下设置:
因为已经存在数据库,修改数据库的编码
1F29F743-AEE4-4E25-9AD4-1C9D4383DAF3.png
修改表字段的编码
0E360A47-6A1E-4F67-A19B-F7041502C291.png就可以手动插入中文了。
问题二:php代码插入mysql,中文显示不出来,乱码
代码页面添加mysql_query("SET NAMES 'utf8'",$con);
如下图:
$con = mysql_connect("127.0.0.1","root","root");
mysql_select_db("my_db", $con);
//增加以下语句
mysql_query("SET NAMES 'utf8'",$con);
//再进行查询语句
好了,到此就成功了!