一般安装 MySQL 程序过程中,有一步骤是选择 MySQL 的默认编码格式的,程序默认为 Latin1 编码格式,当然也可以选择第三个选项,手动选择 gbk 或 utf8 编码格式,以支持中文数据。如下图:

mysql查看数据库默认编码 mysql默认的编码格式_mysql查看数据库默认编码

现在问题出来了,安装完成后,又想去修改 MySQL 的默认编码格式(这样就省去每次新建数据库都要指定其编码格式的麻烦),该怎么办呢?

一、如何查看 MySQL 相关的编码格式默认值

在 cmd 中,输入指令 "mysql –u root –p" 以 root 身份连接 mysql 数据库

mysql查看数据库默认编码 mysql默认的编码格式_操作系统_02

然后有两种方式查看编码格式:

1)show variables like 'character%';

mysql查看数据库默认编码 mysql默认的编码格式_mysql_03

2)show variables like 'collation%';

mysql查看数据库默认编码 mysql默认的编码格式_数据库_04

二:既然可以用命令查看,当然也可以用命令修改

稍微解释一下:

  • 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 文件,而是如下这些文件:

mysql查看数据库默认编码 mysql默认的编码格式_操作系统_05

这时候可以去网上下载一个 my.ini 文件然后放到目录下即可,或者在 C:\ProgramData\MySQL\MySQL Installer

mysql查看数据库默认编码 mysql默认的编码格式_数据库_06

选择其中一个版本的 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