一般安装MySQL程序过程中,有一步骤是选择MySQL的默认编码格式的,程序默认为Latin1编码格式,当然也可以选择第三个选项,手动选择gbk或utf8编码格式,以支持中文数据。如下图:
现在问题出来了,安装完成后,又想去修改MySQL的默认编码格式(这样就省去每次新建数据库都要指定其编码格式的麻烦),该怎么办呢?
1、如何查看MySQL相关的编码格式默认值
在cmd中,输入指令"mysql –u root –p”以root身份连接mysql数据库
然后有两种方式查看编码格式:
1)show variables like ‘character%’;
2)show variables like ‘collation%’;
2:既然可以用命令查看,当然也可以用命令修改了
稍微解释一下:
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;
3:比较好的,也是建议的,却是最后压轴的磨磨唧唧登场的方法,如下... ...
修改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默认的编码格式,是否改变成功!改成功了的,恭喜恭喜哈^_^,没成功的咱再探讨一二,下面留下问题,一起学习研究哈!(最后绝招你可以重装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的配置文件加载顺序[摘自iihero@CSDN]
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