Определите, какой файл конфигурации 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
успешно, чтобы он использовал этот.