Ответы:
Три (3) варианта
ВАРИАНТ 1: Из клиента mysql
mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt
Это захватит все параметры в текстовом файле.
ВАРИАНТ 2: Из командной строки Linux
ps -ef | grep mysqld | grep -v grep
Это покажет параметры mysqld, начатые как установленные из mysqld_safe
ВАРИАНТ 3: Запросите сервер напрямую
mysqld --help --verbose
В нижней части экрана «mysqld --help --verbose» вы увидите текущие настройки mysqld, загруженные из my.cnf или по умолчанию.
Эти инструкции предназначены для стоковой mariadb на centos 7.1.
Далее описывается, как сделать резервную копию или скопировать текущие настройки компьютера для новой установки, текущей или будущей.
На машине, с которой мы хотим скопировать настройки, мы можем запустить:
/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt
На другой машине мы можем установить mariadb-сервер и запустить:
/usr/libexec/mysqld --help --verbose > mysql_default_settings.txt
Затем мы помещаем оба файла в один каталог, который в этом примере является "/ a /".
Затем мы запускаем:
comm -3 <(sort /a/mysql_current_settings.txt) <(sort /a/mysql_default_settings.txt)
Если нет вывода, то оба файла идентичны. Это означает, что все настройки на обеих машинах установлены по умолчанию.
Если есть какой-либо вывод, то некоторые строки не будут с отступом, тогда как некоторые строки будут с отступом.
Неотступающие строки присутствуют только в первом файле, который здесь /a/mysql_current_settings.txt.
Строки с отступом присутствуют только во втором файле, который здесь /a/mysql_default_settings.txt.
Теперь мы знаем все настройки, за исключением некоторых настроек, которые задаются в командной строке, которая запустила mysqld. Эти настройки могут исходить из файлов /etc/my.cnf или /etc/my.cnf.d/*, либо из собственного сценария, либо из псевдонима и т. Д. В любом случае мы можем увидеть их с помощью следующей команды:
ps -ef | grep mysqld
Теперь мы знаем очень мало параметров, которые мы должны изменить в новой установке, чтобы настроить ее как старую.
Здесь следуйте за некоторыми другими деталями.
В centos 7.1 следующая команда показывает все текущие настройки, за исключением некоторых настроек, которые установлены в командной строке, которая запустила mysqld:
/usr/libexec/mysqld --help --verbose
В общей сложности это показывает:
в первой части настройки, которые мы можем использовать в качестве первого параметра после «mysqld» при запуске;
во второй части настройки устанавливаются во время компиляции;
в третьей части текущие настройки.
Даже если в последней строке его вывода написано: чтобы увидеть, какие значения использует работающий сервер MySQL, введите:
mysqladmin variables -uroot -p
эта команда не показывает, например, bind-адрес, даже если мы изменим его в /etc/my.cnf и перезапустим mysql.
Также следующая команда показывает множество настроек, но не «bind-address»:
mysql -uroot -p -e"SHOW VARIABLES;"
Обратите внимание, что в centos 7.1 mysqld отсутствует в $ PATH.
Вот мой любимый способ создания текущего my.cnf:
{ echo -e "# MYSQL VARIABLES {{{1\n##\n# MYSQL `mysql -V|sed 's,^.*\(V.*\)\, for.*,\1,'` - By: `logname`@`hostname -f` on `date +%c`\n##"; for l in {a..z}; do echo '#'; mysql -NBe "SHOW GLOBAL VARIABLES LIKE '${l}%'" | sed 's,\t,^= ,' | column -ts^ | tr "\n" '@' | eval $(echo "sed '" "s,@\("{a..u}{a..z}"\),\n\n\1,;" "'") | eval $(echo "sed '" "s,@\(innodb_"{a..z}{a..z}"\),\n\n\1,;" "'") | tr '@' "\n" | sed 's,^,# ,g'; done; echo -e "#\n##\n# MYSQL VARIABLES }}}1"; } | tee ~/mysql-variables.log
Тем не менее, это не работает надежно для Mac OS X.
Это выведет чистый журнал переменных, закомментированный, готовый для импорта в ваш my.cnf.
Первоисточник: http://www.askapache.com/mysql/view-mysql-variables-my-cnf.html
mysqld -V|sed 's,^.*\(V.*\)\ for.*,\1,'
. Не уверен, что это важно, так как я думаю, что и клиент, и сервер установлены вместе. Какова цель {{{1
и 1}}}
?