MySQL配置文件
/etc/my.cnf
修改配置文件,需要重启数据库才能生效
默认存储引擎
查看默认存储引擎:show engines
修改默认存储引擎:my.cnf中的[mysqld]下面加入default-storage-engine=InnoDB
默认事务隔离级别(INNODB存储引擎模式下)
查看默认事务隔离级别:SELECT @@tx_isolation
修改默认事务隔离级别:my.conf中[mysqld]下面加入transaction-isolation=READ-COMMITTED
默认提交方式(INNODB存储引擎模式下)
查看默认提交方式:show variables like ‘%autocommit%’
修改默认提交方式:my.conf中[mysqld]下面加入autocommit=1
默认字符集
查看支持的字符集:show character set
查看默认字符集:show variables like ‘%character%’
修改默认提交方式:my.conf中[mysqld]下面加入
character-set-server=utf8
collation-server=utf8_general_ci
默认sql_mode
查看sql_mode:select @@sql_mode
修改sql_mode:my.conf中[mysqld]下面加入sql_code=删除原值中的ONLY_FULL_GROUP_BY
MySQL字符集分析:
1、字符集、字符序的概念
1.1、用数值代表对应的字符,数值就是这个字符的编码;“字符和编码对”组成的集合就是字符集。
1.2、字符序(collation)是指同一个字符集内字符之间的比较规则。
2、mysql相关的字符集参数
character_set_client:客户端数据使用的字符集
character_set_connection:数据通信链路的字符集,客户端向服务器发送数据时以该字符集进行编码
character_set_server:MySQL服务器字符集
character_set_database:数据库字符集
character_set_results:结果集的字符集,服务器向客户端返回结果数据时以该字符集进行编码
character_set_system:元数据(字段名、表名、数据库名等)的字符集默认为utf8
character_set_filesystem:MySQL服务器文件系统的字符集,该值是固定的binary
3、MySQL字符集的转化过程
1)打开命令提示符窗口,命令提示符窗口自身存在某一种字符集
2)在命令提示符窗口输入MySQL命令后回车,这些命令会被转化为character_set_client定义的字符集
3)使用命令提示符窗口成功连接MySQL服务器后,向MySQL服务器传递的数据,由character_set_client定义的字符集转化为character_set_connection定义的字符集
4)MySQL服务器收到数据后,将语句从character_set_connection定义的字符集转换为character_set_server定义的字符集
5)若MySQL命令或sql语句是针对某个数据库进行操作,此时将命令由character_set_server定义的字符集转换为character_set_database定义的字符集。
6)MySQL命令或sql语句执行结束后,将执行结果设置为character_set_result定义的字符集。
7)执行结果沿着打开的数据链路原路返回,将执行结果转换为character_set_client定义的字符集,最终转换为命令提示符窗口字符集显示在命令提示符窗口。