
首先可以先选择查看MySQL进程信息来判断使用了哪个配置文件,配置例如:
复制ps -aux|grep mysqld root 25628 0.0 0.0 112828 988 pts/0 S+ 19:13 0:00 grep --color=auto mysqld root 27503 0.0 0.0 113416 1660 ? S 2023 0:00 /bin/sh /usr/local/mysql5.7/bin/mysqld_safe --defaults-file=/data/mysql/mysql3306/etc/my.cnf mysql 28697 0.1 38.3 6168644 689056 ? Sl 2023 120:07 /usr/local/mysql5.7/bin/mysqld --defaults-file=/data/mysql/mysql3306/etc/my.cnf --basedir=/usr/local/mysql5.7 --datadir=/data/mysql/mysql3306/data --plugin-dir=/usr/local/mysql5.7/lib/mysql/plugin --user=mysql --log-error=/data/mysql/mysql3306/logs/mysqld.error --open-files-limit=65535 --pid-file=/data/mysql/mysql3306/tmp/mysqld.pid --socket=/data/mysql/mysql3306/tmp/mysql.sock --port=33061.2.3.4.
结果中有--defaults-file=/data/mysql/mysql3306/etc/my.cnf,即该实例所使用的文件配置文件信息。
2、使用方法二有的配置时候,如果不是文件不带defaults-file参数启动数据库时,查看进程信息的使用结果中是没有对应的配置文件信息。例如:
复制ps -aux|grep mysqld mysql 1891850 1.2 2.2 2308948 366080 ?配置 Ssl 2023 1355:28 /usr/sbin/mysqld root 3183979 0.0 0.0 12316 2272 pts/9 S+ 19:09 0:00 grep --color=auto mysqld1.2.3.
此时,如果使用的文件是MySQL8.0,可以登录到数据库后,使用通过查询对应视图performance_schema.variables_info来查看。源码下载配置例如:
复制mysql> SELECT variable_path,文件COUNT(*) FROM performance_schema.variables_info WHERE variable_path<> GROUP BY variable_path; +------------------------------------+----------+ | variable_path | COUNT(*) | +------------------------------------+----------+ | /etc/mysql/mysql.conf.d/mysqld.cnf | 6 | +------------------------------------+----------+1.2.3.4.5.6.
此时可以确定其配置文件信息。
PS:有时会查询到多个配置文件,使用可以思考一下为何如此设计。配置
如果使用的文件是MySQL8.0之前的版本,需要在下一步的顺序中寻找。
3、配置文件生效顺序如果存在多个配置文件,它们通常是以下的优先级顺序生效:
系统级配置文件:位于 /etc/my.cnf 或 C:\Program、Data\MySQL\MySQL Server x.x\my.ini。这是默认的主配置文件,IT技术网包含全局设置。配置文件目录中的其他文件:MySQL配置文件目录中的其他文件,通常在 /etc/mysql/conf.d/ 或 C:\ProgramData\MySQL\MySQL Server x.x\conf.d\。这些文件允许模块化配置,会按照文件名的字母顺序合并。用户级配置文件:位于用户的主目录,如 ~/.my.cnf 或 %APPDATA%\MySQL\.my.cnf。这里的配置会覆盖系统级配置。命令行参数:在启动数据库实例时可以指定defaults-file或者指定对应的datadir等参数,这些将覆盖之前的所有配置,优先级最高。企商汇