MariaDB — это система управления базами данных с открытым исходным кодом, которая часто используется в качестве альтернативы MySQL в составе популярного стека LAMP (Linux, Apache, MySQL, PHP/Python/Perl). Она представляет собой упрощенную замену MySQL.
Краткая версия этого руководства по установке состоит из этих трех шагов:
apt
.mariadb-server
с помощью apt
. Пакет также получает связанные инструменты для взаимодействия с MariaDB.mysql_secure_installation
для ограничения доступа к серверу.- sudo apt update
- sudo apt install mariadb-server
- sudo mysql_secure_installation
Из этого руководства вы узнаете, как установить MariaDB в Ubuntu 18.04 и подтвердить, что она запущена и имеет безопасную первоначальную конфигурацию.
Для данного обучающего руководства вам потребуется следующее:
sudo
.В Ubuntu 18.04 версия MariaDB 10.1 включена в репозитории пакетов APT по умолчанию.
Для ее установки обновите индекс пакетов на вашем сервере с помощью apt
:
- sudo apt update
Затем выполните установку пакета:
- sudo apt install mariadb-server
Эти команды выполнят установку MariaDB, но не будут запрашивать настройку пароля или внесение других изменений в конфигурацию. Поскольку при конфигурации по умолчанию установка MariaDB осуществляется небезопасным образом, мы будем использовать скрипт из пакета mariadb-server
для ограничения доступа к серверу и удаления неиспользуемых учетных записей.
Для новых установок MariaDB следующим шагом является запуск встроенного скрипта безопасности. Этот скрипт изменяет ряд наименее безопасных опций, используемых по умолчанию. Мы используем его для блокирования удаленных попыток входа с помощью root и удаления неиспользуемых пользователей базы данных.
Запустите скрипт безопасности:
- sudo mysql_secure_installation
При этом откроется серия диалогов, где вы можете внести некоторые изменения в параметры безопасности установки MariaDB. В первом диалоге вам нужно будет ввести пароль root для текущей базы данных. Поскольку мы еще не настроили его, нажмите ENTER
, чтобы указать «отсутствует».
В следующем диалоге вам будет предложено задать пароль root базы данных. Введите N
и нажмите ENTER
. В Ubuntu учетная запись root для MariaDB тесно связана с автоматизированным обслуживанием системы, так что мы не должны изменять настроенные методы аутентификации для этой учетной записи. Это позволит нам обновить пакет для уничтожения системы базы данных посредством удаления доступа к административной учетной записи. Позднее мы расскажем о том, как настроить дополнительную административную учетную запись для доступа по паролю, если аутентификация через сокет не подходит для вашего случая.
Далее вы можете использовать клавиши Y
и ENTER
, чтобы принять ответы по умолчанию для всех последующих вопросов. Выбрав эти ответы, вы удалите ряд анонимных пользователей и тестовую базу данных, отключите возможность удаленного входа пользователя root и загрузите новые правила, чтобы внесенные изменения немедленно имплементировались в MariaDB.
При установке MariaDB 10.1 в системах Ubuntu для пользователя root user MariaDB настраивается аутентификация с помощью плагина unix_socket
, а не с помощью пароля. Во многих случаях это обеспечивает более высокую безопасность и удобство, однако это также может осложнить ситуацию, если вам нужно предоставить права администратора внешней программе (например, phpMyAdmin).
Поскольку для ротации журналов, запуска и остановки сервера используется учетная запись root, лучше всего не менять учетные данные root. Изменение учетных данных в файле конфигурации /etc/mysql/debian.cnf
может работать на начальном этапе, но при обновлении пакета изменения могут быть перезаписаны. Вместо изменения учетной записи root, мантейнеры пакетов рекомендуют создать отдельную административную учетную запись для доступа по паролю.
Для этого мы создадим новую учетную запись с именем admin
и теми же возможностями, которые есть у учетной записи root, но настроим для нее аутентификацию по паролю. Для этого откройте командную строку MariaDB через терминал:
- sudo mysql
Теперь мы можем создать нового пользователя с привилегиями root и доступом с использованием пароля. Измените имя пользователя и пароль на желаемые:
- GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
Очистите привилегии, чтобы они были сохранены и доступны в текущем сеансе:
- FLUSH PRIVILEGES;
После этого закройте оболочку MariaDB:
- exit
Теперь давайте проверим установку MariaDB.
При установке из репозиториев по умолчанию MariaDB не должна запускаться автоматически. Чтобы проверить это, проверьте ее статус.
- sudo systemctl status mariadb
Вы получите вывод, который будет выглядеть примерно так:
Output● mariadb.service - MariaDB 10.1.44 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-03-25 16:51:16 UTC; 8min ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 22559 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 27 (limit: 1152)
CGroup: /system.slice/mariadb.service
└─22559 /usr/sbin/mysqld
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: mysql
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 6/7: Checking and upgrading tables
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Processing databases
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: information_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: performance_schema
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22596]: OK
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22658]: Checking for insecure root accounts.
Mar 25 16:51:17 ubuntu-mariadb /etc/mysql/debian-start[22663]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
Если MariaDB не запущена, вы можете воспользоваться командой sudo systemctl start mariadb
для запуска.
В качестве дополнительной проверки вы можете попробовать подключиться к базе данных с помощью инструмента mysqladmin
, который позволяет запускать команды администрирования. Например, эта команда позволяет подключиться к MariaDB в качестве root user и вернуть версию с помощью сокета Unix:
- sudo mysqladmin version
Результат должен выглядеть примерно следующим образом:
Outputmysqladmin Ver 9.1 Distrib 10.1.44-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.1.44-MariaDB-0ubuntu0.18.04.1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 10 min 9 sec
Threads: 1 Questions: 445 Slow queries: 0 Opens: 167 Flush tables: 1 Open tables: 30 Queries per second avg: 0.730
Если вы настроили отдельного пользователя для администрирования с аутентификацией по паролю, вы можете выполнить эту операцию, введя следующую команду:
- mysqladmin -u admin -p version
Это означает, что MariaDB запущена и работает и что ваш пользователь сможет успешно пройти аутентификацию.
С помощью этого руководства вы установили MariaDB для использования в качестве сервера SQL. Во время установки вы также обеспечили безопасность сервера. В качестве дополнительной опции вы создали отдельного пользователя для администрирования с аутентификацией по паролю.
Теперь, когда у вас есть запущенный и защищенный сервер MariaDB, вы можете воспользоваться некоторыми примерами следующих шагов, которые вы можете выполнить при работе с сервером:
Также вы можете включить MariaDB в более крупный стек приложения:
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!