在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 &
视频讲解如下:
https://www.bilibili.com/video/BV1Yyeje2Ecd/?aid=112958176757...
这里展示了一个典型的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数据库服务。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。