MySQL的配置文件
MySQL的配置目录不管是Mac还是Linux,不管是那种方式安装,都是处于
1 | /etc/my.cnf |
位置,可以使用Vim进行编辑
MySQL目录配置原理
MySQL的bin文件下有许多脚本,以三个为例
- mysql
- mysql.server
- mysqld
这些脚本中保存的都是函数,而且他们之间存在互相调用关系,最终调用的都是mysqld
在配置文件中以 “[]” 作为配置的分类,可以针对通过不同脚本函数的调用进行配置,由于最终都是调用mysqld,所以说[mysqld]以下的配置为通用配置
1 | [musql] <===这里是通过命令行mysql登录时的配置 |
调优文件使用的注意点
该调优文件并不是拷贝进my.cnf就可以使用,对数据库配置有了解的人可以自行修改,不了解的主要注意以下问题。
正确的目录位置
该文件中最重要的是要指定好几个目录,并且事先手动建立好,mysql部分功能不会自动建立目录:
- datadir: 初始化时指定的data目录,用于存放4个默认表
- tmpdir: 临时文件目录,手动建立
- log_error: 错误日志目录 这个十分重要
- slow_query_log_file: 日志之二
- relay_log; 日志之三
- innodb_log_group_home_dir: innodb目录,手动建立
- innodb_undo_directory: innodb目录,手动建立
- plugin_dir: mysql插件位置
其中三个要手动建立的目录如果不存在,会报以下错误,因为Innodb不会自己新建目录
1 | 2016-07-20T02:13:07.227585-08:00 0 [ERROR] InnoDB: If you are installing InnoDB, remember that you must create directories yourself, InnoDB does not create them. |
正确的目录权限
除了让以上的目录正确设定外,还需要检查他们是不是拥有,特别是针对三个手动建立的目录
1 |
|
skip_name_resolve
skip_name_resolve: 禁止域名解析
这个也就是说只能使用ip进行链接,我在Mac的DMG版本MySQL-5.7.13下有一次不知为何在使用了这个选项后,无法链接到服务器,但是后来又好了,无法复现的错误
innodb_undo_tablespaces
在优化的的配置文件里
1 | innodb_undo_tablespaces = 3 |
在我个人的环境里会造成无法启动服务器,原因是 innodb_undo_tablespaces这个属性必须在初始化时配置,一旦配置无法后期更改,默认是0
所以我把其注销掉了,因为我的初始化命令并没有指定这个参数
一份网上的调优配置
1 | [client] |