MySQL配置文件加载顺序

有一次在帮助朋友排查mysql问题时,想看一下mysql数据库的参数配置,就去/etc/下去找my.cnf文件,结果没有找到这个文件,当时就有点懵,mysql配置哪儿去了,我该怎么找,于是就是尝试用下面命令去找

/u02/mysql/bin/mysql --socket=/u02/run/3308/mysql.sock -uroot -proot -e "show variables"|grep -i ".cnf"

结果发现配置文件没有在参数里,后来一想,这个方式肯定是行不通,因为my.cnf里没有添加参数文件参数,用show variables,自然就无法获取当前mysql数据库加载配置文件位置了。

那怎么才能获取mysql数据库加载配置文件呢,下面给大家介绍mysql加载配置文件的顺序,以及怎么去查找

方法1:如果mysql启动时指定了配置文件,则使用以下方法

[root@ ~]# ps -ef|grep -i mysql
root     24858 24788  0 17:57 pts/2    00:00:00 grep --color=auto -i mysql
root     29169     1  0 Sep24 ?        00:00:00 /bin/sh /u02/mysql/bin/mysqld_safe --defaults-file=/u02/conf/my3308.cnf
mysql    30250 29169  0 Sep24 ?        02:27:42 /u02/mysql/bin/mysqld --defaults-file=/u02/conf/my3308.cnf --basedir=/u02/mysql --datadir=/u02/data/3308 --plugin-dir=/u02/mysql/lib/plugin --user=mysql --log-error=/u02/log/3308/error.log --open-files-limit=65535 --pid-file=/u02/run/3308/mysqld.pid --socket=/u02/run/3308/mysql.sock --port=3308
root     30699     1  0 Sep24 ?        00:00:00 /bin/sh -c /usr/local/percona/qan-agent/bin/percona-qan-agent >> /var/log/pmm-mysql-queries-0.log 2>&1

上述结果中的--defaults-file=/u02/conf/my3308.cnf就是配置文件位置

方法2:如果mysql启动时没有指定配置,这使用以下方法获取配置文件位置

[root@]# /u02/mysql/bin/mysql --help|grep -i "my.cnf"
                      order of preference, my.cnf, $MYSQL_TCP_PORT, built-in
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

加载顺序为/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

如果以上方式都没有找到配置文件,则mysql启动时使用默认参数配置

喜欢的同学可以关注我的公众号(db_arch)(Mysql数据库运维与架构设计)

你可能感兴趣的:(dba学习笔记,mysql,架构设计)