Windows下的mysql字符集格式修改
笔者关于数据库的字符集踩了不少坑,由于安装时没有事先设置字符集,导致后面使用数据库时乱码,好烦。这个修改过程是笔者亲自配置成功的步骤,现在分享给大家,希望可以解决你的问题。
使用管理员运行cmd 或者 PowerShell,笔者这里使用的是Windows PowerShell。数据库版本是5.7.17.
1. 首先查看自己数据库的字符集
1.1 登录mysql
mysql -uroot -p密码
1.2 查看 MySQL 数据库服务器和数据库字符集
show variables like '%char%';
这里显示的是各个属性的字符集格式,如gbk,latin1等。
2.修改数据库的字符集(两种方式,推荐使用第二种!)
2.1 【方式一】使用shell命令修改(不会永久生效)
#修改这9种属性即可
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
set collation_connection=utf8;
set collation_database=utf8;
set collation_server=utf8;
#客户端、服务器、数据库字符集的命令
再次查看数据库字符集
show variables like '%char%';
我们可以看到已经修改为 utf8 格式。
到此已经修改成功。
#退出mysql
exit
2.2 【方式二】使用配置 my.ini 方式(或者my-default.ini)
2.2.1 首先停止数据库服务
my.ini在数据库的安装目录中
我的是在 D:\Program Files\mysql-5.7.17-winx64 目录下
最好采用管理员权限打开文件,因为有可能无法保存。
2.2.2 开始配置my.ini (注意如果文件名是my-default.ini,请改为my.ini 切记!!!!!)
配置如下:
分别在文件中找到[mysqld], [mysql] ,[client].把下面的字符集格式改为 utf8
***注意不是utf-8,utf-8不生效!!!***
如果没有[mysql] ,[client]的话自己写上例如[mysql]。
看清楚,不要重复哦。
[mysqld]
字符集
character_set_server=utf8
[client]
字符集
default-character-set=utf8
[mysql]
字符集
default-character-set=utf8
保存!
net start mysql
需要重新登录mysql
mysql -uroot -p密码
show variables like '%char%';
现在我们可以看到字符集都已经成功永久改成utf8
按照以上步骤修改,是完全可以成功的永久修改字符集为utf8。
以下是几个常用修改字符集命令:
#修改单个数据库的字符集
alter database 数据库名 default character set = utf8;
#创建数据库时设置字符集
create database 数据库名 character set utf8;
#修改单张数据表字符集
alter table 表名 default character set = utf8;
alter table 表名 convert to character set utf8;