字符集

1.常见字符集

  GBK:双字节编码

  UTF-8: 1~4字节,汉字占3个字节

2.mysql支持的字符集简介

  mysql可以在同一台服务器、同一数据库、同一个表的不同字段可以指定不同的字符集

  查看所有字符集:show character set; select * from information_schema.character_sets;

  校对规则:select * from information_schema.collations;

    _ci:大小写不敏感

    _cs(_bin):大小写敏感

3.mysql字符集设置

  服务器级:

    配置文件:my.cnf

      character-set-server=gbk

    启动项:

      --character-set-server

    编译时:

      cmake . -DDEFAULT_CHARSET=gbk

    只改字符集,没有改校对规则

    show variables like 'character_set_server';

    show variables like 'collation_server';

  数据库级:

    show variables like 'character_set_database';

    show variables like 'collation_database';

  表级别:

    show create table tablename\G;

  连接字符集合校对规则:

    3个参数:character_set_client、character_set_connection、character_set_results

    修改:set names ;

  字符集的修改步骤:

    模拟将latin1字符集修改成GBK字符集

      (1)到出表结构

          mysql -uroot -p --default-character-set=gbk -d databasename >createtable.sql

      (2)手工修改createtable.sql中表的结构定义中的字符集为新的字符集

      (3)确保记录不再更新,导出表的所有记录

        mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 databasename >data.sql

          --quick  用于转存大的表,从服务器一次一行地检索表中的行

          --extended-insert  多行插入values,减少转存文件大小

          --default-character-set=latin1  按照原有字符集导出数据

      (4)打开data.sql,将SET NAMES latin1 修改成SET NAMES gbk。

      (5)使用新的字符集创建新的数据库

        create database databasename default charset gbk;

      (6)创建表,执行createtab.sql

        mysql -uroot -p databasename < createtab.sql

      (7)导入数据,执行data.sql

        mysql -uroot -p databasename <data.sql

posted @ 2018-12-25 08:37  大来  阅读(212)  评论(0编辑  收藏  举报