• MySQL DBA 字符集及转码处理,认识MySQL存储引擎(七)


    什么是字符集

    理解不同字符集编码

    理解使用的工具字符集

    数据库字符集选择指导

    数据乱码处理技巧

    ===================================================================

    什么是字符集

    字符集是一套符号和编码的规则,字符串都必须有相应的字符集

    校验集是这套符号和编码的校验规则,定义字符排序规则,字符串之间的比较规则

    ASCII字符在不同字符集中,其所需的字节数是不一样的

    多字节字符间是以字符进行比较,而非以字节为单位进行比较

    校验集可以用于验证大小写,不同重音等是否一致

    个别校验集是二进制的,基于字符对应的数值进行比较

    xxx_bin将字符串中的每一个字符用二进制数据存储,区分大小写。

    xxx_general_ci不区分大小写,ci为case insensitive的缩写,即大小写不敏感。

    xxx_general_cs区分大小写,cs为case sensitive的缩写,即大小写敏感

    locale  --查看终端编码

    echo "林" |iconv -t gbk|hexdump

    echo "林" |hexdump

    echo "林" |iconv -t UTF-16|hexdump

    echo "a" |iconv -t gbk|hexdump   --实际存储2字节。显示1字节

    echo "a" |iconv -t utf8|hexdump  --实际存储3字节。显示1字节

    从一个大的字符集往小字符集转换,可能会丢字符,比如utf8->gbk

    varchar(30),在utf-8字符集下,最多可以写入几个英文,存储长度是多少? 30、91

    varchar(30),在latin1字符集下,最多可以写入几个中文字符,存储长度是多少? 15、31

    理解使用的工具字符集

    locale --远程终端字符集

    本地会话终端字符集 --首选项

    xshell 默认utf8 secuCRT 默认gbk

    数据库字符集选择指导

    result字符集集成连接字符集

    服务端:=>database=>table=>col

    客户端:connection=>result

    动态修改客户端字符集:set names utf8

    无法动态修改服务端字符集

    数据库配置字符集 character_set_server

    os字符集定义  

    cat /etc/sysconfig/il8n  --centos6

    cat /etc/locale.conf  --centos 7

    file backup.sql 查看文件字符集

    export LANG=gbk   --临时设置终端字符集

    locale -a|grep 'gbk'

    mysqldump  --help|grep where

    mysqldump --single-transaction --master-data=2 --where = '1=1 limit 10000'

    iconv -t utf8 xxx.sql > utf8_xxx.sql

    大字符集转小字符集可能失败 utf8=>gbk 

    DTS

    kettle

    MySQL存储引擎

  • 相关阅读:
    使用python将文字写入word文档中
    将图片显示到excel中
    新的写入xlsxwriter和追加写入openpyxl
    oracle 12.2 alter table move online
    主从复制管理和故障处理方法
    MySQL中的权限管理
    windows的CMD如何全屏最大化
    Troubleshooting query v$asm_disk v$asm_diskgroup hang
    library cache锁争用解决
    一则由ORA-1652引起的fixed object相关问题
  • 原文地址:https://www.cnblogs.com/geek-ace/p/11117411.html
Copyright © 2020-2023  润新知