Mysql

MySQL 5.6 OS X 10.8:如何判斷 my.cnf 是否讀取?

  • June 9, 2016

通過mysqld執行,我希望看到/etc/my.cnf至少有一個命令使用了它

ps aux | grep mysql | grep -v grep

mysqladmin variables | grep defaults-file

顯示 的值--defaults-file。但我沒有看到這樣的項目。為什麼不?

認為 /etc/my.cnf正在閱讀,因為如果我在其[mysqld]部分中輸入了錯誤條目,例如,error = true當我嘗試啟動它時,它會以一條消息mysqld中止。ERROR

我通過mysql-5.6.10-osx10.7-x86_64.pkg從執行來使用安裝mysql-5.6.10-osx10.7-x86_64.dmg

每當啟動 mysqld 時,它都會嘗試定位和讀取四個預設位置my.cnf

如果您執行以下命令:

mysqld --help --verbose | head -20 > junk.txt
cat junk.txt

你會看到這個:

mysqld  Ver 5.6.10 for Linux on x86_64 (MySQL Community Server (GPL))
Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Starts the MySQL database server.

Usage: mysqld [OPTIONS]

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
The following groups are read: mysqld server mysqld-5.6
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults           Don't read default options from any option file,
                       except for login file.
--defaults-file=#       Only read default options from the given file #.

注意上面寫著的那一行:

/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

這些是讀取的四個文件(如果存在)。

以上顯示來自 Linux Box。所以,請跑

mysqld --help --verbose | head -20 > junk.txt
cat junk.txt

並查看回顯的位置。

更新 2013-03-17 22:35 EDT

您看不到該--defaults-file選項不可見的原因很簡單:由於my.cnf存在一個或多個預設文件,mysqld_safe因此不會在命令行上顯示它。

請注意以下事項:

  • mysqld使用四個預設值
  • 您不能--defaults-file為 mysqld 設置。這就是**mysqld_safe**
  • **mysqld_safe**需要明確指定它才能在作業系統中可見

執行SHOW GLOBAL VARIABLES;不會顯示任何預設文件

mysql> show global variables like '%def%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
| default_week_format    | 0      |
| table_definition_cache | 400    |
+------------------------+--------+
3 rows in set (0.00 sec)

mysql>

引用自:https://dba.stackexchange.com/questions/36889