一般安装 MySQL 程序过程中,有一步骤是选择 MySQL 的默认编码格式的,程序默认为 Latin1 编码格式,当然也可以选择第三个选项,手动选择 gbk 或 utf8 编码格式,以支持中文数据。如下图:
现在问题出来了,安装完成后,又想去修改 MySQL 的默认编码格式(这样就省去每次新建数据库都要指定其编码格式的麻烦),该怎么办呢?
一、如何查看 MySQL 相关的编码格式默认值
在 cmd 中,输入指令 "mysql –u root –p" 以 root 身份连接 mysql 数据库
然后有两种方式查看编码格式:
1)show variables like 'character%';
2)show variables like 'collation%';
二:既然可以用命令查看,当然也可以用命令修改
稍微解释一下:
- character_set_client:客户端编码方式;
- character_set_connection:建立连接时使用的编码;
- character_set_database:数据库的编码;
- character_set_result:结果集的编码;
- character_set_server:数据库服务器的编码;
I:执行命令:set NAMES 'utf8';
该命令等同于执行如下三条命令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
但是,该设置的编码格式,只对当前连接(窗口)有效,即用另外一个 Dos 窗口再连接 mysql 数据库进行查看,编码格式是没有改变的。
II:数据库、表、字段,均可以在创建时设置其默认编码格式,或者在其后进行修改[摘自 easybean的博客]
1)
create database dbname character set utf8;
alter database dbname character set utf8;
2)
create table tname(…) default charset=utf8;
alter table type character set utf8;
3)
create table tname(flag_deleted enum('Y','N') character set utf8 not null default 'N');
alter table type modify type_name varchar(50) character set utf8;
三:修改MySQL的配置文件my.ini
比较好的,也是建议的,却是最后登场的方法,如下……
在 Window 系统下,MySQL 的配置文件是在 MySQL 安装目录下的 my.ini 文件,但是可能安装完成后,在目录下木有 my.ini 文件,而是如下这些文件:
这时候可以去网上下载一个 my.ini 文件然后放到目录下即可,或者在 C:\ProgramData\MySQL\MySQL Installer
选择其中一个版本的 my-template-x.x.ini 改名成 my.ini,放到安装目录下也可以。至于细节再在 my.ini 中具体配置即可。
my.ini 配置文件修改细节[摘自 easybean的博客]:
I:在[mysqld]标签下加
default-character-set=utf8
character_set_server=utf8
lower_case_table_names=1 //表名不区分大小写(此与编码无关)
II:在[mysql]标签下加
default-character-set=utf8
III:在[mysql.server]标签下加
default-character-set=utf8
IV:在[mysql_safe]标签下加
default-character-set=utf8
V:在[client]标签下加
default-character-set=utf8
4:在 Dos 窗口中执行
net stop mysqlservice //关闭mysql服务
net stop mysqlservice //启动mysql服务
然后在查看一下 mysql 默认的编码格式,是否改变成功!
附注:
1:连接 mysql 数据库时的字符串,设计编码类型的时候如下所示
jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=utf-8
2:mysql 支持哪些编码格式,查看 %MySQL%\share\charsets\Index.xml 即可
3:mysql 的配置文件加载顺序
c:/windows/my.cnf-->c:/windows/my.ini-->c:/my.cnf-->c:/my.ini-->$installdir/my.ini(%MySQL_HOME%/my.ini)-->defaults-extra-file=path