Как перейти с MySQL на MariaDB?
Из MySQL в MariaDB — одна из самых нелепо простых миграций, которые вы когда-либо делали в своей жизни. По сути, все, что вам нужно сделать, это:
- Убедитесь, что ваш менеджер пакетов имеет доступ к MariaDB.
- Остановите MySQL
- Установите MariaDB
Например, если вы работаете в Ubuntu 18.04, первым шагом является добавление источников MariaDB в вашу систему следующим образом:
Теперь пришло время остановить MySQL:
и затем установите MariaDB, который запустится после завершения:
Вот и все — вы успешно мигрировали с MySQL на MariaDB.
Конечно , должно быть что-то большее, чем просто 2-3 команды? Как насчет дампа и импорта баз данных? А как насчет пользователей базы данных, паролей и привилегий? А как насчет настроек оптимизации (для администраторов БД)?
Честно говоря, есть нулевая потребность в какой — либо из него. MariaDB является «заменой» MySQL. Помните, что это просто ветка с открытым исходным кодом существующего проекта MySQL, и поэтому обязательно то же самое. Как я уже говорил, различия со временем будут увеличиваться, но на данный момент ничего не нужно делать, кроме остановки MySQL и установки MariaDB.
Наконец, если вы работаете не на Ubuntu 18.04, а на другой платформе, MariaDB имеет полезный инструмент, который может генерировать необходимые вам команды для простого копирования и вставки.
Прежде чем закрыть эту статью, предостерегаю вас: пожалуйста, сделайте резервную копию ваших файлов данных MySQL, прежде чем выполнять обновление.
Не менее важно, провести тщательное исследование совместимости устанавливаемой версии MariaDB, если вы используете предварительно созданные сторонние инструменты (такие как Magento, Drupal и т.д.)
3: Настройка первой ноды
Все ноды кластера будут использовать почти одинаковые настройки. Потому сначала можно настроить одну машину, а затем просто скопировать её конфигурации на остальные ноды.
По умолчанию MariaDB проверяет каталог /etc/mysql/conf.d, чтобы получить дополнительные конфигурации из файлов .cnf. Создайте такой файл в этом каталоге:
Скопируйте и вставьте в него следующий код. В этой конфигурации указываются различные параметры кластера, сведения о текущем сервере и других серверах в кластере, а также параметры репликации
Обратите внимание, что в конфигурации нужно указывать внутренние IP-адреса ваших серверов
- Первый раздел изменяет или повторно задаёт настройки MariaDB/MySQL, необходимые для корректной работы кластера. Например, Galera Cluster не сможет работать с MyISAM и подобными нетранзакционными системами хранения. Также mysqld нельзя связывать с IP-адресом локального хоста. Подробную информацию о настройках Galera можно найти по этой ссылке.
- Раздел Galera Provider Configuration настраивает компоненты MariaDB, которые предоставляют интерфейс репликации WriteSet. Укажите эти параметры для настройки базовой среды репликации. Этот раздел не нужно перенастраивать, но если вам нужна дополнительная информация, вы найдете ее здесь.
- Раздел Galera Cluster Configuration определяет ноды, входящие в кластер, с помощью IP-адреса или доменного имени, а также задает имя кластера (благодаря чему все члены кластера входят в одну группу). Замените условные данные своими данными; вместо wsrep_cluster_name укажите более описательное имя (или оставьте все как есть). Вместо wsrep_cluster_address укажите внутренние IP-адреса нод кластера.
- Раздел Galera Synchronization Configuration указывает, как кластер будет взаимодействовать и синхронизировать данные между нодами, которые находятся в сети. Для этого в данном мануале используется rsync.
- Раздел Galera Node Configuration задаёт IP-адрес и имя текущего сервера. Это помогает при диагностике проблем в логах и позволяет ссылаться на сервер. Вместо wsrep_node_address укажите адрес текущей машины, а затем присвойте ей уникальное имя.
Скопируйте содержимое этого файла в буфер обмена, сохраните и закройте файл.
Когда конфигурационный файл кластера будет готов, скопируйте его содержимое в буфер обмена, сохраните и закройте файл.
Теперь, когда вы успешно настроили свою первую ноду, вы можете перейти к настройке оставшихся нод.
3: Настройка пользовательских привилегий и парольной аутентификации (опционально)
В новых установках Debian пользователь root по умолчанию поддерживает аутентификацию с помощью плагина unix_socket, а не через пароль. Это во многих случаях позволяет повысить безопасность и удобство использования, но также может усложнить работу, если вам необходимо разрешить доступ внешней программе (например, phpMyAdmin).
Поскольку сервер использует root-пользователя для таких задач, как ротация логов, запуск и остановка сервера, аутентификацию учетной записи root лучше не изменять. Изменение учетных данных в файле /etc/mysql/debian.cnf может сработать на начальном этапе, но дальнейшие обновления пакетов перезапишут все изменения. Вместо этого разработчики рекомендуют создать отдельную учетную запись администратора с парольной аутентификацией.
Итак, создайте аккаунт под названием admin с теми же правами, что и у root, но с поддержкой парольной аутентификации. Для этого откройте командную строку MariaDB:
Затем создайте нового пользователя с привилегиями root и поддержкой парольной аутентификации. Укажите в команде имя и пароль своего пользователя.
Сбросьте привилегии:
Закройте оболочку MariaDB:
Скачать MariaDB для Windows
MariaDB является бесплатной, настоятельно рекомендуется её скачивать с официального сайта. Страница для скачивания MariaDB: https://downloads.mariadb.org/
Вы увидите несколько серий — несколько мажорных версий программы. Если вам не нужна какая-то специфическая совместимость с MySQL, то просто выберите самую последнюю версию и нажмите кнопку с «Download»
Поскольку эта программа работает на разных операционных системах, то в следующем окне вы увидите большой выбор файлов для скачивания.
Файлы Windows x86_64
— это 64-битные версии, а Windows x86
— 32-битные.
.zip
— это портативные версии, которые нужно устанавливать самостоятельно, но которые дают полную свободу в тонкой подстройке. А .msi
— это установщик для Windows.
В этой инструкции я покажу на примере работы с версией .zip
.
На следующей странице достаточно нажать кнопку: «No thanks, just take me to the download
»:
Install and Setup MariaDB
Install MariaDB using the package manager.
MariaDB will bind to localhost (127.0.0.1) by default. For information on connecting to a remote database using SSH, see our
MySQL remote access guide, which also applies to MariaDB.
MariaDB Client
The standard tool for interacting with MariaDB is the client, which installs with the package. The MariaDB client is used through a terminal using the command.
Root Login
-
Log into MariaDB as the root user:
-
When prompted for login credentials, hit enter. By default MariaDB will authenticate you via the unix_socket plugin and credentials are not required.
You’ll then be presented with a welcome header and the MariaDB prompt as shown below:
-
To generate a list of commands for the MariaDB prompt, enter . You’ll then see:
Securing the Installation
-
After accessing MariaDB as the root user of your database, enable the mysql_native_password
plugin to enable root password authentication: -
Run the script to address several security concerns in a default MariaDB installation:
You will be given the choice to change the MariaDB root password, remove anonymous user accounts, disable root logins outside of localhost, and remove test databases. It is recommended that you answer to these options. You can read more about the script in the
MariaDB Knowledge Base.
Reset the MariaDB Root Password
If you forget your root MariaDB password, it can be reset.
-
Stop the current MariaDB server instance, then restart it with an option to not ask for a password:
-
Then execute the following command which will allow the database to start without loading the grant tables or networking.
-
Restart MariaDB:
-
Login to the MariaDB server with the root account, this time without supplying a password:
-
Use the following commands to reset root’s password. Replace with a strong password:
-
Update the authentication methods for the root password:
-
Revert the environment settings to allow the database to start with grant tables and networking:
-
Then restart MariaDB:
-
You should now be able to log into the database with your new root password:
Методы аутентификации
По умолчанию пользователь root MariaDB использует плагин аутентификации, который проверяет действующий идентификатор пользователя при вызове клиентского инструмента.
Это означает, что вы можете подключиться к серверу MariaDB как root, только если вы вызываете команду как системный root или добавляете sudo к команде.
Для повышения безопасности рекомендуется оставить плагин аутентификации по умолчанию и разрешить пользователю root аутентифицироваться только через сокеты Unix.
Если вы хотите изменить корневую аутентификацию на классическую, войдите на сервер MariaDB:
Выполните следующие инструкции, чтобы изменить плагин аутентификации:
Теперь вы можете подключиться к серверу MariaDB, используя новый пароль:
Изменение плагина аутентификации также позволит вам войти в систему как root из внешней программы, такой как phpMyAdmin.
2: Настройка MariaDB
После завершения установки нужно запустить сценарий безопасности, который удалит ненадёжные параметры и защитит БД от несанкционированного доступа.
Сценарий задаст ряд вопросов. Сначала нужно указать root-пароль MariaDB. Это административная учетная запись MariaDB, которая имеет повышенные привилегии. Вы установили MariaDB только что и еще не внесли никаких изменений в конфигурацию, этого пароля пока у вас нет, поэтому просто нажмите Enter.
В следующем запросе скрипт предложит настроить пароль root для базы данных. Введите N и нажмите клавишу Enter. В Debian учетная запись root MariaDB тесно связана с автоматизированным обслуживанием системы, поэтому изменять стандартные методы аутентификации этой учетной записи нельзя. Иначе при обновлении пакета БД может повредиться, а доступ к учетной записи root может быть утрачен. Позже мы рассмотрим, как настроить дополнительную учетную запись администратора, если аутентификация сокетов вам не подходит.
На остальные вопросы можно нажать Y и Enter. Это удалит анонимных пользователей и тестовые базы данных, отключит удалённый root логин и обновит текущие настройки MariaDB.
7: Тестирование репликации
Теперь нужно убедиться, что ноды кластера успешно реплицируют данные.
Внесите изменения в БД на первой ноде.
Запись данных на первой ноде
Создайте на первой ноде новую базу данных. Следующие команды создадут БД playground и таблицу equipment.
В предыдущей команде оператор CREATE DATABASE создает базу данных playground. Оператор CREATE создает в ней таблицу equipment, в которой есть столбец id с автоинкрементом и другие столбцы. Столбцы type, quant и color нужны для хранения типа, количества и цвета оборудования. Оператор INSERT вставляет запись type slide, quantity 2, color blue.
Чтение и запись на второй ноде
Теперь перейдите на вторую ноду и убедитесь, что кластер выполняет репликацию:
Если репликация работает правильно, данные, введённые на первой ноде, появятся в БД второй ноды.
Добавьте в кластер новые данные:
Чтение и запись на третьей ноде
Затем перейдитена третью ноду и просмотрите БД. Теперь она должна содержать новые данные, добавленные на первой и второй ноде.
Добавьте в таблицу еще одно новое значение:
Чтение на первой ноде
Теперь вернитесь на первую ноду. Запросите данные БД:
Вы увидите такой вывод, в котором будут содержаться все новые данные, добавленные со всех нод кластера:
Как видите, репликация данных успешно работает в кластере.
Установка MariaDB с dpkg
Хотя это не рекомендуется, можно загрузить и установить пакеты вручную. Однако обычно рекомендуется использовать менеджер пакетов, например .
Архив, содержащий пакеты , можно загрузить по следующему URL-адресу:
https://downloads.mariadb.com
Например, чтобы установить пакеты MariaDB 10.4.8 в Ubuntu 18.04 LTS (Bionic), вы можете выполнить следующее:
sudo apt-get update sudo apt-get install libdbi-perl libdbd-mysql-perl psmisc libaio1 socat wget https://downloads.mariadb.com/MariaDB/mariadb-10.4.8/repo/ubuntu/mariadb-10.4.8-ubuntu-bionic-amd64-debs.tar tar -xvf mariadb-10.4.8-ubuntu-bionic-amd64-debs.tar cd mariadb-10.4.8-ubuntu-bionic-amd64-debs/ sudo dpkg --install ./mariadb-common*.deb \ ./mysql-common*.deb \ ./mariadb-client*.deb \ ./libmariadb3*.deb \ ./libmysqlclient18*.deb sudo dpkg --install ./mariadb-server*.deb \ ./mariadb-backup*.deb \ ./galera-4*.deb
Настройка apache в CentOS 7
Теперь приступим к установке apache
. В CentOS 7 это делается очень просто:
# yum install -y httpd
Добавляем apache в автозагрузку:
# systemctl enable httpd
Запускаем apache в CentOS 7:
# systemctl start httpd
Проверяем, запустился ли сервер:
# netstat -tulnp | grep httpd
tcp6 0 0:::80:::* LISTEN 21586/httpd
Все в порядке, повис на 80-м порту, как и положено. Уже сейчас можно зайти по адресу http://ip-address
и увидеть картинку:
Теперь займемся настройкой apache. Я предпочитаю следующую структуру веб хостинга:
Создаем подобную структуру:
# mkdir /web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs
# chown -R apache. /web
IncludeOptional conf.d/*.conf
Если нет, раскомментируем и идем в каталог /etc/httpd/conf.d. С
оздаем там файл site1.ru.conf
:
ServerName site1.ru
ServerAlias www.site1.ru
DocumentRoot /web/site1.ru/www
Options FollowSymLinks
AllowOverride All
Require all granted
ErrorLog /web/site1.ru/logs/error.log
CustomLog /web/site1.ru/logs/access.log common
Перезапуск apache в centos
Теперь делаем restart apache
:
# systemctl restart httpd
Если возникли какие-то ошибки — смотрим лог apache /var/log/httpd/error_log
. Если все в порядке, то проверим, нормально ли настроен наш виртуальный хост. Для этого создадим в папке /web/site1.ru/www файл index.html
следующего содержания:
# mcedit /web/site1.ru/www/index.html
Апач настроен!
192.168.1.25 site1.ru
где 192.168.1.25 ip адрес нашего веб сервера.
Теперь в браузере набираем адрес http://site1.ru
. Если видим картинку:
значит все правильно настроили. Если какие-то ошибки, то идем смотреть логи. Причем в данном случае не общий лог httpd
, а лог ошибок конкретного виртуального хоста по адресу /web/site1.ru/logs/error.log
.
Сразу же обращу ваше внимание на настройку ротации логов виртуальных хостов. Частенько бывает, что если сразу не настроишь, потом забываешь
Но если сайт с хорошей посещаемостью, то логи будут расти стремительно и могут занять очень много места. Лучше настроить ротацию логов веб сервера сразу же после создания. Сделать это не сложно.
Чтобы настроить ротацию логов виртуальных хостов, необходимо отредактировать файл /etc/logrotate.d/httpd
. Он создается во время установки apache и включает в себя настройку ротации стандартного расположения логов. А так как мы перенесли логи каждого виртуального хоста в индивидуальную папку, необходимо добавить эти папки в этот файл:
# mcedit /etc/logrotate.d/httpd
/web/*/logs/*.log
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
delaycompress
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>/dev/null || true
endscript
}
В принципе, простейший веб сервер уже готов и им можно пользоваться. Но вряд ли сейчас найдутся сайты со статическим содержимым, которым достаточно поддержки только html. Так что продолжим нашу настройку.
Если вам необходимо организовать работу сайта по протоколу https
, то воспользуйтесь руководством по .
Чем MariaDB лучше MySQL
MariaDB поддерживает больше систем хранения (Storage Engines).
В дополнении к стандартным MyISAM, BLACKHOLE, CSV, MEMORY, ARCHIVE, и MERGE движкам хранения, в MariaDB также имеются следующие:
- ColumnStore, система хранения, ориентированная на столбцы, оптимизирована для хранилища данных.
- MyRocks, система хранения с большим сжатием, добавлена с 10.2 версии
- Aria, замена для MyISAM с улучшенным кэшированием.
- FederatedX (замена для Federated)
- OQGRAPH.
- SphinxSE.
- TokuDB.
- CONNECT.
- SEQUENCE.
- Spider.
- Cassandra.
MariaDB имеет множество различных улучшений и оптимизаций в скорости обработки данных.
MariaDB дополнена новыми расширениями и функциями.
Using MariaDB
Create a New MariaDB User and Database
-
Login to the database again. This time, if you set a password above, enter it at the prompt.
-
In the example below, is the name of the database, is the user, and is the user’s password. You should replace with a secure password:
You can shorten this process by creating the user while assigning database permissions:
-
Then exit MariaDB:
Create a Sample Table
-
Log back in as , entering the password when prompted:
-
Create a sample table called :
- This creates a table with a field of the type for integer.
- Two other fields are created, and for storing the customer’s name.
-
View the new table:
-
Add some data:
-
View the data:
-
Then exit MariaDB:
Вторичная оптимизация конфига MySQL
Под вторичной оптимизацией я подразумеваю тот тюнинг, который можно произвести только зная профиль нагрузки на БД: соотношение операций чтения и записи, долгие запросы и т.п.
Тюнинг performance_schema в MySQL
Опция performance_schema производит мониторинг всей БД, на что расходуется некоторая часть ресурсов, держать эту опцию постоянно включенной в продакшене крайне не рекомендуется, т.к. может замедлять время выполнения запросов до 25%. Объем потребляемых ресурсов зависит от конфигурации схемы, которую можно посмотреть выполнив запрос:
SHOW VARIABLES LIKE 'performance%';
А если выполнить от имени администратора БД этот запрос:
SHOW ENGINE performance_schema STATUS;
С помощью этого запроса можно понять все ли данные мониторятся, или что-то пропадает:
SHOW STATUS LIKE 'performance%';
Если какой-то счетчик оказался выше ноля, то нужно увеличить соответствующий параметр.
Именно на данных из performance_schema и основана вся фишка MySQLTuner! Чем дольше собираются данные, тем точнее будут рекомендации по оптимизации MySQL и MariaDB. Стоит учесть, что данные performance_schema обнуляются после каждой перезагрузки сервера, поэтому сначала лучше выполнить первичную конфигурацию, после чего оставить сервер под боевой нагрузкой на сутки для последующего анализа.
Работа с данными performance_schema
Переходим в базу данных performance_schema :
USE performance_schema;
И смотрим какие таблицы здесь есть:
SHOW TABLES;
Обратим внимание на наблицы с префиксом setup_, например:
SELECT * FROM setup_consumers; SELECT * FROM setup_instruments;
В них содержатся настройки того, что будет мониториться. С помощью UPDATE можно менять значение колонки ENABLED с NO на YES и наоборот.
Самые горячие таблицы
С помощью этого запроса можно узнать к каким таблицам происходит наибольшее число чтений и записей:
select substring_index(file_name, '/', -1) file_name, event_name, count_read, count_write from file_summary_by_instance where COUNT_READ+COUNT_WRITE > 0 order by COUNT_READ+COUNT_WRITE desc limit 30;
А этим запросом можно узнать статистику по блокировкам:
select event_name, source, sum(timer_wait) timer_wait from events_waits_history_long where event_name not like 'wait/io/file%' group by event_name, source order by 3 desc limit 30;
6: Запуск кластера
Запустите кластер MariaDB. Но для начала вам нужно остановить текущий сервис MariaDB.
Остановка сервиса MariaDB
Примечание: Сделайте это на всех нодах кластера.
Сейчас нужно остановить сервис MariaDB.
Команда systemctl не отображает результаты некоторых команд. Чтобы убедиться, что сервис остановлен, введите:
На экране появится:
Запуск первой ноды
Чтобы запустить первую ноду, используйте специальный загрузочный скрипт. Согласно настройкам кластера каждая запущенная нода будет пытаться подключиться хотя бы к одной из нод, перечисленных в файле galera.cnf. Без сценария galera_new_cluster, который позволяет системе systemd отправить флаг –wsrep-new-cluster, обычная команда запуска кластера не сработает, потому что на данный момент не существует нод, к которым можно подключиться.
После успешного выполнения скрипта нода регистрируется как часть кластера. Чтобы убедиться в этом, запустите:
На остальных нодах можно использовать стандартную команду mysql. Она найдет доступные ноды кластера и подключится к ним.
Запуск второй ноды
Чтобы запустить вторую ноду, запустите mysql:
При успешном выполнении команды выходные данные не будут отображаться. Размер кластера будет увеличиваться при подключении каждой новой ноды:
Запуск третьей ноды
Запустите команду mysql:
Если нода запущена успешно, размер кластера увеличится:
Вы увидите следующий вывод, который указывает, что третья нода присоединилась к кластеру и что общее количество нод в кластере- 3.
Теперь кластер запущен, а ноды могут взаимодействовать между собой.
Install the New Version
MariaDB Corporation provides a APT package repository for Debian 9.
Install via APT (Debian/Ubuntu)
-
Configure the APT package repository.
To configure APT package repositories:
$ sudo apt install wget $ wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup $ echo "fc84b8954141ed3c59ac7a1adfc8051c93171bae7ba34d7f9aeecd3b148f1527 mariadb_repo_setup" \ | sha256sum -c - $ chmod +x mariadb_repo_setup $ sudo ./mariadb_repo_setup \ --mariadb-server-version="mariadb-10.3" $ sudo apt update
-
Install MariaDB Community Server and package dependencies:
$ sudo apt install mariadb-server mariadb-backup
-
Configure MariaDB.
Installation only loads MariaDB Community Server to the system. MariaDB Community Server requires configuration before the database server is ready for use.
7: Тестирование репликации
Теперь нужно убедиться, что ноды кластера успешно реплицируют данные.
Внесите изменения в БД на первой ноде.
Запись данных на первой ноде
Создайте на первой ноде новую базу данных. Следующие команды создадут БД playground и таблицу equipment.
В предыдущей команде оператор CREATE DATABASE создает базу данных playground. Оператор CREATE создает в ней таблицу equipment, в которой есть столбец id с автоинкрементом и другие столбцы. Столбцы type, quant и color нужны для хранения типа, количества и цвета оборудования. Оператор INSERT вставляет запись type slide, quantity 2, color blue.
Чтение и запись на второй ноде
Теперь перейдите на вторую ноду и убедитесь, что кластер выполняет репликацию:
Если репликация работает правильно, данные, введённые на первой ноде, появятся в БД второй ноды.
Добавьте в кластер новые данные:
Чтение и запись на третьей ноде
Затем перейдитена третью ноду и просмотрите БД. Теперь она должна содержать новые данные, добавленные на первой и второй ноде.
Добавьте в таблицу еще одно новое значение:
Чтение на первой ноде
Теперь вернитесь на первую ноду. Запросите данные БД:
Вы увидите такой вывод, в котором будут содержаться все новые данные, добавленные со всех нод кластера:
Как видите, репликация данных успешно работает в кластере.
Установка MariaDB в Ubuntu 18.04
MariaDB есть в официальных репозиториях Ubuntu, и если вам нужна стабильная версия, то лучше устанавливать её именно оттуда. Для этого выполните:
Сейчас в репозиториях Ubuntu 18.04 поставляется версия 10.1. Но уже давно состоялся релиз MariaDB 10.3, и готовится к выпуску 10.4. Если вы хотите установить эти версии, вам придётся использовать репозиторий разработчиков.
Затем прокрутите страницу вниз и скопируйте команды добавления репозитория:
Для Ubuntu 18.04 надо выполнить три команды:
Затем обновим списки репозиториев и установим MariaDB Ubuntu нужной версии:
Во время установки программа предложит нам задать пароль для суперпользователя базы данных. Пароль нужно ввести два раза:
После того, как установка будет завершена, проверяем запущена ли база данных:
Теперь можно переходить к настройке MariaDB.
Step 2 — Configuring MariaDB
For fresh installations, you’ll want to run the included security script. This changes some of the less secure default options for things like remote root logins and sample users.
Run the security script:
This will take you through a series of prompts where you can make some changes to your MariaDB installation’s security options. The first prompt will ask you to enter the current database root password. Since we have not set one up yet, press to indicate “none”.
The next prompt asks you whether you’d like to set up a database root password. Type and then press . In Debian, the root account for MariaDB is tied closely to automated system maintenance, so we should not change the configured authentication methods for that account. Doing so would make it possible for a package update to break the database system by removing access to the administrative account. Later, we will cover how to optionally set up an additional administrative account for password access if socket authentication is not appropriate for your use case.
From there, you can press and then to accept the defaults for all the subsequent questions. This will remove some anonymous users and the test database, disable remote root logins, and load these new rules so that MariaDB immediately respects the changes you have made.
Установка ОС Debian
Целевая аудитория мана – новички в Linux, вроде меня, поэтому опишу установку, даже пошагово. В ней мало принципиально важных настроек, поэтому можете действовать по принципу «Далее»-«Далее», только не забудьте включить в компонентах сервер SSH, если планируете управлять этим сервером удалённо. Графический интерфейс может понадобиться, если все настройки планируете выполнять с этой машины, т.к. на этапе «настройка Mediawiki» понадобится браузер.
Под спойлерами много скриншотов.
Установка и настройка LAMP Stack
Предполагается, что мы всё ещё подключены по SSH и выполнили команду su. Выполняем описанную в руководстве команду для установки, не пропуская мимо ушей то, что mysql не поддерживается начиная с Debian “buster” (10.3):
Настройка PHP
Тоже не обязательный пункт, и в моей конфигурации менять пришлось не всё, но тем не менее:
- откройте в текстовом редакторе /etc/php/7.3/apache2/php.ini (например nano /etc/php/7.3/apache2/php.ini), не забудьте, что он должен запускаться из-под рута (выполните su, если это новый сеанс консоли)
- Увеличьте до необходимых значения
- upload_max_fileseze = 2M #я для себя поставил 50. Для документов и изображений должно быть достаточно, а делать больше – стрёмно, человеческий фактор никто не отменял, кто-то может по невнимательности загрузить файлы, для которых этот портал не предназначен.
- memory_limit = 128M #в руководстве рекомендуется минимум до 128, у меня так и было – не стал менять
- Сохраните изменения и выйдите из редактора
- Ctrl+O, Ctrl+X для nano
- :wq для vi
Контрольная точка «Установлен LAMP»
Без неё всё будет работать, и перед запуском в прод все контрольные точки (по крайней мере на Hyper-V) стоит удалить, но сейчас я настоятельно рекомендую этот снапшот сделать.
Практикум по Kali Linux
- Искать и эксплуатировать уязвимости или изъяны конфигурации в корпоративных сетях, web сайтах, серверах. Упор на пентест ОС Windows и на безопасность корпоративного сегмента.
- Изучение таких инструментов, как metasploit, sqlmap, wireshark, burp suite и многие другие.
- Освоение инструментария Kali Linux на практике — с ним должен быть знаком любой специалист по ИБ.
Эта статья «Установка MariaDB 10 на CentOS 7» покажет вам, как установить и настроить MariaDB 10 на CentOS 7. Как вы вероятно уже знаете, сервер базы данных MariaDB теперь по умолчанию на CentOS т.к из-за Oracle (MySQL материнская компания) и вопросов GPL лицензирования. MariaDB с открытым исходным кодом и сообщество постепенно отходит от MySQL и переходит на MariaDB.
Если вы не знаете историю, вот краткое резюме. До Oracle владеющий MySQL, она была основана на GPL (GNU General Public License), которая говорит, что вы можете использовать программное обеспечение бесплатно, но вы не можете изменять и продавать его, если вы не отдаете исходный код. Это означает, что вы можете использовать его в вашем проекте с закрытым исходным кодоме.
Когда Oracle изменила лицензионное соглашение от модели GPL, в основном в с открытым исходным кодом сообщества восстали и некоторые начали группу из MySQL и создали MariaDB.
Поэтому в основном, сервер базы данных MariaDB такой же как и MySQL, но с моделью лицензирования GPL.
Теперь, когда вы знаете немного больше о том, почему и как MariaDB была основана, давайте будем учиться, как установить ее на CentOS 7.
Установка MariaDB на CentOS 7
Теперь, MariaDB является сервер базы данных по умолчанию для CentOS, все что вам нужно сделать, это запустить следующие команды, чтобы установить ее.Проблема в том, что centos загружает и устанавливает более старую, но стабильную версию MariaDB.
Если вы хотите, чтобы установить последнюю версию MariaDB, необходимо добавить его репозиторий программного обеспечения на ваш компьютер и установить. Чтобы сделать это, выполните следующие команды, чтобы создать файл из хранилища.
$ sudo vim /etc/yum.repos.d/MariaDB.repo
Затем скопируйте и вставьте строки что ниже в файл и сохранить его.
Name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Наконец, выполните команды ниже, чтобы установить MariaDB 10 на ваш сервер:
$ sudo yum install MariaDB-server MariaDB-client
Если у вас возникли проблемы с ошибками и MariaDB не может быть установлена из-за конфликта с mariadb-libs-xxxx, выполните команду что ниже, чтобы удалить конфликтующие библиотеки, и после чего повторно запустите установку команды что выше:
$ sudo yum remove mariadb-libs*
Следует также удалить пакет Postfix. Повторно запустите команду что выше, чтобы установить MariaDB.
После завершения установки, выполните команду что ниже, чтобы запустить сервер с MariaDB:
$ sudo /etc/init.d/mysql start
Затем выполните следующую команду, чтобы защитить сервер базы данных.
$ sudo mysql_secure_installation
Затем выберите «Y» (Да) для остальных подсказок, пока вы не закончите.
Enter current password for root (enter for none): press Enter
Set root password? Y
New password: Type new root password
Re-enter new password: Confirm the password
Remove anonymous users? Y
Disallow root login remotely? Y
Remove test database and access to it? Y
Reload privilege tables now? Y
Последнее, необходимо заменить cnf.ini файл по умолчанию в /etc/ для MariaDB. Но для начала нужно перейти в:
$ cd /usr/share/mysql
И использовать один из предопределенных cnf.ini конфигураций которые доступны (Huge, Medium и Small) в данной папке.
Сделаем резервное копирование cnf.ini файла:
$ sudo mv /etc/cnf.ini /etc/cnf.ini.bak
Затем скопируйте один из предварительных конфигураций в MariaDB:
$ sudo cp /usr/share/mysql/my-huge.cnf /etc/cnf.ini
Перезапуск MaraiDB:
$ systemctl restart mysql
Можно проверить статус:
$ systemctl status mariadb
Можно добавить MariaBD в автозагрузку ОС:
$ systemctl enable mariadb
Мне нужно создать пользователя и чтобы он мог подключатся из любого компьютера, для этого:
$ mysql -uroot -u
>GRANT ALL PRIVILEGES ON *.* TO «captain»@»%» IDENTIFIED BY «my_password» WITH GRANT OPTION;
> exit
Проверим какой порт прослушивает MariaDB с помощью команды SS:
# ss -tnlp | grep 3306
LISTEN 0 0 127.0.0.1:3306 *:* users:((«mysqld»,1159,14))
Мой выглядит вот так (я разрешил удаленное подключение к серверу БД):
LISTEN 0 50 *:3306 *:* users:((«mysqld»,10884,13))
Установка MariaDB 10 на CentOS 7 завершена.