第二鲜明zabbix开启了国文援助成效:
登六到zabbix服务器的数量目录下(前边安插的zabbix数据目录是/data/www/zabbix),张开locales.inc.php文件
[root@Zabbix-server include]# pwd
/data/www/zabbix/include
[root@Zabbix-server include]# vim locales.inc.php

翻看和安装MySQL数据库字符集小编:scorpio 二〇〇八-01-二一 十:0伍:一柒 标签: 杂谈Liunx下修改MySQL字符集:一.查找MySQL的cnf文件的岗位find / -iname ‘*.cnf’
-print /usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-small.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/texmf/web2c/texmf.cnf
/usr/share/texmf/web2c/mktex.cnf
/usr/share/texmf/web2c/fmtutil.cnf
/usr/share/texmf/tex/xmltex/xmltexfmtutil.cnf
/usr/share/texmf/tex/jadetex/jadefmtutil.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-innodb-heavy-4G.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-large.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-small.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-medium.cnf
/usr/share/doc/MySQL-server-community-5.1.22/my-huge.cnf

修改mysql的字符集和默许存款和储蓄引擎

事先安插了Zabbix-3.0.三监察和控制连串,在装置数据库时曾经将zabbix库设置了utf-八字符。

澳门金沙国际 1

  1. 拷贝
    small.cnf、my-medium.cnf、my-huge.cnf、my-innodb-heavy-四G.cnf其中的三个到/etc下,命名叫my.cnf
    cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
  2. 修改my.cnf
    vi /etc/my.cnf
    在[client]下添加
    default-character-set=utf8
    在[mysqld]下添加
    default-character-set=utf8
    肆.重复开动MySQL
    [root@bogon ~]# /etc/rc.d/init.d/mysql restart
    Shutting down MySQL [ 确定 ]
    Starting MySQL. [ 确定 ][root@bogon ~]# mysql -u root -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 5.1.22-rc-community-log MySQL Community Edition
    (GPL)
    Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
    五.查看字符集设置
    mysql> show variables like ‘collation_%’;
    +———————-+—————–+
    | Variable_name | Value |
    +———————-+—————–+
    | collation_connection | utf8_general_ci |
    | collation_database | utf8_general_ci |
    | collation_server | utf8_general_ci |
    +———————-+—————–+
    3 rows in set (0.02 sec)
    mysql> show variables like ‘character_set_%’;
    +————————–+—————————-+
    | Variable_name | Value |
    +————————–+—————————-+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | utf8 |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    +————————–+—————————-+
    8 rows in set (0.02 sec)
    mysql>
    别的的一些设置格局: 修改数据库的字符集
    mysql>use mydb mysql>alter database mydb character set utf-8;

 

首先显明zabbix开启了华语协助作用:
报到到zabbix服务器的数量目录下(前面计划的zabbix数据目录是/data/www/zabbix),打开locales.inc.php文件
[root@Zabbix-server include]# pwd
/data/www/zabbix/include
[root@Zabbix-server include]# vim locales.inc.php

下一场登入zabbix后,点击右上角的“用户”Logo,将语言设置为“中文”:

开创数据库内定数据库的字符集 mysql>create database mydb character set
utf-八;
经过计划文件修改:
修改/var/lib/mysql/mydb/db.opt
default-character-set=latin1
default-collation=latin1_swedish_ci

default-character-set=utf8
default-collation=utf8_general_ci
重起MySQL:
[root@bogon ~]# /etc/rc.d/init.d/mysql restart
经过MySQL命令行修改:
mysql> set character_set_client=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_database=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_results=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_server=utf8;
Query OK, 0 rows affected (0.00 sec)
mysql> set character_set_system=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_connection=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_database=utf8;
Query OK, 0 rows affected (0.01 sec)
mysql> set collation_server=utf8;
Query OK, 0 rows affected (0.01 sec)

壹.改换mysql的字符集

澳门金沙国际 2

澳门金沙国际 3

查看:
mysql> show variables like ‘character_set_%’;
+————————–+—————————-+
| Variable_name | Value |
+————————–+—————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+————————–+—————————-+
8 rows in set (0.03 sec)
mysql> show variables like ‘collation_%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+

mysql库现成字符集

下一场登录zabbix后,点击右上角的“用户”图标,将语言设置为“普通话”:

澳门金沙国际 4

3 rows in set (0.04 sec)

