阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL 5.6.25 修改字符集

121次阅读
没有评论

共计 2475 个字符,预计需要花费 7 分钟才能阅读完成。

MySQL: 5.6.25
OS: CentOS6.5
刚刚在做查询优化的时候,自己创建表,但是没有注意到字符集的问题,当我向默认情况下创建的表中插入数据的时候,死活都插不进去,中文的不能显示出来。
过程如下:
创建表:
create table t1 (
id int(10) PRIMARY KEY,
name varchar(20),
class varchar(20));

插入数据:
insert into t1 values(1,’zhangyi’,’ 一班 ’);
insert into t1 values(2,’zhanger’,’ 二班 ’);
结果显示:

  1. mysql> insert into t1 values(1,’zhangyi’,”);
    Query OK, 1 row affected (0.01 sec)

    mysql> insert into t1 values(2,’zhanger’,”);
    Query OK, 1 row affected (0.01 sec)

  2. mysql> select * from t1;
  3. ++++
  4. | id | name    | class |
  5. ++++
  6. | 1  | zhangyi |  |
  7. | 2  | zhanger |
  8. ++++
  9. 2 rows in set (0.00 sec)

当时没有想到是字符集的问题,就纳闷怎么查不进去,而且 insert 的时候,后面的中文没有显示出来,这就奇怪了。
去图形界面用 navicat 插入,也是不成功。然后就去查看字符集,

  1. mysql> show variables like ‘%character%’;
  2. +++
  3. | Variable_name           | Value                      |
  4. +++
  5. | character_set_client     | utf8                       |
  6. | character_set_connection | utf8                       |
  7. | character_set_database   | latin1                    |
  8. | character_set_filesystem | binary                    |
  9. | character_set_results    | utf8                       |
  10. | character_set_server     | latin1                    |
  11. | character_set_system     | utf8                       |
  12. | character_sets_dir       | /usr/share/mysql/charsets/ |
  13. +++

结果字符集不是 UTF8 而是 latin1

原因:
我的 MySQL5.6.25 是通过 rpm 包安装的,应该是 MySQL 默认的字符集是latin1。如果是编译安装可以再 cmake 的时候指定字符集。

解决办法:
我先把表的字符集修改为 utf8,图形界面和命令行都一样
ALTER TABLE t1 DEFAULT CHARACTER SET=utf8;
再查看的时候就可以显示了。

为了以后的表都可以正常显示中文,我直接把 MySQL 数据库实例的字符集修改为 utf8

5.6 之前的版本是
     default-character-set=utf8
5.6 版本修改字符集的参数是
    character-set-server=utf8
直接 vi /etc/my.cnf 文件添加到[mysqld] 下面,重启 MySQL 即可

  1. [mysqld]
  2. socket = /mysqldata/mysql/mysql.sock
  3. character-setserver=utf8

再去数据库里面查看如下:

  1. mysql> show variables like ‘%character%’;
  2. +++
  3. | Variable_name            | Value                      |
  4. +++
  5. | character_set_client    | utf8                       |
  6. | character_set_connection | utf8                      |
  7. | character_set_database   | utf8                      |
  8. | character_set_filesystem | binary                    |
  9. | character_set_results    | utf8                       |
  10. | character_set_server    | utf8                       |
  11. | character_set_system    | utf8                     |
  12. | character_sets_dir      | /usr/share/mysql/charsets/ |
  13. +++

查看表记录显示:

  1. mysql> select * from t1;
  2. +—-+———+——–+
  3. | id | name    | class  |
  4. +—-+———+——–+
  5. | 1  | zhangyi | 一班   |
  6. | 2  | zhanger | 二班   |
  7. | 4  | zhangsi | 四班   |
  8. +—-+———+——–+
  9. 3 rows in set (0.00 sec)

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134475.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计2475字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中