关于MYSQL字符集问题(一)

摘要:
对字符集的支持分为四个级别:服务器、数据库、数据表和连接。MySQL默认字符集MySQL可以指定数据库、表、列的字符集以及应该使用的字符集。然而,传统程序在创建数据库和数据表时不使用这种复杂的配置。它们使用默认配置。那么,默认配置来自何处?
  MySQL的字符集支持(Character Set Support)有两个方面:
    字符集(Character set)和排序方式(Collation)。
  对于字符集的支持细化到四个层次: 
    服务器(server),数据库(database),数据表(table)和连接(connection)。
MySQL默认字符集   MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。   但是,传统的 程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢? (1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1; (2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的; (3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集; (4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server ; (5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集; (6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database ,也就是这个数据库默认的字符集; (7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;   简单的总结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用 latin1 存储,不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把 default_character_set 设置为 UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。

免责声明:文章转载自《关于MYSQL字符集问题(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇UCP协议小型C/C++项目的makefile编写下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql默认安装目录说明

MySQL安装完成后不象SQLServer默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。 下面就介绍一下这几个目录。1、数据库目录/var/lib/mysql/2、配置文件/usr/sha...

C#远程访问linux(ubuntu)或windows的mysql数据库

 1、远程访问数据库大概模型 2、mysql在win7、linux上如何设置:2.1、分配权限(linux和win7) 进行mysql命令行,进行分配权限、执行 GRANTALLPRIVILEGESON*.*TO'Lucy'@'192.168.1.102' IDENTIFIED BY'123'WITHGRANTOPTION; ALL PRIVILEGE...

RAC一个节点自动重启问题分析

题记:在RAC数据库的故障当中,节点重启的现象很常见,在这种问题的处理当中,有一定的规律性。为了更好的说明这个问题的处理过程,保证出现该类问题的时候,能够有序的进行处理,特编写此文档。  问题现象描述   此问题的现象比较明显,也就是数据库自动重启,或者是节点自动重启,客户端在数据库重启期间无法连接数据库,导致业务断连的现象。这种情况如果出现在业务高峰期间...

mysql 命令行操作1

查看版本号 :SELECT @@version;或者status; 1.设置数据库系统的事务隔离级别 mysql> set global transaction isolation level read committed; Query OK, 0 rows affected (0.00 sec) mysql> SELECT @@global...

mysql如何设置两个默认时间列

timestamp设置默认值是Default CURRENT_TIMESTAMP timestamp设置随着表变化而自动更新是ON UPDATE CURRENT_TIMESTAMP 但是由于 一个表中至多只能有一个字段设置CURRENT_TIMESTAMP 两行设置DEFAULT CURRENT_TIMESTAMP是不行的。 还有一点要注意 1 2 3...

mysql 使用 table_rows 统计表格行数不准确

使用 table_rows 统计表格行数不准确  首先生产环境不建议这样做,只是为了测试 导致统计信息不准确的原因是什么呢?其实是MySQL 8.0为了提高information_schema的查询效率,将视图tables和statistics里面的统计信息缓存起来,缓存过期时间由参数information_schema_stats_expiry决定,...