Friday, April 8, 2011

MySQL: how to determine which config file is being used?

Is there a command to determine which configuration file MySQL 5.0 is currently using?

From stackoverflow
  • If you are on Linux, then start the 'mysqld' with strace, for eg strace ./mysqld.

    Among all the other system calls, you will find something like:

    stat64("/etc/my.cnf", 0xbfa3d7fc)       = -1 ENOENT (No such file or directory)
    stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4227, ...}) = 0
    open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
    

    So, as you can see..it lists the .cnf files, that it attempts to use and finally uses.

    Milan Babuškov : And how to do that on a running system without messing up anything?
  • If you run mysql --verbose --help | less it will tell you about line 11 which .cnf files it will look for.

    You can also do mysql --print-defaults to show you how the configuration values it will use. This can also be useful in identifying just which config file it is loading.

  • Taken from the fantastic "High Performance MySQL" O'Reilly book:

    $ which mysqld
    /usr/sbin/mysqld

    $ /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
    Default options are read from the following files in the given order:
    /etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf

0 comments:

Post a Comment