>记录生活, 工作的点点滴滴...

MySQL配置项详解

mysql配置项设置文件一般为my.cnf(windows下为my.ini), 配置文件按一定的顺序生效, 具体可用: mysql --help | grep "my.cnf"查看. 

如果不设置配置文件或配置文件未生效, 则按默认值.

各配置项如下:

[mysqld]
# mysqld配置段, mysql的配置项是按段(group)来区分的, 如: [mysql] [mysqldump] [client], 一般而言, 各配置段名称即是mysql各程序(bin目录下)的名称, 其中[client]段比较特殊, 该配置可供所有客户端(client)使用, 如[mysql]段下的配置会默认继承[client]段下的配置. 常用的就是, 在该段下配置各连接项的配置.

expire_logs_days = 10
expire_logs_days = 0 ##当有多个配置项时, 后运行的优先

##定义了mysql清除过期日志的时间。二进制日志自动删除的天数。默认值为0,表示“没有自动删除”。启动时和二进制日志循环时可能删除。

max_binlog_size = 100M

##如果二进制日志写入的内容超出给定值,日志就会发生滚动。你不能将该变量设置为大于1GB或小于4096字节。 默认值是1GB。

##mysql会给binlog命名为mysql-bin.000001,mysql-bin.000002的格式, 如果服务重启时, 或者文件大小超过设置的max_binlog_size时, 会自动创建一个新的binlog文件
log_timestamps = SYSTEM

## log_timestamps默认为UTC, 会出现日志文件的时间与系统时间不一致的问题, 可设置为SYSTEM

sql_mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

## sql_mode设置, mysql5.7默认开启only_full_group_by,当出现类似"functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by"错误时, 解决方案是: a.可通过修改sql_mode来消除; b.通过提供的any_value(),将非分组字段用any_value()函数处理, 如: select id, any_value(name) from user group by id;

ps: 这时先将平时涉及到的配置相列出, 慢慢不定时更新...


发表于:2019-01-23 15:07:06浏览(186) 评论(0) MySQL