在MySQL实例启动时,数据库会先去读一个配置参数文件(my.cnf),用来寻找数据库的各种文件所在位置以及指定某些初始化参数。在默认情况下,MySQL实例会按照一定的顺序在指定的位置进行读取,通过下面的语句可以查看读取参数文件的顺序。
mysql --help | grep my.cnf # 输出的信息如下: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf # 提示:如果想指定默认的参数文件,需要配合--defaults-file选项,如: mysqld --defaults-file=/etc/my3306.cnf &
视频讲解如下:
这里展示了一个典型的my.cnf参数文件。
[mysqld] server-id=1 port=3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/data log-error=/usr/local/mysql/data/error.log socket=/tmp/mysql.sock pid-file=/usr/local/mysql/data/mysql.pid character-set-server=utf8 lower_case_table_names=1 innodb_log_file_size=1G default-storage-engine=INNODB default_authentication_plugin=mysql_native_password [client] port=3306 default-character-set=utf8
在my.cnf文件中,参数分为Server Section和Client Section两块,下表列出了一些主要的参数及其含义。
MySQL把参数分为两类:动态参数和静态参数。
- 动态参数
MySQL实例在运行的过程中可以对参数进行在线的修改。可以通过命令set global或者set session两个命令在数据库中完成设置。
- 静态参数
顾名思义,就是无法在线修改参数。必须通过my.cnf参数文件进行修改,修改后需要重启MySQL数据库服务。