Перейти к содержанию

После установки

В зависимости от типа установки вам может потребоваться выполнить следующие задачи:

Установка с использованием бинарных файлов или сборки из исходного кода.

Задача
Инициализация каталога данных
Тестирование сервера
Установка запуска службы во время загрузки

Инициализируем каталог данных

Если вы устанавливаете сервер, используя либо дистрибутив с исходным кодом, либо из бинарного архива TAR, каталог данных не инициализируется и после установки необходимо запустить процесс инициализации.

Запустите mysqld с параметром --initialize или параметром --initialize-insecure.

Выполнение mysqld с любым из этих вариантов делает следующее:

  • Проверяет существование каталога данных

  • Инициализирует системное табличное пространство и связанные с ним структуры.

  • Создает системные таблицы, включая таблицы прав доступа, таблицы часовых поясов и справочные таблицы на стороне сервера.

  • Создает root@localhost

Вам следует выполнить следующие шаги под пользователем mysql.

  1. Перейдите в каталог MySQL. В примере используется расположение по умолчанию.

    $ cd /usr/local/mysql
    
  2. Создайте каталог для файлов MySQL. Системная переменная secure_file_priv использует путь к каталогу в качестве значения.

    $ mkdir mydata
    

    Каталог должен принадлежать системному пользователюmysql и иметь разрешения drwxr-x---. Четыре раздела в этой нотации определяют разрешения; файл/каталог, пользователь, группа и другие.

    Первый символ обозначает тип записи: файл или каталог. Первый символ — d для каталога.

    Остальные разделы задаются наборами из трех символов.

    Разрешение Пользователь Группа Другое
    Чтение Да Да Нет
    Запись Да Нет Нет
    Выполнение Да Да Нет
  3. Запустите команду для инициализации каталога данных.

    f4b67873 (Translate select chapters to Russian)

    $ bin/mysqld --initialize
    

Тестируем сервер

После инициализации каталога данных и запуска сервера вы можете запускать тесты на сервере.

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

Вы можете использовать клиентскую утилиту mysqladmin для доступа к серверу.

Если у вас возникли проблемы с подключением к серверу, используйте пользователя root и пароль учетной записи root.

$ sudo mysqladmin -u root -p version
Ожидаемый результат
Enter password:
mysql Ver 8.4.0-1.1 for debian-linux-gnu on x86_64 (MyDB (GPL), Release '1.1', Revision '723681b1')
...
Server version      8.4.0-1.1
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

Если при добавлении пароля 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

Последнее обновление: 2024-04-30