美文网首页python
mac mac MySQL的那些坑之修改mysql编码格式

mac mac MySQL的那些坑之修改mysql编码格式

作者: 小椰子表姐 | 来源:发表于2017-01-11 15:25 被阅读2751次

    好吧, 换了电脑之后忘记修改mysql的编码格式了, 结果又掉进了大坑. 爬啊爬了好久终于爬出来了😢

    STEP 1
    我们先进入mysql , 然后使用终端命令 show variables like '%char%'; 查看一下当前的编码格式, 默认mysql是使用拉丁文的.

    character_set_databasecharacter_set_server依然是latin1的字符集,也就是说mysql后续创建的表都是latin1字符集的,不是utf8,会造成一些麻烦.

    latin1

    STEP 2
    想要修改编码, 就需要修改 mysql 的配置文件 my.cnf

    **在修改my.cnf之前一定要关闭 mysql 进程,不然会遇到mysql的sock不能连接的问题!
    在修改my.cnf之前一定要关闭 mysql 进程,不然会遇到mysql的sock不能连接的问题!
    在修改my.cnf之前一定要关闭 mysql 进程,不然会遇到mysql的sock不能连接的问题! **

    重要事情说三遍! 就这个坑了我, 一直爆 sock 的连接问题/(ㄒoㄒ)/~~ 后来把 my.cnf 文件删了才好使.

    但是问题来了, mac中安装 mysql 默认是没有my.cnf文件!
    所以我们需要到 mysql 的安装目录下看看有没有 .cnf 为后缀的文件.

    然后会发现在 /mysql/support-files/ 下会有一个 my-default.cnf 文件, ok ! 复制它!

    发现了.cnf文件

    STEP 3
    复制好 my-default.cnf 文件后要把它粘贴到 /etc 这个目录下.
    这里也强调一下这个 etc文件夹必须是 /etc 文件夹下的 etc . 建议使用文件直接前往 /etc ! !
    ** 然后将名字改成 my.cnf **

    可能会有些人不知道 /etc 文件夹在哪里. 可以使用 右键 Finder -> 前往文件夹 -> /etc

    ![屏幕快照 2017-01-11 下午3.09.53.png](https://img.haomeiwen.com/i1142651/fa7b07ae13b7052b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 屏幕快照 2017-01-11 下午3.10.45.png

    STEP 4
    使用程序打开 my.cnf 我使用的是 sublime
    然后在

    [client] 下面加入:

    default-character-set=utf8
    

    [mysqld] 下面加入:

    character-set-server=utf8
    

    我没有发现[client] 所以只在 [mysqld] 下面加入了代码
    保存, 关闭

    修改代码

    有的朋友说没有任何 cnf 的文件, 那就自己在 /etc 文件夹下新建一个 my.cnf 文件吧.my.cnf 中的代码在这里

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    
    #更改数据库编码需要更改的
    [mysqld]
    character-set-server=utf8
    
    #备份数据库需要更改的
    [mysqldump]
    user=root
    password=123456
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    # socket = .....
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M 
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    
    

    STEP 5 重启 mysql , 重新查看编码~

    大功告成!

    注意!!!!

    网上有很多都是直接使用终端命令一步完成的,我想说的是 看准文件名!
    以下贴上命令~ 玩得转终端的这些命令相信很容易就看懂了~

    STEP 1 复制粘贴

    sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
    

    STEP 2 修改代码

    1]  sudo vi /etc/my.cnf
    
    2]
    [client]部分加入:
    default-character-set=utf8
    
    [mysqld]部分加入:
    character-set-server=utf8
    
    3]  esc
    
    4]  :wq
    

    STEP 3
    重启查看, 啦啦啦~

    相关文章

      网友评论

      • 城南一霸賈十七:感谢大佬,一直找不到etc ,只能用命令行。现在终于看到了,好像看到了个新世界,还是对Mac不熟悉啊。
        小椰子表姐::grin: 以后找不到的就前往文件夹就好了.
      • OSong:不知道该如何感谢。你这篇文章拯救我于水火中。哈哈哈
        OSong:@小椰子表姐G 是的,毫不夸张
        小椰子表姐:@OSong 水火之中:joy::joy:
      • d0cdf6532fb1:太感激了查了那么多,你这篇最靠谱,跟着做就成功啦
        小椰子表姐:@楚韵琉珠 :wink: :wink:
      • 753d3f365383:感谢,大佬
        小椰子表姐:@有一种结束叫开始 :clap: :clap:
      • 怪我咯i_6af9: 真是太感谢了,my.cnf文件让我改坏了,服务器一直启动不了,删了重装好几次都不行,我也知道要重新改my.cnf文件,一直以为那个文件是在mysql的路径里面,怎么也找不到,弄了一晚上还好看见了你的帖子,真是一语惊醒梦中人啊。。。。总算弄好了,可以睡觉了。。非常非常感谢。。
        小椰子表姐:@怪我咯i_6af9 哈哈. 我这块也是整了好久, 其他都太坑了..
      • 川流熙攘_8172:之前也是找了很久 基本和你说的一样 cnf配好 重启 都没问题 查看编码也没问题 但是新建表 还是有问题 不是utf8格式 。。。。
        小椰子表姐:新建表之后查看编码没有更改过来么? 那就可能是没有修改成功. 建表的时候也能够指定编码的, 你试试建表时候指定编码然后查看.
      • 程非池的小软:你好,我想问一下没有my-default.cnf文件该怎么办?
        小椰子表姐:@went_2017 在 etc 中新建一个 my.cnf 文件吧. 然后把内容粘上.
        小椰子表姐:@涂山千风 如果连默认的都没有的话, 自己在 etc 中新建一个 my.cnf 把内容粘上就好了
        went_2017:我也是找不到这个文件,一个cnf文件都找不到=,=
        你解决了吗?
      • 2131d3db37c2:多谢 解决问题了 就你这个靠谱
      • 熊安安:专业 太详细了 o(>﹏<)o..............

      本文标题:mac mac MySQL的那些坑之修改mysql编码格式

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