【知识性小说转发】
MYSQL 字符集难点
MySQL的字符集援助(Character Set Support)有多个方面:
字符集(Character set)和排序形式(Collation)。
对此字符集的支撑细化到八个档次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
一.MySQL暗中同意字符集
MySQL对于字符集的钦赐可以细化到二个数据库,一张表,一列,应该用哪些字符集。
而是,古板的先后在成立数据库和多少表时并从未运用那么复杂的布局,它们用的是暗中同意的安排,那么,暗中认可的配置从何而来呢?
(1)编写翻译MySQL 时,钦命了3个私下认可的字符集,那些字符集是 latin一;
(2)安装MySQL 时,能够在配置文件 (my.ini)
中内定2个默许的的字符集,固然没钦命,这几个值承继自编写翻译时内定的;
(三)运行mysqld
时,能够在命令行参数中内定1个暗许的的字符集,若是没钦点,那几个值承袭自配置文件中的配置,此时character_set_server
被设定为那一个暗许的字符集;
(4)当创设二个新的数据库时,除非鲜明钦赐,那么些数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database
被设定为这一个数据库暗中认可的字符集;
(陆)在这些数据库里创制一张表时,表暗中同意的字符集被设定为
character_set_database,也正是以此数据库暗许的字符集;
(7)当在表内设置一栏时,除非明显内定,不然此栏缺省的字符集正是表暗中同意的字符集;
回顾的总计一下,假诺什么地方都不修改,那么富有的数据库的全体表的有着栏位的都用
latin1 存款和储蓄,但是大家只要设置
MySQL,一般都会选用多语言援救,约等于说,安装程序会活动在配备文件中把
default_character_set 设置为
UTF-八,那保证了缺省情况下,全体的数据库的全体表的具备栏位的都用 UTF-八存款和储蓄。
2.查看暗许字符集(默许景况下,mysql的字符集是latin壹(ISO_8859_1)
一般,查看系统的字符集和排序格局的设定能够通过上面包车型地铁两条命令:
mysql> SHOW VARIABLES LIKE ‘character%’;
+————————–+———————————+
| Variable_name | Value |
+————————–+———————————+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:”mysql-5.0.37″share”charsets” |
+————————–+———————————+
mysql> SHOW VARIABLES LIKE ‘collation_%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3.修改默许字符集

(一) 最简易的改变章程,正是修改mysql的my.ini文件中的字符集键值,
如 default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的劳动,service mysql restart
选用 mysql> SHOW VALacrosseIABLES LIKE
‘character%’;查看,开采数据库编码均已改成utf八
+————————–+———————————+
| Variable_name | Value |
+————————–+———————————+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | D:”mysql-5.0.37″share”charsets” |
+————————–+———————————+

(二) 还有一种修改字符集的办法,正是选取mysql的通令
mysql> SET character_set_client = utf8 ;
mysql> SET character_set_connection = utf8 ;
mysql> SET character_set_database = utf8 ;
mysql> SET character_set_results = utf8 ;
mysql> SET character_set_server = utf8 ;
mysql> SET collation_connection = utf8 ;
mysql> SET collation_database = utf8 ;
mysql> SET collation_server = utf8 ;
一般就是设置了表的暗中认可字符集为utf八并且通过UTF-8编码发送查询,你会发掘存入数据库的仍然是乱码。难题就出在那个connection连接层上。化解方法是在出殡和埋葬查询前实施一下下边那句:
SET NAMES ‘utf八’;它也正是上边包车型大巴3句发号施令:
SET character_set_client = utf8;
zabbix消除监察和控制图中现身粤语乱码难题,字符集配置。SET character_set_results = utf8;
SET character_set_connection = utf8;
总结:
于是,使用什么数据库版本,不管是3.x,依然四.0.x还是四.一.x,其实对我们来讲不首要,首要的有二:
一)
正确的设定数据库编码.MySQL四.0之下版本的字符集总是私下认可ISO885玖-一,MySQL四.一在安装的时候会令你挑选。假如您计划选用UTF-
八,那么在创造数据库的时候就要钦定好UTF-八(制造好以往也足以改,四.一以上版本还足以单独内定表的字符集)
2)
准确的设定数据库connection编码.设置好数据库的编码后,在接二连叁数据库时候,应该钦定connection的编码,例如采取jdbc连接时,钦赐连接为utf捌格局.

源文档

mysql> show variables like ‘character%’;

澳门金沙国际 5

