MySQL如何找到使用的是哪个配置文件?

2024年 1月 17日 32.5k 0

点击上方蓝字关注我

    一个正在运行的MySQL实例,如何查看对应的配置文件用的是哪一个?如果存在多个文件,生效的顺序是怎么样的?

1.  方法一

首先可以先选择查看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=3306

    结果中有--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 mysqld

      此时,如果使用的是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 |
        +------------------------------------+----------+

        此时可以确定其配置文件信息。

        PS:有时会查询到多个配置文件,可以思考一下为何如此设计。

        如果使用的是MySQL8.0之前的版本,需要在下一步的顺序中寻找

        3. 配置文件生效顺序

        如果存在多个配置文件,它们通常是以下的优先级顺序生效:

        系统级配置文件:位于 etc/my.cnf 或 C:Program、DataMySQLMySQL Server x.xmy.ini。这是默认的主配置文件,包含全局设置。
        配置文件目录中的其他文件:MySQL配置文件目录中的其他文件,通常在 /etc/mysql/conf.d/ 或 C:ProgramDataMySQLMySQL Server x.xconf.d。
        这些文件允许模块化配置,会按照文件名的字母顺序合并。
        用户级配置文件:位于用户的主目录,如 ~/.my.cnf 或 %APPDATA%MySQL.my.cnf。这里的配置会覆盖系统级配置。
        命令行参数:在启动数据库实例时可以指定defaults-file或者指定对应的datadir等参数,这些将覆盖之前的所有配置,优先级最高

        往期精彩回顾

        1.  MySQL高可用之MHA集群部署

        2.  mysql8.0新增用户及加密规则修改的那些事

        3.  比hive快10倍的大数据查询利器-- presto

        4.  监控利器出鞘:Prometheus+Grafana监控MySQL、Redis数据库

        5.  PostgreSQL主从复制--物理复制

        6.  MySQL传统点位复制在线转为GTID模式复制

        7.  MySQL敏感数据加密及解密

        8.  MySQL数据备份及还原(一)

        9.  MySQL数据备份及还原(二)

        扫码关注     

        相关文章

        Oracle如何使用授予和撤销权限的语法和示例
        Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
        下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
        社区版oceanbase安装
        Oracle 导出CSV工具-sqluldr2
        ETL数据集成丨快速将MySQL数据迁移至Doris数据库

        发布评论