zoukankan      html  css  js  c++  java
  • mysql字符集设置

    1.1mysql字符集知识:

    概述:字符集就是一套文字符号及其编码,比较规则的集合。 Mysql数据库字符集包括字符集(character)和校对规则(collation)这两个概念。其中字符集用于定义mysql数据库的存储方式,而校对规则是定义字符串的比较方式,并且字符集和校对规则是一对多的关系

    查看mysql可用的字符集的命令是show character set;

     

    1.2mysql数据库使用常见字符集介绍:

    常用·字符集

    长度

    说明

    GBK

    2

    不是国际标准,但支持的系统较多

    UTF-8

    3

    中英文合并,建议使用此字符集

    utf8mb4

    4

    UTF-8 Uniconde

    Lantin1

    1

    Mysql默认安装使用的字符集

     

     

     

     

     

     

    1.3选择合适的字符集

    1)满足应用支持语言的需求,处理各种各样的文字,支持不同语言的国家和地区,应选Unicode字符集,即utf-8。

    2)处理数据量较大,且要支持中文,性能要求很高,可选GBK(定长字符集,占用两个字节)对大量运算处理,比较排序,更快,更高。

    3)移动互联网业务,建议使用utf8mb4字符集。

     

    2.1mysql字符集的设置

    1)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       | /application/mysql-5.6.36/share/charsets/ |

    2)linux服务器端

    [root@db01 mysql]# cat /etc/sysconfig/i18n

    LANG="zh_CN.UTF-8

    3)临时修改mysql客户端字符集

    mysql> set names utf8;

    Query OK, 0 rows affected (0.00 sec)

    永久修改:

    [client]

    default-character-set=utf8

    4)修改mysql服务器端字符集

    在mysqld下添加default-character-set=utf8

    Mysql5.5及其以后版本

    [mysqld]

    character-set-server=utf8

    5)修改库表字符集的方法:

     修改库:alter database databasename character set ******

     修改表:alter table tablename character set ******

    库的修改:

    例如:show create database oldboyG;

    *************************** 1. row ***************************

           Database: oldboy

    Create Database: CREATE DATABASE `oldboy` /*!40100 DEFAULT CHARACTER SET gbk */

    1 row in set (0.00 sec)

    oldboy数据库字符集目前是gbk,将其修改为utf8,命令如下;

    alter database oldboy character set utf8 collate utf8_general_ci ;

    表的修改:

    alter table student character set utf8 collate utf8_general_ci ;

     

    2.2生产环境中字符集的修改

    说明:如何生产环境中没有调整好字符集的设定,而运行之后发现满足不了需求而调整,但不想丢失数据的话,可以进行字符集的修改,直接通过alter database databasename character set ******和alter table tablename character set ******命令进行修改,只能对修改后插入的数据有效,在修改之前插入的数据依然会保留之前的字符集,要想实现对之前数据也能修改字符集,必须将其数据导出,再经过调整重新导入即可。

    模拟过程:

    1) 导出表结构

    mysqldump -uroot -p --default-character-set=utf8 -d oldboy>oldboy.sql

    说明:--default-character-set=utf8 :以什么字符集连接 -d:只导出表结构,不导出数据

    手工修改oldboy.sql表中的字符集为新的字符集。

    2) 确保数据库不再更新数据,导出数据。

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

    参数说明:

    --quick:功能是从服务器一次一行检索表中的行,而不是检索所有的行,并在输出前将它缓存到内存中,用于转储较大的表。

    --extended-insert:使转储文件更小,重新载入文件可以加速插入。

    --no-create-info:不会重新创建转储表create table语句。

    --default-character-set=gbk:保留原有导出数据的字符集,这样导出的文件不会出现·乱码。

    3)打开data.sql,将set names gbk 修改为 set names utf8

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

       show create database oldboy default charset utf8;

    5)创建表结构,执行oldboy.sql。

    mysql -uroot -p oldboy<oldboy.sql

    6)重新导入数据u,执行data.sql。

       mysql -uroot -p oldboy<data.sql

  • 相关阅读:
    Construct Binary Tree from Preorder and Inorder Traversal
    Construct Binary Tree from Inorder and Postorder Traversal
    Maximum Depth of Binary Tree
    Sharepoint 2013 创建TimeJob 自动发送邮件
    IE8 不能够在Sharepoint平台上在线打开Office文档解决方案
    TFS安装与管理
    局域网通过IP查看对方计算机名,通过计算机名查看对方IP以及查看在线所有电脑IP
    JS 隐藏Sharepoint中List Item View页面的某一个字段
    SharePoint Calculated Column Formulas & Functions
    JS 两个一组数组转二维数组
  • 原文地址:https://www.cnblogs.com/sykblogs/p/9249917.html
Copyright © 2011-2022 走看看