美文网首页
mysql字符集

mysql字符集

作者: cdz620 | 来源:发表于2020-03-05 10:20 被阅读0次

参考url

urlhttp://www.111cn.net/database/mysql/55781.htm

修改my.ini,修改完后重启

default-character-set = utf8
character-set-server = utf8
collation-server = utf8_general_ci 
init_connect = 'SET collation_connection = utf8_general_ci '
init_connect = 'SET NAMES utf8'

default-character-set 只跟客户端连接有关

命令命令

set character_set_server=utf8;
set character_set_database=utf8;
SET character_set_server = utf8; 
SET collation_server = utf8_general_ci;
SET collation_database = utf8_general_ci;
SET collation_connection = utf8_general_ci;
SET character_set_client = utf8; 
SET character_set_connection = utf8;
SET character_set_results = utf8;
当选定一个数据库后,变量character_set_database 被设置为这个数据库的字符串集

排错命令

  • SHOW CHARACTER SET; #查看mysql支持的字符集
  • SHOW COLLATION; #查看mysql的字符序列(排序方式)
  • SHOW VARIABLES LIKE 'character%'; #查看mysql系统默认字符集设置值
  • SHOW VARIABLES LIKE 'collation%'; #查看mysql系统默认的字符序列(排序方式) 设置值
  • SQL函数HEX、LENGTH、CHAR_LENGTH
  • SQL函数CHARSET、COLLATION

客户端与服务器端交互过程字符集设置

一般三个字符集的设置相同

  • character_set_client
  • character_set_connection
  • character_set_results

mysql字符集转换过程

  1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;
  2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:
  • 使用每个数据字段的CHARACTER SET设定值;
  • 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);
  • 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;
  • 若上述值不存在,则使用character_set_server设定值。
  1. 将操作结果从内部操作字符集转换为character_set_results。

乱码问题的产生

  1. 我们的字段没有设置字符集,因此使用表的数据集;
  2. 我们的表没有指定字符集,默认使用数据库存的字符集;
  3. 我们的数据库在创建的时候没有指定字符集,因此使用character_set_server设定值;
  4. 我们没有特意去修改character_set_server的指定字符集,因此使用mysql默认;
  5. mysql默认的字符集是latin1,因此,我们使用了latin1字符集,而我们character_set_connection的字符集是UTF-8,插入中文乱码也再所难免了。

相关文章

  • 字符集与校对规则

    MySQL字符集及校对规则的理解 阅读目录:MySQL的字符集和校对规则 MySQL的字符集 MySQL与字符集 ...

  • MySQL字符排序

    关于MySQL字符集 可以参考文章MySQL字符集 & 重谈MySQL字符集 目录 大小写 比较规则 大小写 _c...

  • Mysql全备、增量备份及恢复

    Mysql字符集 MySQL数据库字符集包括字符集(CHARACTER)和校对规则(COLLATION)两个概念,...

  • MySQL常见问题汇集

    字符集mysql 字符集(CHARACTER SET)和校对集(COLLATE)mysql 中 character...

  • Mysql字符集设置

    mysql字符集编码

  • 八、MySQL字符集

    字符集和排序规则简介   MySQL提供了多种字符集和排序规则选择,其中字符集设置和数据存储以及客户端与MySQL...

  • MySQL乱码问题

    MySQL字符集参数 MySQL参数使用 影响到字符编码的设置 数据库级别的字符集信息使用db.opt来存放字符集...

  • 字符集

    定义 mysql 的字符集包括 字符集 CHARACTER 和 校对规则COLLATION 两个概念 字符集 : ...

  • mysql 字符集设置查看

    1.列出MYSQL支持的所有字符集:SHOW CHARACTER SET; 2.当前MYSQL服务器字符集设置SH...

  • MYSQL字符集设置

    MYSQL的Workbench设置字符集失败,可以用以下命令行方式设置MYSQL字符集: 在my.cnf中设置: ...

网友评论

      本文标题:mysql字符集

      本文链接:https://www.haomeiwen.com/subject/vczdchtx.html