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

Сделайте изменения глобальных переменных MySQL постоянными после перезагрузки

Я пишу приложение, которое пытается удаленно настроить несколько серверов MySQL. Часть этой конфигурации включает установку глобальных переменных MySQL с использованием синтаксиса SQL следующим образом:

SET GLOBAL VARIABLE foo=123;

Это работает хорошо, но длится только до перезапуска сервера. Я бы хотел, чтобы MySQL записал эти изменения в параметры (.ini), чтобы они сохранялись после перезагрузки компьютера.

Я пытаюсь редактировать файлы параметров, не открывая их напрямую - я бы предпочел делать все через соединение MySQL.

Кто-нибудь знает, можно ли это сделать?

set-variable=var_name=value классический метод сделать это в my.cnf. Также вы можете указать using flags как --set-variable=var_name=value. Ранее, чем MySQL 4.0.2, большинство параметров конфигурации было установлено с использованием этого метода.

Это обесценилось и даже удалено в MySQL 5.5. Большинство параметров можно установить, используя их настоящие имена в my.cnf. Если вам нужна дополнительная помощь, будьте более конкретными.

Чтобы сделать глобальную системную переменную постоянной, вы должны установить ее в файле опций: http://dev.mysql.com/doc/refman/5.0/en/option-files.html

Вы просто можете добавить все переменные в /etc/mysql/conf.d/mysql.cnf файл сразу после [mysqld].

[mysqld]
max_connections=1000
foo=bar

если вы нашли [mysql], замените его на [mysqld]

Я редактирую переменную в /etc/mysql/mariadb.conf.d/50-server.cnf

под [сервером]

[server] 
innodb_file_format=barracuda
innodb_file_per_table=ON