修改为“普通话”语言后,增添监察和控制项的布局,开掘监察和控制图中冒出粤语乱码!

+————————–+—————————-+

 

澳门金沙国际 6

| Variable_name            | Value                      |

澳门金沙国际 7

以此标题是出于zabbix的web端未有中文字库导致,只需求加上普通话字库加上就能够~

+————————–+—————————-+

修改为“汉语”语言后,增添监控项的布署,开掘监察和控制图中冒出华语乱码!

化解办法如下:

| character_set_client     | latin1                     | 

澳门金沙国际 8

一.从windows下调节面板->字体->接纳一种普通话字库举例“甲骨文”
【复制-粘贴出来,然后拷贝到zabbix服务器上】

| character_set_connection | latin1                     | 

其一难题是出于zabbix的web端未有中文字库导致,只必要增多汉语字库加上就能够~

澳门金沙国际 9

| character_set_database   | latin1                     | 

化解办法如下:

将以此文件拷贝到zabbix的多少目录的fonts目录下

| character_set_filesystem | binary                     | 

1.从windows下调节面板->字体->选择1种中文字库举个例子“草书”          
【复制-粘贴出来,然后拷贝到zabbix服务器上】

后边安排的zabbix数据目录是/data/www/zabbix
[root@Zabbix-server fonts]# pwd
/data/www/zabbix/fonts
[root@Zabbix-server fonts]#ls
DejaVuSans.ttf

| character_set_results    | latin1                     | 

 澳门金沙国际 10

将地点从windows的“调节面板”—-“字体”里下载下来的simkai.ttf文件拷贝到这里。
并且将事先的字体文件DejaVuSans.ttf移动到别处
[root@Zabbix-server fonts]# ls
simkai.ttf

| character_set_server     | latin1                     | 

将以此文件拷贝到zabbix的多寡目录的fonts目录下

然后,接着修改代码include/defines.inc.php文件中的字体配置,将中间关于字体设置从DejaVuSans替换来simkai
【vim替换本事:%s/DejaVuSans/simkai】
里面:simkai为字库名字,不包蕴ttf后缀

| character_set_system     | utf8                       | 

事先安插的zabbix数据目录是/data/www/zabbix
[root@Zabbix-server fonts]# pwd
/data/www/zabbix/fonts
[root@Zabbix-server fonts]#ls
DejaVuSans.ttf

那般,修改后,zabbix监察和控制图形中的汉语字就不会油但是生乱码了!!
如下:

| character_sets_dir       | /usr/share/mysql/charsets/ | 

将方面从windows的“调控面板”—-“字体”里下载下来的simkai.ttf文件拷贝到这里。
再者将事先的字体文件DejaVuSans.ttf移动到别处
[root@Zabbix-server fonts]# ls
simkai.ttf

澳门金沙国际 11

+————————–+—————————-+

接下来,接着修改代码include/defines.inc.php文件中的字体配置,将内部关于字体设置从DejaVuSans替换来simkai
     
【vim替换本事:%s/DejaVuSans/simkai】
当中:simkai为字库名字,不含有ttf后缀

***********************************************************************************
以上的前提是zabbix数据库在创设的时候已经将字符集设置成utf八了。
若果在开创zabbix数据库的时候从不点名utf8,默许字符集是lantin一,则需求修改字符集,如下:

8 rows in set (0.00 sec)  www.2cto.com  

那样,修改后,zabbix监察和控制图形中的粤语字就不会出现乱码了!!
如下:

翻开数据库私下认可字符集:
mysql>show create database zabbix;
+———-+—————————————————————–+
| Database | Create Database |
+———-+—————————————————————–+
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET
lantin1 */ |
+———-+—————————————————————–+

mysql>

澳门金沙国际 12

翻开字符集值:
mysql>show variables like ‘collation%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set

mysql的字符集分为几类

***********************************************************************************
以上的前提是zabbix数据库在开创的时候已经将字符集设置成utf八了。
比如在成立zabbix数据库的时候从不点名utf八,默许字符集是lantin一,则必要修改字符集,如下:

mysql>show variables like ‘character%’;
+————————–+———————————-+
| Variable_name | Value |
+————————–+———————————-+
| character_set_client | lantin1 |
| character_set_connection | lantin1 |
| character_set_database | lantin1 |
| character_set_filesystem | binary |
| character_set_results | lantin1 |
| character_set_server | lantin1 |
| character_set_system | lantin1 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+————————–+———————————-+
8 rows in set

