После установки¶
В зависимости от типа установки вам может потребоваться выполнить следующие задачи:
Установка с использованием бинарных файлов или сборки из исходного кода.¶
| Задача | 
|---|
| Инициализация каталога данных | 
| Тестирование сервера | 
| Установка запуска службы во время загрузки | 
Инициализируем каталог данных¶
Если вы устанавливаете сервер, используя либо дистрибутив с исходным кодом, либо из бинарного архива TAR, каталог данных не инициализируется и после установки необходимо запустить процесс инициализации.
Запустите mysqld с параметром --initialize или параметром --initialize-insecure.
Выполнение mysqld с любым из этих вариантов делает следующее:
- 
Проверяет существование каталога данных 
- 
Инициализирует системное табличное пространство и связанные с ним структуры. 
- 
Создает системные таблицы, включая таблицы прав доступа, таблицы часовых поясов и справочные таблицы на стороне сервера. 
- 
Создает root@localhost
Вам следует выполнить следующие шаги под пользователем mysql.
- 
Перейдите в каталог MySQL. В примере используется расположение по умолчанию. $ cd /usr/local/mysql
- 
Создайте каталог для файлов MySQL. Системная переменная secure_file_privиспользует путь к каталогу в качестве значения.$ mkdir mydataКаталог должен принадлежать системному пользователю mysqlи иметь разрешенияdrwxr-x---. Четыре раздела в этой нотации определяют разрешения; файл/каталог, пользователь, группа и другие.Первый символ обозначает тип записи: файл или каталог. Первый символ — dдля каталога.Остальные разделы задаются наборами из трех символов. Разрешение Пользователь Группа Другое Чтение Да Да Нет Запись Да Нет Нет Выполнение Да Да Нет 
- 
Запустите команду для инициализации каталога данных. f4b67873 (Translate select chapters to Russian) $ bin/mysqld --initialize
Тестируем сервер¶
После инициализации каталога данных и запуска сервера вы можете запускать тесты на сервере.
В этом разделе предполагается, что вы использовали настройки установки по умолчанию. Если вы изменили расположение установки, перейдите к каталогу установки. Вы также можете добавить местоположение, Настроив переменные среды.
Вы можете использовать клиентскую утилиту mysqladmin для доступа к серверу.
Если у вас возникли проблемы с подключением к серверу, используйте пользователя root и пароль учетной записи root.
$ sudo mysqladmin -u root -p version
Ожидаемый результат
Enter password:
mysql Ver 8.4.5-5.2 for debian-linux-gnu on x86_64 (MyDB (GPL), Release '1.1', Revision '723681b1')
...
Server version      8.4.5-5.2
Protocol version    10
Connection          Localhost via UNIX socket
UNIX socket         /var/run/mysqld/mysqld.sock
Uptime:             4 hours 58 min 10 section
Threads:    2 Questions:    16 Slow queries: 0 Opens: 139 Flush tables: 3
Open tables: 59  Queries per second avg: 0.0000
Используйте mysqlshow для отображения информации о базе данных и таблицах.
$ sudo mysqlshow -u root -p
Ожидаемый результат
Enter password:
+---------------------+
|      Databases      |
+=====================+
| information_schema  |
+---------------------+
| mysql               |
+---------------------+
| performance_schema  |
+---------------------+
| sys                 |
+---------------------+
Настраиваем запуск службы во время загрузки¶
После установки из бинарного архива или собранных самостоятельно исполняемых файлов настройте поддержку systemd.
Следующие команды запускают, проверяют состояние и останавливают сервер:
$ sudo systemctl start mysqld
$ sudo systemctl status mysqld
$ sudo systemctl stop mysqld
Выполните следующую команду, чтобы запустить службу во время загрузки:
$ sudo systemctl enable mysqld
Выполните следующую команду, чтобы запретить запуск службы во время загрузки:
$ sudo systemctl disable mysqld
Все типы установок¶
| Задача | 
|---|
| Обновить пароль root | 
| Защитить сервер | 
| Заполнить таблицы часовых поясов | 
Обновляем пароль root¶
Во время установки в Debian/Ubuntu вам будет предложено ввести пароль root. В Red Hat Enterprise Linux и его производных пароль root обновляется после установки.
Перезапустите сервер с опцией --skip-grant-tables, чтобы разрешить доступ без пароля. Этот вариант небезопасен. Эта опция также отключает удаленные подключения.
$ sudo systemctl stop mysqld
$ sudo systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
$ sudo systemctl start mysqld 
$ mysql
Перезагрузите таблицы разрешений, чтобы иметь возможность выполнить команду ALTER USER. Введите пароль, соответствующий текущей политике.
mysql> FLUSH PRIVILEGES;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'rootPassword_12';
mysql> exit
Если команда завершается с ошибкой ERROR 1524 (HY000): Plugin [имя_плагина] is not loaded, выполните проверку доступности плагина:
mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS
       FROM INFORMATION_SCHEMA.PLUGINS
       WHERE PLUGIN_NAME LIKE 'validate%';
Если запрос возвращает пустой результат или статус DISABLED, это означает, что плагин недоступен. В этом случае необходимо переключить пользователя MySQL на использование одного из стандартных плагинов аутентификации: caching_sha2_password или mysql_native_password.
Пример изменения метода аутентификации для пользователя root:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'rootPassword_12';
Если при добавлении пароля MySQL возвращает ERROR 1819 (HY000) Your password does not satisfy the current policy, выполните следующую команду, чтобы увидеть требования политики.
mysql> SHOW VARIABLES LIKE 'validate_password%';
Повторите свой пароль, чтобы удовлетворить требованиям.
Остановите сервер, удалите параметр --skip-grant-tables, запустите сервер и войдите на сервер с обновленным паролем.
$ sudo systemctl stop mysqld 
$ sudo systemctl unset-environment MYSQLD_OPTS 
$ sudo systemctl start mysqld 
$ mysql -u root -p
Защищаем сервер¶
Скрипт mysql_secure_installation повышает безопасность установки.
Скрипт делает следующее:
- 
Изменяет пароль root
- 
Запрещает удаленный вход в систему для учетных записей root.
- 
Удаляет анонимных пользователей 
- 
Удаляет тестовую базу данных 
- 
Перезагружает таблицы привилегий 
Следующий команда запускает скрипт:
$ mysql_secure_installation
Заполняем таблицы часовых поясов¶
Системные таблицы часовых поясов:
- 
time_zone
- 
time_zone_leap_second
- 
time_zone_name
- 
time_zone_transition
- 
time_zone_transition_type
Если вы устанавливаете сервер, используя исходный дистрибутив либо дистрибутив бинарных архивов TAR, то при установке создаются таблицы часовых поясов, но эти таблицы не заполняются.
Программа mysql_tzinfo_to_sql заполняет таблицы из данных каталога zoneinfo присутствующего в Linux системах.
Распространенный метод заполнения таблиц — передать путь к каталогу zoneinfo в mysql_tzinfo_to_sql, а затем отправить вывод в mysql_system_schema.
В примере предполагается, что вы запускаете команду с учетной записью root. Учетная запись должна иметь права на изменение системной схемы mysql.
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p -D mysql