说明:最近在学习终端操作mysql数据库,对于mysql默认新建数据库,数据表,以及数据字段默认latin1,在每次插入含中文字段的内容出现错误,每次都要单独修改,让自己现在无法忍受,所以决定更改mysql默认的编码方式,下面为自己的更改过程,做以下记录。 在其中遇到的问题也做出简要说明。
如已经打开mysql服务,而且其实已经知道自己仍是默认的latin1的编码格式的话,就直接从 “五”开始即可。其他情况可以酌情参考。
一.打开mysql服务器
两种方式如下:
a.使用命令行:
sudo /usr/local/MySQL/support-files/mysql.server start
b.mac下,“系统偏好设置”->”mysql”->”start MySQL serve”
二.检查mysql服务器是否已经打开在终端输入
ps -ef | grep mysqld
如果mysql服务器已经打开,终端会显示:
三.连接数据库
/usr/local/mysql/bin/mysql -u root –p
直接把这句话复制到终端,可能会出现图中“1”的问题,如出现此情况,那就在终端中老实的敲一遍就好。输入后会提示输入数据库的密码(不是平时sudo时输入的密码哦)
四.查看现在的编码方式
show variables like '%char%';
注意:一定要带“;”号
五.关闭mysql服务器
两种方式如下:
在对mysql的配置文件手动进行修改前,请确保关闭mysql服务。不然会遇到mysql的sock不能连接的问题。
a.“系统偏好设置”->”mysql”->”stop MySQL serve”.
b. 终端输入:
sudo /usr/local/mysql/support-files/mysql.server stop
终端输入关闭更快!!!
六.准备修改my.cnf文件
设置编码时需要修改/etc/my.cnf的内容,但是在/etc/下并没有my.cnf但是在/usr/local/mysql/support-files下有一个my-default.cnf。
在此过程中看到网上很多,对于复制 my-default.cnf文件到/etc下并命名为 my.cnf.
第一次使用直接在my-default.cnf 所在文件直接复制并命名为my.cnf,进行修改。之后再复制到/etc下。这个时候出现了mysql打不开的问题。这个时候我就把两个my.cnf都删除掉,之后mysql就又可以使用了,但这样没有解决编码方式更改的问题,对于错误的一些就不做再次展示,主要对正确过程进行记录。
/usr/local/mysql/bin/mysql --help
mysql的帮助信息,红线部分即为my.cnf文件的应用次序,为了方面以及一些参考,直接把my-default.cnf复制得到的my.cnf放在/etc下
//到etc目录下
cd /etc
//复制/usr/local/mysql/support-files下的my-default.cnf 并命名为my.cnf
sudo cp /usr/local/mysql/support-files/my-default.cnf my.cnf
之后ls查看会看到
七.修改my.cnf文件
因为my.cnf现在只有只读的权限,所以要先更改文件权限再进行编写。操作目录在此刻是etc下,现在要切换目录到根目录
cd ~
//修改文件权限
sudo chmod 755 /etc/my.cnf
此时文件权限已经更改,但是我此时直接使用vim /etc/my.cnf
文件还是只读模式,所以最后使用sudo vim /etc/my.cnf
即可
打开文件后按‘i’进入编辑模式,参考网上的资料,打开my.cnf后发现没有[client],所以此时直接自己添加即可。
打开文件后添加
[client]
default-character-set=utf8
在[mysqld]部分加入:
character-set-server=utf8
之后按esc后 :wq
保存并退出即可。
之后打开mysql服务->连接数据库->查看编码格式即重复一、三、四即可。
完成更改!!!开心。
最后附上自己在此过程中的参考:
https://blog.csdn.net/vr_jia/article/details/78026178
https://blog.csdn.net/m13026178198/article/details/49993263
https://blog.csdn.net/czb_corbin/article/details/72718781
https://blog.csdn.net/NGUever15/article/details/71271426