Відповіді:
Три (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 або дефолтом до.
Ці вказівки стосуються запасів маріадби на центос 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
ця команда не показує, fe, bind-address, навіть якщо ми змінимо її в /etc/my.cnf і перезапустимо mysql.
Також наступна команда показує безліч параметрів, але не "прив'язує адресу":
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}}}
?