ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Проверка конфигурации перед запуском сервера MySQL

Как установить MySQL 8.0 На Ubuntu 18.04

С 8.0. 16 , MySQL Server поддерживает опцию validate-config, которая позволяет проверять конфигурацию запуска на наличие проблем без запуска сервера в нормальном рабочем режиме:

validate-config может использоваться в любое время, но особенно полезен после обновления , чтобы проверить, не считают ли какие-либо опции, ранее использовавшиеся с более старым сервером, обновленным сервером устаревшими или устаревшими.

Сначала давайте немного информации о моей версии и конфигурации MySQL.

$ mysqld --help --verbose | head -n13
mysqld Ver 8.0.16 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Starts the MySQL database server.

Usage: mysqld [OPTIONS]

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

 

Мы используем MySQL 8.0.16.

Конфигурация параметров по умолчанию читается в указанном порядке из:

/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/mysql/etc/my.cnf
~ / .My.cnf

 

Теперь давайте проверим конфигурацию запуска моего сервера MySQL:

$ mysqld --validate-config
$

 

Никакой ошибки !

Никакого вывода, все выглядит хорошо.

Наш сервер запустится с этой конфигурацией.

В случае ошибки сервер завершает работу.

Вывод явно отличается:

$ mysqld --validate-config --fake-option
2019-06-05T15:10:08.653775Z 0 [ERROR] [MY-000068] [Server] unknown option '--fake-option'.
2019-06-05T15:10:08.653822Z 0 [ERROR] [MY-010119] [Server] Aborting

 

Обычно ваши параметры конфигурации записываются в вашем файле конфигурации (обычно с именем my.cnf).

Поэтому вы также можете использовать validate-config в этом контексте:

$ mysqld --defaults-file=/etc/my.cnf --validate-config
$

 

 

Кроме того, вы можете справиться с многословием, используя log_error_verbosity:

С значением 2, в дополнение к ошибкам, мы сможем отображать предупреждения:

$ mysqld --defaults-file=/etc/my.cnf --validate-config --log_error_verbosity=2
2019-06-05T15:53:42.785422Z 0 [Warning] [MY-011068] [Server] The syntax 'expire-logs-days' is deprecated and will be removed in a future release. Please use binlog_expire_logs_seconds instead.
2019-06-05T15:53:42.785660Z 0 [Warning] [MY-010101] [Server] Insecure configuration for --secure-file-priv: Location is accessible to all OS users. Consider choosing a different directory.

 

Ничего особо серьезного, однако рекомендуется по возможности удалять предупреждения.

Поэтому мы исправили эти предупреждения:

$ mysqld --defaults-file=/etc/my.cnf --validate-config --log_error_verbosity=2
2019-06-05T16:04:32.363297Z 0 [ERROR] [MY-000067] [Server] unknown variable 'binlog_expire_logs_second=7200'.
2019-06-05T16:04:32.363369Z 0 [ERROR] [MY-010119] [Server] Aborting

 

К сожалению !!! Есть опечатка…: -0
Мы написали binlog_expire_logs_second вместо binlog_expire_logs_seconds.

(Мы забыли последние «s»)

В этом случае мой сервер MySQL не сможет запуститься.

Благодаря validate-config !

Теперь мы можем избежать неприятных ощущений при запуске сервера.

При правильном написании у нас теперь нет ошибок и предупреждений:

$ mysqld --defaults-file=/etc/my.cnf --validate-config --log_error_verbosity=2
$

 

Обратите внимание, что вы также можете использовать значение 3:

$ mysqld --defaults-file=/etc/my.cnf --validate-config --log_error_verbosity=3
2019-06-05T16:02:03.589770Z 0 [Note] [MY-010747] [Server] Plugin 'FEDERATED' is disabled.
2019-06-05T16:02:03.590719Z 0 [Note] [MY-010733] [Server] Shutting down plugin 'MyISAM'
2019-06-05T16:02:03.590763Z 0 [Note] [MY-010733] [Server] Shutting down plugin 'CSV'

 

validate-config удобен и может быть очень полезен.

Возможно, стоит включить его в процесс обновления.

Exit mobile version