25 мая 2018 года вышла первая стабильная версия MariaDB 10.3.7 которая будет поддерживаться до мая 2023 года.
Как пишут разработчики: MariaDB 10.3 — это эволюция MariaDB 10.2 с несколькими совершенно новыми функциями, которые больше нигде нельзя найти.
Давайте попробуем установить новую версию на чистую систему Debian 9 (Stretch).
Полный список изменений в MariaDB 10.3.7 Вы можете найти на официальной странице, частичный перевод на русском языке можно почитать на этой странице.
Исходные данные: ОС Debian 9.4 (Stretch);
Задача: Установить MariaDB 10.3.7 с минимум телодвижений и произвести базовую настройку БД;
Установка MariaDB 10.3.7 на Debian 9:
1. Установка необходимых доп. пакетов:
apt-get update apt-get install dirmngr wget -y
2. А теперь та самая простая магия, о которой нигде не написано — скачивание и запуск скрипта установки репозитария:
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup && chmod a+x mariadb_repo_setup ./mariadb_repo_setup --mariadb-server-version=10.3
Для информации:
Данный скрипт проанализирует вашу систему, установит GPG-ключи и добавит репозитарий в файл /etc/apt/sources.list.d/mariadb.list
Скрипт является официальным и поддерживает дистрибутивы: RHEL/CentOS 6 & 7, Ubuntu 16.04 LTS (xenial) & 18.04 (bionic), Debian 8 (jessie) & 9 (stretch) и SLES 12 и 15
Скрипт так же поддерживает установку репозитариев для разных версий MariaDB, MaxScale и MariaDB Tools, Вы можете скачать его и посмотреть все опции запуска:
./mariadb_repo_setup --help
P.S. Для любителей все делать руками есть удобный портал, где можно более гибко выбрать нужный репозитарий в зависимости от географического положения вашего сервера.
3. Обновляем список пакетов:
apt-get update
4. Устанавливаем последнюю версию MariaDB 10.3.x:
apt-get install mariadb-server -y
В процессе установки инсталлятор попросит нас придумать пароль пользователя root, на данном этапе мы его оставим пустым и поменяем потом.
После установки проверим статус работы MariaDB:
# systemctl status mariadb ● mariadb.service - MariaDB 10.3.7 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Drop-In: /etc/systemd/system/mariadb.service.d └─migrated-from-my.cnf-settings.conf, override.conf Active: active (running) since Sun 2018-05-27 22:18:30 MSK; 3min 1s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Process: 20170 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 20167 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Process: 19883 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-enviro Process: 19879 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 19871 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Main PID: 20133 (mysqld) Status: "InnoDB 1 pages purged" Tasks: 33 (limit: 4915) Memory: 333.6M CPU: 6.127s CGroup: /system.slice/mariadb.service └─20133 /usr/sbin/mysqld
# netstat -ltupn | grep mysql tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 20133/mysqld # ps -ef | grep [m]ysql mysql 20133 1 2 22:18 ? 00:00:07 /usr/sbin/mysqld
А так же попробуем подключиться к БД с помощью команды mysql (т.к. на этапе установки мы оставили пароль root пустым, то использовать опции -u root -p мы не будеи):
# mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 303 Server version: 10.3.7-MariaDB-1:10.3.7+maria~stretch-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Мы успешно подключились к серверу MariaDB.
5. Теперь запустим мастер настройки безопасности:
mysql_secure_installation
На вопрос:
Enter current password for root (enter for none):
нажимаем Enter, текущий пароль root у нас пустой.
Далее вопрос:
Set root password? [Y/n]
вводим Y, да мы хотим поменять пароль root
и далее придумываем СЛОЖНЫЙ пароль root
Далее вопрос:
Remove anonymous users? [Y/n]
вводим Y, мы хотим удалить анонимного пользователя.
Далее вопрос:
Disallow root login remotely? [Y/n]
вводим Y, да мы хотим запретить подключаться под пользователем root с удаленных машин.
Далее вопрос:
Remove test database and access to it? [Y/n]
вводим Y, да мы хотим удалить тестовую базу test
И последний вопрос:
Reload privilege tables now? [Y/n]
вводим Y, да мы хотим перезагрузить таблицу привилегий для вступления их в силу.
После этого мы выполнили минимальные меры по защите нашего экземпляра MariaDB.
Попробуем теперь подключиться к базе:
# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Как мы видим с пустым паролем root нас больше не пускают.
Подключимся с указанием дополнительных опций и вводом пароля:
# mysql -u root -p Enter password: Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 525 Server version: 10.3.7-MariaDB-1:10.3.7+maria~stretch-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Отлично, все получилось.
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Профессионально занимаюсь системным администрированием Linux -серверов и баз данных (MySQL, PostgreSQL) на протяжении последних 24 лет.
Спасибо, ваша статья мне помогла. Все очень коротко и доходчиво)
Пожалуйста. Рад, что мой опыт Вам помог.
Всё отлично работает. Необходимо было полностью удалить старый mysql.
Спасибо.
/*Как мы видим с пустым паролем root нас больше не пускают.*/
хотите сказать в новой версии отличается логика ?
потому как в дебиан девять досих пор пускает без пароля .. тут я удивлен )))
но на стандартной мариидб которая идет в дебиан 9 поставке
хотите сказать в новой версии отличается логика ? потому как в дебиан девять досих пор пускает без пароля .. тут я удивлен ))) но на стандартной мариидб которая идет в дебиан 9 поставке Если при установке MariaDB Вы не введете пароль root, то он будет пустой. В разных дистрибутивах может быть реализована своя логика установки и настройки MariaDB, мы же ставим MariaDB из оффициального репозитария и там в момент установки запрашивается создание пароля root, что является правильным. Например для Oracle MySQL на некоторых дистрибутивах пароль root создается автоматически в момент первого запуска MySQL и пишется в лог, а авторизация идет… Подробнее »