好吧, 换了电脑之后忘记修改mysql的编码格式了, 结果又掉进了大坑. 爬啊爬了好久终于爬出来了😢
带有$
符号的命令都是终端命令, 复制粘贴时不需要加上$
符号
STEP 1
我们先进入mysql , 然后使用终端命令 $show variables like '%char%';
查看一下当前的编码格式, 默认mysql是使用拉丁文的.
character_set_database
和character_set_server
依然是latin1的字符集,也就是说mysql后续创建的表都是latin1字符集的,不是utf8,会造成一些麻烦.
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 ! 复制它!
STEP 3
复制好 my-default.cnf 文件后要把它粘贴到 /etc 这个目录下.
这里也强调一下这个 etc文件夹必须是 /etc
文件夹下的 etc . 建议使用文件直接前往 /etc
! !
然后将名字改成 my.cnf
可能会有些人不知道 /etc 文件夹在哪里. 可以使用 右键 Finder -> 前往文件夹 -> /etc
![
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
重启查看, 啦啦啦~