A.客户端字符集:通过系统变量”character_set_client“表示,通知server端,客户端提交的sql语句编码格式

翻看数据库暗许字符集:
mysql> show create database
zabbix;
+———-+—————————————————————–+
| Database | Create Database |
+———-+—————————————————————–+
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET
lantin1 */ |
+———-+—————————————————————–+

mysql>

B.连接字符集:通过系统变量”character_set_connectiont“表示,server端翻译sql语句时,使用的编码格式

翻开字符集值:
mysql> show variables like
‘collation%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set (0.00 sec)

需求做如下修改:
mysql>set character_set_client =utf8;
mysql>set character_set_connection=utf8;
mysql>set character_set_database =utf8;
mysql>set character_set_results =utf8;
mysql>set character_set_server =utf8;
mysql>set character_set_system =utf8;
mysql>SET collation_澳门金沙国际,server = utf8_general_ci;
mysql>SET collation_database = utf8_general_ci;

C.结果集字符集:通过系统变量”character_set_results“表示,server端重临结果集以前把结果集调换到的编码格式

mysql> show variables like
‘character%’;
+————————–+———————————-+
| Variable_name | Value |
+————————–+———————————-+
| character_set_client | lantin1 |
| character_set_connection | lantin1 |
| character_set_database | lantin1 |
| character_set_filesystem | binary |
| character_set_results | lantin1 |
| character_set_server | lantin1 |
| character_set_system | lantin1 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+————————–+———————————-+
8 rows in set (0.00 sec)

修改数据库暗许字符集:
mysql>ALTER DATABASE `zabbix` DEFAULT CHARACTER SET utf8;

D.存储字符集:通过系统变量”character_set_results“和“character_set_server”表示,是数量在蕴藏引擎里编码格式

mysql>

再也翻开字符集就都以utf八了:
mysql> show create database zabbix;
+———-+—————————————————————–+
| Database | Create Database |
+———-+—————————————————————–+
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET
utf8 */ |
+———-+—————————————————————–+
1 row in set

 

内需做如下修改:
mysql>set character_set_client =utf8;
mysql>set character_set_connection=utf8;
mysql>set character_set_database =utf8;
mysql>set character_set_results =utf8;
mysql>set character_set_server =utf8;
mysql>set character_set_system =utf8;
mysql>SET collation_server = utf8_general_ci;
mysql>SET collation_database = utf8_general_ci;

mysql> show variables like ‘collation%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set

为了不出现乱码,大家须求联合修改这几个参数,举个例子本人要把数据库的私下认可字符集改为utf8,如下所示

修改数据库默许字符集:
mysql>ALTER DATABASE `zabbix` DEFAULT CHARACTER SET utf8;

mysql> show variables like ‘character%’;
+————————–+———————————-+
| Variable_name | Value |
+————————–+———————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+————————–+———————————-+
8 rows in set

在[client]下增加如下参数

重新翻开字符集就都以utf8了:
mysql> show create database zabbix;
+———-+—————————————————————–+
| Database | Create Database |
+———-+—————————————————————–+
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET
utf8 */ |
+———-+—————————————————————–+
1 row in set (0.00 sec)

default-character-set=utf8

mysql> show variables like ‘collation%’;
+———————-+—————–+
| Variable_name | Value |
+———————-+—————–+
| collation_connection | utf8_general_ci |
| collation_database | utf8_general_ci |
| collation_server | utf8_general_ci |
+———————-+—————–+
3 rows in set (0.00 sec)

在[mysqld]下加多如下参数

mysql> show variables like ‘character%’;
+————————–+———————————-+
| Variable_name | Value |
+————————–+———————————-+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+————————–+———————————-+
8 rows in set (0.00 sec)

default-character-set=utf8

接下来重启mysql服务,再查看字符集(要再次登入客户端)

  www.2cto.com  

mysql> show variables like ‘character%’;

+————————–+—————————-+

| Variable_name            | Value                      |

+————————–+—————————-+

| character_set_client     | utf8                       | 

| character_set_connection | utf8                       | 

| character_set_database   | utf8                       | 

| character_set_filesystem | binary                     | 

| character_set_results    | utf8                       | 

| character_set_server     | utf8                       | 

| character_set_system     | utf8                       | 

| character_sets_dir       | /usr/share/mysql/charsets/ | 

