Назад | Перейти на главную страницу

MySQL, где путь my.cnf?

Мне удалось найти каталог для установки MySQL: /usr/local/mysql/

Где я могу найти путь к my.cnf чтобы знать, где мне настроить сервер? Я пробовал создать /etc/my.cnf(как показано ниже), и это не повлияло

[mysqld]

#charset
collation_server=utf8_general_ci
character_set_server=utf8
default_character_set=utf8

Согласно Эта статья:

Выполнение этой команды из командной строки / терминала покажет, где MySQL будет искать файл my.cnf в системах Linux / BSD / OS X:

mysql --help | grep "Default options" -A 1 

Это выведет что-то вроде этого:

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 

Теперь вы можете проверить файлы, используя приведенный выше вывод в /etc/my.cnf, затем /etc/mysql/my.cnf и так далее. Если его нет в одном из этих мест, вы можете создать его и знать, что MySQL будет его использовать.

В системе Linux самым быстрым решением будет «найти my.cnf».

Если есть несколько файлов my.cnf, все выглядят вероятными (например, в /etc, /etc/mysql, /opt/mysql/etcи т. д.), тогда вы можете запустить strace чтобы увидеть, где двоичный файл MySQL пытается найти свой файл конфигурации, но я думаю, что это перебор.

Хорошо, дикий выстрел в темноте:

Если база данных установлена ​​в /usr/local/mysql, затем попробуйте заглянуть /etc/local для my.cnf

Вот как узнать, есть ли у вас my.cnf

Запустите этот запрос (<= 5.6.7)

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME IN ('wait_timeout',
'innodb_buffer_pool_size','innodb_log_file_size');

ИЛИ (>= 5.6.8) он переместился в схему производительности.

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME IN ('wait_timeout',
'innodb_buffer_pool_size','innodb_log_file_size');
SHOW GLOBAL VARIABLES LIKE 'wait_timeout';
SHOW GLOBAL VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW GLOBAL VARIABLES LIKE 'innodb_log_file_size';

Если вы получите:

Вы работаете со значениями по умолчанию, и есть вероятность, что не может быть my.cnf настоящее время.

НОТА:

Начиная с MySQL 5.7.6, информация, доступная из описанных здесь таблиц, также доступна из Performance Schema. Таблицы INFORMATION_SCHEMA устарели и предпочтительнее таблиц Performance Schema и будут удалены в будущем выпуске MySQL. Рекомендации по переходу от таблиц INFORMATION_SCHEMA к таблицам Performance Schema см. В Разделе 25.20, «Переход на систему Performance Schema и таблицы переменных состояния».

Как вы установили MySQL и на какой платформе?

Метод грубой силы на unixoid OS:

find / -name my.cnf -print

strace -fe open /etc/init.d/mysql start 2>&1|grep my.cnf должен показать вам системный вызов, используемый для открытия файла.

Похоже, что созданный вами файл cnf заменяется другим. Ознакомьтесь с порядком по умолчанию ниже.

Из

mysqld --verbose --help

Параметры по умолчанию считываются из следующих файлов в указанном порядке: /etc/my.cnf ~ / .my.cnf /etc/my.cnf

Как вы уверены, что ваш файл cnf не читается?

Вы перезапускали mysqld после внесения изменений?

Вы пробовали создать новую базу данных и смотрели ее значения?

Чтобы установить, найдите и обновитеb, чтобы запустить его ..

Используя Fedora, centos запускается от имени пользователя root:

yum install mlocate

если вы используете Ubuntu, запустите:

sudo apt-get install mlocate

После завершения установки запустите обновленную Fedora (от имени пользователя root):

$updatedb 

Ubuntu:

sudo updatedb

затем вы можете запустить команду locate, как указано выше. Опять же, my.cnf обычно находится в / etc. Вы уверены, что mysql установлен? Если нет, выполните приведенные выше команды, чтобы установить его и заменить mlocate на mysqld, желаю удачи!