头图

在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两块,下表列出了一些主要的参数及其含义。
image.png

MySQL把参数分为两类:动态参数静态参数

  • 动态参数
    MySQL实例在运行的过程中可以对参数进行在线的修改。可以通过命令set global或者set session两个命令在数据库中完成设置。
  • 静态参数
    顾名思义,就是无法在线修改参数。必须通过my.cnf参数文件进行修改,修改后需要重启MySQL数据库服务。

赵渝强老师
30 声望10 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...