Skip to content

设置MYSQL字符集附上常见错误

一、mysql的多字符集支持
1:设置mysqld服务同时支持多个字符集
        将mysqld服务的默认字符集改为utf8,并同时支持latin1、gbk、gb2312、big5、ascii字符集。可以为不同的数据库、表使用不同的字符集编码。

      1) 源码编译时候:./configure步骤时需增加字符集支持选项,例如:
shell> ./configure –with-charset=utf8 –with-collation=utf8_bin –with-extra-charsets=big5,ascii,gb2312,gbk,utf8,latin1

          //默认的字符集缺省为latin1。
          //其中,utf8对应可用的collation值为:utf8_bin、utf8_general_ci、utf8_unicode_ci
          //extra支持也可以使用 "–with-extra-charsets=all"。

      2) make设置:在make步骤之前,修改config.h头文件,查找utf8、gbk、gb2312等定义字符集变量的行,确认有如下内容(如果没有则需要手动添加),例如:
#define HAVE_CHARSET_ascii 1
#define HAVE_CHARSET_big5 1
#define HAVE_CHARSET_gb2312 1
#define HAVE_CHARSET_gbk 1
#define HAVE_CHARSET_latin1 1
#define HAVE_CHARSET_utf8 1

          //一开始没有修改config.h,费了好多功夫,"mysql>"环境中使用非默认字符集时总报"Error 1115"错误:
mysqld> set names gbk;
ERROR 1115 (42000): Unknown character set: 'gbk'
          //后来发现在./configure完成后,config.h文件中并没有自动打开gbk、gb2312等变量定义,不得不手动修改添加。

2、验证mysqld服务的多字符集支持
        1) 查看当前mysql数据库支持的字符集
mysql> show character set;

        2) 查看对应字符集可用的校对规则
mysql> show collation like 'gb%';
mysql> show collation like 'utf8%';

        3) 查看当前mysql服务器使用的默认字符集状态
mysql> status
……
Server characterset:  utf8
Db     characterset:  utf8
Client characterset:  utf8
Conn.  characterset:  utf8

        4) 在创建数据库时指定使用的默认字符集:
mysql> create database testdb default character set utf8;
mysql> show create database testdb;     //验证数据库建立信息

        5) 在创建数据表时指定使用的默认字符集:
mysql> create table testdb.tb1 ( id int(10) unsigned NOT NULL AUTO_INCREMENT,name varchar(15) NOT NULL default '',PRIMARY KEY  (id) ) ENGINE=MyISAM DEFAULT CHARACTER SET gb2312;
mysql> show create table testdb.tb1;     //验证数据表建立信息

        6) 在mysql>客户端环境中设置使用的默认字符集
mysql> set NAMES utf8;

 

——————————————————

 

安装mysql遭遇的一些错误

1.Starting MySQL.Manager of pid-file quit without updating file.[FAILED]

解决 — 删除mysql-bin.index文件,

这个文件你可能不知道在哪里,可以这样子找

find /  -name mysql-bin.index

一般是在安装目录下的data或者是/var/lib/mysql下面

2.编译时候遭遇的错误

指定/usr/local/mysql目录的configure。
./configure –prefix=/usr/local/mysql –with-charset=utf8 –with-collation=utf8_bin –with-extra-charsets=gbk,ascii,gb2312,big5,utf8,latin1

问题:
configure: error: No curses/termcap library found

原因是缺少curses这个依赖包,通过yum安装即可

解决:
yum install ncurses-devel*

yum -y install gcc-c++