+————————–+—————————-+

8 rows in set (0.01 sec)

mysql>

mysql> show variables like ‘collation%’;

+———————-+—————–+

| Variable_name        | Value           |

+———————-+—————–+

| collation_connection | utf8_general_ci | 

| collation_database   | utf8_general_ci | 

| collation_server     | utf8_general_ci | 

+———————-+—————–+

3 rows in set (0.00 sec)

mysql>

mysql的字符集分的可比细,能够行使私下认可值,也能够内定值

 

A.数据库字符集

运用暗中同意字符集的库

mysql> create database db1;

Query OK, 1 row affected (0.01 sec)

 

mysql> show create database db1;

+———-+————————————————————–+

| Database | Create Database                                            
 |

+———-+————————————————————–+

| db1      | CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET
utf8 */ | 

+———-+————————————————————–+

1 row in set (0.00 sec)

钦命字符集的库

mysql> create database db2 default character set latin1;

Query OK, 1 row affected (0.01 sec)

mysql> show create database db2;

+———-+—————————————————————-+

| Database | Create Database                                            
   |

+———-+—————————————————————-+

| db2      | CREATE DATABASE `db2` /*!40100 DEFAULT CHARACTER SET
latin1 */ | 

+———-+—————————————————————-+

1 row in set (0.00 sec)

 

修改库的字符集

mysql> alter database db2 default character set utf8;

Query OK, 1 row affected (0.00 sec)

mysql> show create database db2;

+———-+————————————————————–+

| Database | Create Database      www.2cto.com                          
                 |

+———-+————————————————————–+

| db2      | CREATE DATABASE `db2` /*!40100 DEFAULT CHARACTER SET
utf8 */ | 

+———-+————————————————————–+

1 row in set (0.00 sec)

 

B.表字符集

mysql> use db2;

Database changed

 

选取暗中认可库字符集的表

mysql> create table t1(a varchar(10));

Query OK, 0 rows affected (0.01 sec)

mysql> show create table t1;

+——-+—————————————————————————————–+

| Table | Create Table                                                  
                         |

+——-+—————————————————————————————–+

