一、关于MySQL配置文件路径

 

绝大多数的mysql在启动的时候都要加载一个配置文件,相信大多数的开发都碰到过类似问题,机器启动时mysql默认都会启动,默认使用mysql命令可以连上服务端,但是数据存储在什么地方,参数设置的是多少等等,这个就需要知道mysql使用的是哪个配置文件,那么mysql启动是按照什么顺序来加载配置文件的呢?

 

在没有添加任何启动命令的时候,mysql会默认的依次从上到下检查配置文件是否存在,使用第一个发现的文件作为启动文件。

因此在启动mysqld的时候,一定要确定好上述的路径下是否有对应的配置文件,避免加载了错误的文件,导致一些奇怪的问题。

当然,如果不想使用默认加载顺序中的配置文件,可以在启动命令上增加 --defaults-file=/path/to/my.cnf来指定要使用的配置文件。

 

二、指定配置文件启动实例

 

#   /usr/sbin/mysqld    \

--user=mysql  \

--defaults-file=/etc/mysql/my.cnf  \

--basedir=/usr  \

--datadir=/var/lib/mysql  \

--pid-file=/var/run/mysqld/mysqld.pid  \

--socket=/var/run/mysqld/mysqld.sock

 

三、查看mysqld启动时的加载文件

 

查看当前mysqld启动时的加载文件

# ps ax | grep '[m]ysqld'

根据进程的文件信息来查看

# cat /proc/$(pidof mysqld)/cmdline | tr '\0' '\n'

 

 

使用mysqld自带的 --verbose功能

 

# /usr/sbin/mysqld --help --verbose 

 

 

# /usr/sbin/mysqld --help --verbose --skip-networking --pid-file=$(tempfile) 2> /dev/null | grep -A1 'Default options are read'

 

 

 

四、编译MySQL时指定my.cnf路径的参数

 

#   cmake  -DCMAK_INSTALL_PREFIC=/usr/local/mysql    \

    -DSYSCONFDIR=/etc  \

     -DDEFAULT_CHARSET=utf8  \

     -DDEFAULT_COLLATION=utf8_general_ci  \

      -DWITH_EXTRA_CHARSETS=all  

 

#   make && make install

 

如果你想将编译MySQL时指定my.cnf路径指向别处,如 /etc/mysql

# mkdir  /etc/mysql

# cmake  -DCMAK_INSTALL_PREFIC=/usr/local/mysql   -DSYSCONFDIR=/etc/mysql

# chown -R mysql:mysql   /etc/mysql

 

五、参考

 

Installing MySQL Using a Standard Source Distribution

https://dev.mysql.com/doc/refman/8.0/en/installing-source-distribution.html

 

How to Build MySQL Server with CMake

https://dev.mysql.com/doc/internals/en/cmake.html

 

MySQL Source-Configuration Options

https://dev.mysql.com/doc/refman/8.0/en/source-configuration-options.html

 

MySQL指定配配置文件路径启动

https://www.cnblogs.com/mangu-uu/p/4162984.html

Logo

更多推荐