После установки¶
В зависимости от типа установки вам может потребоваться выполнить следующие задачи:
Установка с использованием бинарных файлов или сборки из исходного кода.¶
Задача |
---|
Инициализация каталога данных |
Тестирование сервера |
Установка запуска службы во время загрузки |
Инициализируем каталог данных¶
Если вы устанавливаете сервер, используя либо дистрибутив с исходным кодом, либо из бинарного архива 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.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