Определите, какой файл конфигурации MySQL используется

Есть ли команда для определения того, какой файл конфигурации MySQL 5.0 используется в настоящее время?

Ответ 1

Если вы находитесь в Linux, запустите "mysqld" с помощью strace, например, strace ./mysqld.

Среди всех других системных вызовов вы найдете что-то вроде:

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

Итак, как вы можете видеть... перечисляет файлы .cnf, которые он пытается использовать и, наконец, использует.

Ответ 2

Взято из фантастической книги О'Рейли "High Performance MySQL":

$ 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

Ответ 3

Если вы запустите mysql --verbose --help | less, он расскажет вам о строке 11, которую будут искать файлы .cnf.

Вы также можете сделать mysql --print-defaults, чтобы показать, как будут использоваться значения конфигурации. Это также может быть полезно при определении того, какой файл конфигурации он загружает.

Ответ 4

Я нахожусь в Windows, и я установил самую последнюю версию сообщества MySQL 5.6

Что я сделал, чтобы посмотреть, какой файл конфигурации следует использовать, нужно перейти в "Администрирование" > "Службы" > "MySQL56" > "Правка" > "Свойства" и проверить путь к исполняемому файлу:

"C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file = "C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56

Ответ 5

Альтернативой является использование

mysqladmin variables

Ответ 6

mysqld --help - verbose опасен. Вы можете легко переписать pidfile для запуска экземпляра! используйте это с --pid-file = XYZ

О, и вы не сможете использовать его, если у вас запущено более 1 экземпляра. Он покажет вам только значение по умолчанию.

Действительно хорошая статья об этом:

Как найти файл конфигурации MySQL?

Ответ 7

Просто сделал быстрый тест на ubuntu:

  • установлен mysql-сервер, который создал /etc/mysql/my.cnf

  • mysqld --verbose --help | grep -A 1 "Параметры по умолчанию"

110112 13:35:26 [Примечание] Плагин 'FEDERATED' отключен.
Параметры по умолчанию считываются из следующих файлов в указанном порядке: /etc/my.cnf/etc/mysql/my.cnf/usr/etc/my.cnf ~/.my.cnf

  • создан/etc/my.cnf и /usr/etc/my.cnf, каждый с другим номером порта

  • перезапустил mysql - он использовал номер порта, установленный в /usr/etc/my.cnf

Также обнаружил параметр -defaults-file для mysqld. Если вы укажете там конфигурационный файл, будет использоваться только тот, независимо от того, что возвращается /usr/sbin/mysqld --verbose --help | grep -A 1 "Параметры по умолчанию"

Ответ 8

Я нашел это действительно полезным:

  • Найти процесс MySQL в Службах под Control Panel -> Administration Tools
  • Щелкните правой кнопкой мыши и выберите Properties
  • Нажмите и выберите Path to executable и посмотрите, содержит ли он путь к my.ini/my.cfg

Ответ 9

На некоторых серверах установлены и настроены несколько версий MySQL. Убедитесь, что вы имеете дело с правильной версией, запущенной с помощью Unix команда:

ps -ax | grep mysql

Ответ 10

Использование MySQL Workbench будет показано в разделе "Состояние сервера": введите описание изображения здесь

Ответ 11

Для людей, работающих с сервером Windows с mysql в качестве службы, простой способ узнать, какой конфигурационный файл вы используете, - открыть панель управления службами, найти свою службу mysql (в моем случае "MYSQL56" ), щелкнуть правой кнопкой мыши и нажмите свойства. Затем отсюда вы можете проверить "Путь к исполняемому файлу", который должен иметь переключатель defaults-file, который указывает на то, где находится ваш файл конфигурации.

Ответ 12

На всякий случай, когда вы используете mac, это может быть достигнуто также:

sudo dtruss mysqld 2>&1 | grep cnf

Ответ 13

Если вы находитесь в Windows, вы можете использовать Sysinternals procmon. Откройте его и настройте настройки фильтра следующим образом, затем нажмите "Добавить". Теперь procmon будет контролировать mysqld.

введите описание изображения здесь

Теперь запустите свой сервер mysql как обычно. Procmon захватит фоновые операции mysql. Поиск "мой". в области результатов procmon, и вы найдете что-то вроде следующего:

введите описание изображения здесь

Понятно, что mysql поочередно ищет список файлов конфигурации. В моем случае он нашел C:\mysql-5.7.19-winx64\my.cnf успешно, чтобы он использовал этот.