美文网首页
Mac下mysql中文乱码问题2016.6

Mac下mysql中文乱码问题2016.6

作者: cj2527 | 来源:发表于2016-06-24 11:32 被阅读2773次

    系统环境

    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是只读的,编辑之前修改权限。点击右键,选择显示简介,下面就有权限修改。

    50645B91-73D2-460A-8A71-05E7ACA37FC7.png

    修改为可读可写。

    然后在终端,切换到/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查看字符编码设置。显示如下:

    05E0FBC0-B739-4C48-8CEB-304EB7D8CBD0.png

    如果提示找不到这个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);
    //再进行查询语句
    

    好了,到此就成功了!

    相关文章

      网友评论

          本文标题:Mac下mysql中文乱码问题2016.6

          本文链接:https://www.haomeiwen.com/subject/tuzjdttx.html