| t1    | CREATE TABLE `t1` (

  `a` varchar(10) default NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 

+——-+—————————————————————————————–+

1 row in set (0.00 sec)

 

开创钦赐字符集的表

mysql> create table t2(a varchar(10)) default character set latin1;;

Query OK, 0 rows affected (0.01 sec)

ERROR: 

No query specified

mysql> show create table t2;

+——-+——————————————————————————————-+

| Table | Create Table                                                  
                           |

+——-+——————————————————————————————-+

| t2    | CREATE TABLE `t2` (

  `a` varchar(10) default NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 

+——-+——————————————————————————————-+

1 row in set (0.00 sec)

 

改换表的字符集

mysql> alter table t2 default character set utf8;

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table t2;

+——-+————————————————————————————————————–+

| Table | Create Table     www.2cto.com                                
                                                               |

+——-+————————————————————————————————————–+

| t2    | CREATE TABLE `t2` (

  `a` varchar(10) character set latin1 default NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 

+——-+————————————————————————————————————–+

1 row in set (0.00 sec)

mysql>

从地点能够看出,修改表的字符集时,不会潜移默化已经存在列的字符集,但新扩展列将继承表的字符集,如下

mysql> alter table t2 add a2 varchar(10);

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table t2;

+——-+———————————————————————————————————————————————–+

| Table | Create Table                                                  
                                                                       
       |

+——-+———————————————————————————————————————————————–+

| t2    | CREATE TABLE `t2` (

  `a` varchar(10) character set latin1 default NULL,

  `a2` varchar(10) default NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 

+——-+———————————————————————————————————————————————–+

1 row in set (0.01 sec)

mysql>

 

一旦想改造已经存在表和字符列的字符集,要用如下

mysql> alter table t2 convert to character set latin1;

Query OK, 0 rows affected (0.01 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table t2;

+——-+—————————————————————————————————————————-+

| Table | Create Table                                                  
                                                            |

+——-+—————————————————————————————————————————-+

| t2    | CREATE TABLE `t2` (

  `a` varchar(10) default NULL,

  `a2` varchar(10) default NULL

) ENGINE=InnoDB DEFAULT CHARSET=latin1 | 

+——-+—————————————————————————————————————————-+

1 row in set (0.01 sec)

 

C.字段字符集

 

采取私下认可和钦点字符集创设的列

mysql> create table t3 (a1 varchar(10),a2 varchar(10) character set
latin1);

Query OK, 0 rows affected (0.04 sec)  www.2cto.com  

mysql> show create table t3;

+——-+————————————————————————————————————————————————+

| Table | Create Table                                                  
                                                                       
        |

+——-+————————————————————————————————————————————————+

| t3    | CREATE TABLE `t3` (

  `a1` varchar(10) default NULL,

  `a2` varchar(10) character set latin1 default NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 

+——-+————————————————————————————————————————————————+

1 row in set (0.00 sec)

mysql>

 

翻看列的字符集

mysql> show full columns from t3;

+——-+————-+——————-+——+—–+———+——-+———————————+———+

| Field | Type        | Collation         | Null | Key | Default | Extra
| Privileges                      | Comment |

+——-+————-+——————-+——+—–+———+——-+———————————+———+

| a1    | varchar(10) | utf8_general_ci   | YES  |     | NULL    |    
  | select,insert,update,references |         | 

| a2    | varchar(10) | latin1_swedish_ci | YES  |     | NULL    |    
  | select,insert,update,references |         | 

+——-+————-+——————-+——+—–+———+——-+———————————+———+

2 rows in set (0.01 sec)

 

修改列的字符集

mysql> alter table t3 change a2 a2 varchar(10) character set utf8;

Query OK, 0 rows affected (0.03 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> show full columns from t3;

+——-+————-+—————–+——+—–+———+——-+———————————+———+

| Field | Type        | Collation       | Null | Key | Default | Extra |
Privileges                      | Comment |

+——-+————-+—————–+——+—–+———+——-+———————————+———+

| a1    | varchar(10) | utf8_general_ci | YES  |     | NULL    |      
| select,insert,update,references |         | 

| a2    | varchar(10) | utf8_general_ci | YES  |     | NULL    |      
| select,insert,update,references |         | 

+——-+————-+—————–+——+—–+———+——-+———————————+———+

2 rows in set (0.00 sec)

mysql>

 

结论:字符集从数据库、表、列的字符集是逐级承袭的涉及

 

翻看字符集命令

mysql> show create table t4; //突显表字符集

mysql> show create database db贰; //显示库字符集

mysql> show full columns from t四; //显示列字符集

alter database db二 default character set utf八; //退换库的字符集

alter table t二 convert to character set latin壹;//更动表的留存列字符集

alter table t二 default character set utf8;  //更能改表的暗中同意字符集

alter table t叁 change a二 a贰 varchar(拾) character set utf八;
//更能改字段的字符集

   www.2cto.com  

2.改换mysql的暗许存款和储蓄引擎

mysql> show variables like ‘storage%’;

+—————-+——–+

| Variable_name  | Value  |

+—————-+——–+

| storage_engine | MyISAM | 

+—————-+——–+

1 row in set (0.01 sec)

mysql>

 

在[mysqld]下增加如下参数

default-storage-engine=innodb

 

重启mysql服务,查看

mysql> show variables like ‘storage%’;

+—————-+——–+

| Variable_name  | Value  |

+—————-+——–+

| storage_engine | InnoDB | 

+—————-+——–+

1 row in set (0.01 sec)

mysql>

 

始建暗中认可字符集的表

mysql> create table t4 (a1 int);

Query OK, 0 rows affected (0.01 sec)

mysql> show create table t4;

+——-+————————————————————————————–+

| Table | Create Table                                                  
                      |

+——-+————————————————————————————–+

| t4    | CREATE TABLE `t4` (

  `a1` int(11) default NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8 | 

+——-+————————————————————————————–+

1 row in set (0.00 sec)

 

改动表的暗中认可字符集

mysql> alter table t4 engine myisam;

Query OK, 0 rows affected (0.06 sec)

Records: 0  Duplicates: 0  Warnings: 0

mysql> show create table t4;

+——-+————————————————————————————–+
 www.2cto.com  

| Table | Create Table                                                  
                      |

+——-+————————————————————————————–+

| t4    | CREATE TABLE `t4` (

  `a1` int(11) default NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 | 

+——-+————————————————————————————–+

1 row in set (0.00 sec)

mysql>

 

 

 

作者 wyzxg

壹.改造mysql的字符集 mysql库现存字符集 mysql show variables like
character%; +————————–+——————-…

相关文章