Як настроїти MariaDB SSL і встановити безпечні з'єднання з різних клієнтів. Встановлення MariaDB на Debian Встановлення mariadb

Вітаю!

Я повністю підтримую ваше рішення! Я перевів свої сервери на MariaDB з MySQL 3 роки тому і не від хорошого життя. Версії MySQL після покупки його компанією Oracle ставали дедалі гіршими. Постійні падіння та помилки в таблицях погано впливали на доступність сайтів, тоді було вирішено перейти на MariaDB.

Результат повністю себе виправдав, MariaDB дуже стабільна та добре оптимізована. Трирічний аптайм без перерв на кількох серверах добре це доводить.

Вибір версії MariaDB

  • /var/run/php5-fpm.sock вже має бути присутнім на сервері? ubuntu 16.04 не знайшов такого файлу в /var/run
  • Існує 2 гілки MariaDB - 5.x та 10.x.

    5.x - це версії, максимально наближені до MySQL останніх версій, повністю сумісні з MySQL. Якщо ви переходите на MariaDB з MySQL - ця лінійка версій для вас.

    10.x - нова лінійкаверсій, яку розпочали після версії 5.5. Ці версії повністю не копіюють нові функції останніх версій MySQL, але містять свої унікальні функції. Вони, як і раніше, сумісні з MySQL, але якщо ви тільки починаєте використовувати MariaDB - краще почати з версії 5.5.

    Встановлення MariaDB на Linux сервер

    Дистрибутивів MariaDB зазвичай немає в репозитаріях основних дистрибутивів Linux (наприклад, CentOS 6 і CentOS 7). Але навіть якби були, краще встановити в систему рідний репозитарій MariaDB, щоб завжди мати актуальні версії. Для встановлення репозитарію yum виконайте інструкції:

    1. Створіть новий файлрепозитарію за допомогою команди:

    vi /etc/yum.repos.d/MariaDB.repo

    Натисніть клавішу i, щоб перейти до режиму редагування редактора vi.

    2. Отримайте текст файлу для своєї версії дистрибутива Linux за цим посиланням. Вам знадобиться вибрати назву дистрибутива, його версію та розрядність:

    Скопіюйте текст для файлу репозитарію, вставте його у файл і натисніть ":wq" для виходу з редактора vi зі збереженням.

    Тепер можна встановити MariaDB Server та програми оточення за допомогою yum:

    yum install MariaDB-server MariaDB-client

    Бібліотеки для різних мов програмування можна встановлювати MySQL, вони повністю сумісні. Наприклад, для PHP:

    Тепер вам необхідно запустити встановлений сервер MariaDB і перейти до його налаштування:

    Якщо ви все зробили правильно, побачите таке повідомлення:

    Налаштування MariaDB

    Для нормального початку роботи з MariaDB вам необхідно встановити root пароль. Докладно про тюнінг та оптимізацію бази даних я розповім у спеціальній статті, це не першочергові речі.

    Початкова установка root пароля MySQL:

    Найпростіший спосіб встановити пароль root - використовувати спеціальний скрипт, він входить до дистрибутиву MariaDB:

    /usr/bin/mysql_secure_installation

    Виконайте вказівки та встановіть пароль root.

    Якщо у вас залишилися питання або потрібні уточнення - будь ласка, запитайте або залиште коментар.

    Я завжди радий допомогти!

    Думаю всім відомо, що MariaDB – це відгалуження від MySQL. Розробку та підтримку MariaDB здійснює компанія MariaDB Corporation Ab та фонд MariaDB Foundation. Провідний розробник MariaDB – це всім відомий Майкл Віденіус, автор оригінальної версії MySQL.

    На сьогодні актуальною є версія , яка була випущена 13 лютого 2018 року. У новій версії MariaDB сховище InnoDB було оновлено до випуску 5.7.21, також було виправлено більше 100 помилок, у тому числі , які могли бути використані для ініціювання віддаленої відмови в обслуговуванні.

    Спробуймо встановити нову версію на чисту систему Debian 9.3 (Stretch).

    Не приховуватиму, що мені дуже подобається MariaDB і я давно відмовився від використання Oracle MySQL на користь MariaDB або Percona Server for MySQL про що ні краплі не шкодую. MariaDB використовується як заміна Oracle MySQL у багатьох Linux дистрибутивах. Так само MariaDB використовується як БД на великій кількості великих сайтів, власне і мій блог теж не виняток - як БД у мене використовується MariaDB 10.2.

    Вихідні дані:ОС Debian 9.3 (Stretch);
    Завдання:Встановити MariaDB 10.2.13 з мінімум рухів тіла і зробити базове налаштування БД;

    В інтернеті можна знайти багато статей про встановлення MariaDB на Debian, але всі вони пропонують досить громіздкі рішення.
    Є так само, але вона теж не містить простого рішення, Але ж воно є!

    Встановлення MariaDB 10.2.13 на 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.2

    Для інформації:
    Даний скрипт проаналізує вашу систему, встановить 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.2.x:

    Apt-get install mariadb-server -y

    У процесі встановлення інсталятор попросить нас придумати пароль користувача root, На даному етапі ми його залишимо порожнім і поміняємо згодом.

    Після встановлення перевіримо статус роботи MariaDB:

    # systemctl status mariadb ● mariadb.service - MariaDB 10.2.13 . service.d └─migrated-from-my.cnf-settings.conf Active: active (running) since Thu 2018-02-15 12:14:17 +05; 19років ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 7270 (mysqld) Status: "Такінг ваших SQL requests now..." CGroup: /system. slice/mariadb.service └─7270 /usr/sbin/mysqld # netstat -ltupn | grep mysql tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 7270/mysqld #ps-ef | grep [m] ysql mysql 7270 1 0 12:14 ? 00:00:00 /usr/sbin/mysqld

    А так само спробуємо підключитися до БД за допомогою команди mysql (бо на етапі установки ми залишили пароль root порожнім, то використовувати опції -u root -p ми не будемо):

    # mysql Welcome to the MariaDB monitor. Commands end with; or \g. Your MariaDB connection id is 10 Server version: 10.2.13-MariaDB-10.2.13+maria~stretch-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type "help;" або "h" for help. Type "c" для очищення поточного вхідного стану. MariaDB [(none)]>

    Ми успішно підключилися до сервера MariaDB.

    5. Тепер запустимо майстер налаштування безпеки:

    Mysql_secure_installation

    На питання:
    Enter current password for root (Enter для none):
    натискаємо Enter, поточний пароль root у нас порожній.

    І останнє запитання:
    Reload privilege tables now?
    вводимо Y, так ми хочемо перезавантажити таблицю привілеїв для набуття ними чинності.

    Після цього ми виконали мінімальні заходи щодо захисту нашого екземпляра MariaDB.

    Спробуємо тепер підключитися до бази:

    # mysql ERROR 1045 (28000): Access denied for user "root"@"localhost" (using password: NO)

    Тому що ми бачимо з порожнім паролем root нас більше не пускають.

    Підключимося із зазначенням додаткових опцій та введенням пароля:

    # mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with; or \g. Your MariaDB connection id is 20 Server version: 10.2.13-MariaDB-10.2.13+maria~stretch-log mariadb.org binary distribution Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type "help;" або "h" for help. Type "c" для очищення поточного вхідного стану. MariaDB [(none)]>

    Добре, все вийшло.

    На цьому все до швидких зустрічей. Якщо у Вас виникли питання або Ви хочете, щоб я допоміг Вам, то Ви завжди можете .

    У цій статті ми розглянемо як встановити та налаштувати Linux, Apache, MariaDB, PHP на Centos7/RHEL 7. У новій версії Centos7/RHEL 7 багато змін.

    Що таке LAMP?

    LAMP - комплект програмного забезпеченняна ОС, що складається з операційної системи Linux, веб-сервера Apache, сервера бази даних MySQL та мови програмування PHP(або Perl/Python). LAMP використовується для роботи важких динамічних веб-сайтів, що повністю складається з вільного програмного забезпечення з відкритим вихідним кодом. У цій статті я збираюся пояснити, як Linux, Apache, MySQL / MariaDB (заміна MySQL), PHP (LAMP) встановлюються на CentOS 7 або RHEL 7.

    • Встановлюємо сервер RHEL 7 або CentOS 7. Відкриваємо термінал до сервера по ssh, у Вас мають бути права суперкористувача root.
    • Вам також знадобляться знання команд yum
    • Вам знадобиться IP адреса вашого сервера, використовуйте наступну команду, щоб визначити IP адресу для інтерфейсу eth0
    ifconfig eth0 або ip a show eth0 або ip addr list eth0 | awk "/inet /(sub(/\/+/,"",$2); print $2)" або ifconfig eth0 | awk "/inet /(print $2)" 10.180.10.10
    • Отриману IP 10.180.10.10 адресу будемо використовувати для тестування установки

    Отже приступимо

    Встановлення Apache on a CentOS 7 /RHEL 7 сервер

    Для встановлення веб-сервера використовуємо команду

    Yum install httpd

    Увімкніть службу HTTPd у автозавантаження

    systemctl enable httpd.service ln -s "/usr/lib/systemd/system/httpd.service" "/etc/systemd/system/multi-user.target.wants/httpd.service"

    Щоб вимкнути, автоматичне завантаження

    Systemctl disable httpd.service rm "/etc/systemd/system/multi-user.target.wants/httpd.service"

    Запустіть службу HTTPd на CentOS 7 / RHEL 7

    systemctl start httpd.service

    На даному етапі ви можете вказати у веб-браузері IP-адресу вашого сервера http://10.180.10.10. Ви побачите стартову сторінку apache:

    Зупинка служби HTTPd на CentOS 7 / RHEL 7

    systemctl stop httpd.service

    Перезапуск служби HTTPd на CentOS 7 / RHEL 7

    Перегляд статусу apache служби CentOS 7 / RHEL 7

    Переконайтеся, що веб-сервер запущено

    Systemctl status httpd.service

    Також перезапуск веб-сервера може бути виконаний наступною командою

    Apachectl graceful

    Перевірка apache / httpd на наявність помилок конфігурації в Centos 7/ RHEL 7

    Apachectl configtest

    Стандартна конфігурація HTTPD сервера:

    1. За промовчанням файл конфігурації: /etc/httpd/conf/httpd.conf
    2. Файли конфігурації модулів, що завантажуються: /etc/httpd/conf.modules.d/ (наприклад, PHP)
    3. Виберіть MPMs як завантажені модулі та події: /etc/httpd/conf.modules.d/00-mpm.conf
    4. Стандартні порти: 80 та 443 (SSL)
    5. Файли журналів за промовчанням: /var/log/httpd/(access_log,error_log)

    Встановлення MariaDB на сервері CentOS 7/RHEL

    MariaDB – оновлена ​​заміна для сервера MySQL. На RHEL/CentOS 7 замість MySQL використовується система управління базами даних MariaDB. Введіть наступну команду yum для встановлення MariaDB сервера:

    Yum install mariadb-server mariadb

    Для запуску MariaDB, використовуйте команду:

    Systemctl start mariadb.service

    Щоб переконатися, що MariaDB запускається автоматично під час завантаження, введіть:

    Systemctl enable mariadb.service

    Виведення команди

    Ln -s "/usr/lib/systemd/system/mariadb.service" "/etc/systemd/system/multi-user.target.wants/mariadb.service"

    Щоб зупинити / перезапустити і вимкнути MariaDB використовуйте такі команди:

    Sudo systemctl stop mariadb.service #-- Зупинити mariadb сервер sudo systemctl restart mariadb.service #-- Перзапустити mariadb сервер sudo systemctl disable mariadb.service #-- Вимкнути автозавантаження mariadb сервер sudo systemctl is-active mariadb.service #-- чи сервер?

    Перший запуск MariaDB

    Введіть наступну команду:

    /usr/bin/mysql_secure_installation

    Відповідаючи на запитання, Ви зможете налаштувати початкову безпеку БД

    Перевірка установки MariaDB

    Введіть наступну команду

    Mysql -u root -p

    Приклад висновку:

    Встановлення PHP на CentOS 7 / RHEL 7

    Для встановлення PHP та модулів, таких як GD / mysql введіть наступну команду

    Yum install php php-mysql php-gd php-pear

    Необхідно перезавантажити сервер HTTPD (Apache), введіть:

    Systemctl restart httpd.service

    Для пошуку всіх інших PHP модулів:

    Yum search php-

    Щоб отримати більше детальну інформаціюпро модуль:

    Yum info php-pgsql

    Перевірка PHP на сервері

    Створіть файл з ім'ям /var/www/html/test.php таким чином:

    Vi /var/www/html/test.php

    Додайте наступний код:

    LAMP сервер встановлений, якщо у вас є проблеми з налаштуванням сервера, ми робимо разові роботи з встановлення та налаштування web сервера LAMP .

    Сьогодні займемося підняттям однієї з найбільш затребуваних ролей будь-якого linux сервера, які займають у цьому функціональному сегменті лідируючу роль. Налаштування webсервера CentOS 7 на базі зв'язки популярного http сервера apache, інтерпретатора phpта сервера баз даних mysql, або коротко – встановлення lamp. Ця зв'язка є найпопулярнішою конфігурацією на сьогоднішній день серед веб-хостингу. Хоча останнім часом їй на п'яти настає та сама компанія, але на базі nginx, можливо вже й випередила, точних даних у мене немає з цього приводу.

    Ця стаття є частиною єдиного циклу статтею про сервер.

    Web сервер на CentOS 7

    Отже, наш веб-сервер centos буде складатися з трьох основних компонентів - http сервера apache, інтерпретатора мови програмування phpта сервера баз даних mysql. Познайомимося трохи з кожним із них:

    1. Apache- http сервер або просто веб-сервер апач. Є кроссплатформенним ПЗ, що підтримує практично всі популярні Операційні системи, зокрема і Windows. Цінується насамперед за свою надійність і гнучкість конфігурації, яку можна істотно розширити завдяки модулям, що підключаються, яких існує безліч. З недоліків відзначають велику вимогливість до ресурсів порівняно з іншими серверами. Тримати таку ж навантаження, як, наприклад, nginx, apache зможе при подібних властивостях заліза.
    2. PHP- мова програмування загального призначення, яка найчастіше застосовується у веб-розробці. На сьогоднішній день це найпопулярніша мова в цій галузі застосування. Підтримується майже всіма хостинг-провайдерами.
    3. Mysql- Система управління базами даних. Завоювала свою популярність серед малих і середніх додатків, яких дуже багато в Інтернеті. Так що, як і php, на сьогоднішній день є найпопулярнішою бд, що використовується на веб-сайтах. Підтримується більшістю хостингів. У CentOS замість mysql встановлюється mariadb- Відгалуження mysql. Вони повністю сумісні, можливий у будь-який момент перехід із однієї субд на іншу і назад. Останнім часом я зустрічав інформацію, що mariadb швидше працює mysql і люди потихеньку перебираються на неї. На практиці мені не довелося це спостерігати, оскільки ніколи не працював із навантаженими базами даних. А у звичайних умовах різниця не помітна.

    Піддослідним сервером буде виступати такі характеристики:

    Процесор2 ядра
    Пам'ять8 Gb
    Диск150 Gb SSD

    Це кастомне налаштування параметрів. Вони не є оптимальними за ціною, але мені були потрібні саме такі.

    Хочу відразу уточнити, що розбираю базове дефолтне налаштування. Для покращення швидкодії, підвищення надійності та зручності користування потрібно встановити ще кілька інструментів, про що я розповім окремо. У загальному випадку для організації веб-сервера буде достатньо того, що є в цій статті.

    Якщо у вас ще немає сервера, вам потрібно виконати . А якщо сервер вже встановлений, то не забудьте його. Рекомендую звернути увагу саме на налаштування, оскільки там багато корисної інформації, яку в рамках цієї статті я не даю — оновлення системи, налаштування фаєрволу, встановлення редактора та багато іншого.

    Налаштування apache у CentOS 7

    У CentOS служба apache називається httpd. Коли я тільки знайомився із цим дистрибутивом, мені було незвично. У Freebsd і Debian, з якими я до цього працював служба веб-сервера називалася apache, хоча десь я помічав, здається у фрюхе, що файл конфігурації має ім'я httpd.conf. Досі я не знаю, чому поширилися обидві ці назви. Був би радий, якби зі мною хтось поділився інформацією щодо цього в коментарях.

    Тепер приступимо до установці 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

    Апач налаштований!

    # chown apache. /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/null2>/dev/null ||

    В принципі, найпростіший веб-сервер вже готовий і ним можна користуватися. Але навряд чи зараз знайдуться сайти зі статичним вмістом, яким достатньо підтримки лише html. Тож продовжимо наше налаштування.

    Якщо вам необхідно організувати роботу сайту за протоколом https, то скористайтеся посібником з .

    Встановлення php у CentOS 7

    Для підтримки динамічного вмісту сайтів виконаємо наступний крок. Встановимо phpу CentOS 7:

    # yum install -y php

    І слідом ще кілька корисних компонентів. Встановимо популярні модулі для php:

    # yum install -y php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

    Виконаємо перезапуск apache:

    # systemctl restart httpd

    Створимо файл у директорії віртуального хоста та перевіримо роботу php:

    # mcedit /web/site1.ru/www/index.php# chown apache. /web/site1.ru/www/index.php

    Заходимо за адресою http://site1.ru/index.php

    Ви повинні побачити виведення інформації про php. Якщо щось не так, виникли якісь помилки, дивіться лог помилок віртуального хоста, php помилки будуть теж там.

    Де лежить php.ini

    Після встановлення часто виникає питання, а де зберігаються налаштування php? Традиційно вони знаходяться у єдиному файлі налаштувань. У CentOS php.ini лежить у / etcпрямо в корені. Там можна редагувати глобальні налаштування для всіх віртуальних хостів. Персональні параметри кожного сайту можна зробити окремо у файлі конфігурації віртуального хоста, який ми зробили раніше. Давайте додамо туди кілька корисних налаштувань:

    # mcedit /etc/httpd/conf.d/site1.ru.conf

    Додаємо в самий кінець, перед

    Php_admin_value date.timezone "Europe/Moscow" php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M

    Для використання налаштувань необхідно зробити restart apache. Тепер у виведенні phpinfo можна побачити зміну налаштувань.

    Оновлення до php 5.6 у CentOS 7

    У нашому прикладі ми встановили на CentOS 7 php 5.4із стандартного репозиторію. А що робити, якщо нам потрібна більше Нова версія, наприклад php 5.6? У такому разі потрібно здійснити оновлення php.

    # wget http://rpms.remirepo.net/enterprise/remi-release-7.rpm # rpm -Uvh remi-release-7*.rpm

    Тепер оновлюємо php 5.4 до php 5.6:

    # yum --enablerepo=remi,remi-php56 install php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

    Перезапускаємо apache:

    # systemctl restart httpd

    І йдемо дивитися висновок phpinfo - http://site1.ru/index.php

    Добре, ми оновили php до версії 5.6.

    Установка MySQL у CentOS 7

    Як я вже писав раніше, зараз все більшого поширення набуває форк mysql mariadb. Вона має повну сумісність з mysql, тому можна сміливо користуватися. Я волію використовувати саме її.

    Встановлюємо mariadbна CentOS 7:

    # yum install -y mariadb mariadb-server

    Додаємо mariadb в автозапуск:

    # systemctl enable mariadb.service

    Запускаємо mariadb:

    # systemctl start mariadb

    Перевіряємо, запустилася чи ні:

    # netstat-tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 22276/mysqld

    Звертаю увагу, що вона навіть у системі відображається як сервіс mysqld. Тепер запускаємо стандартний скрипт налаштування безпеки:

    # /usr/bin/mysql_secure_installation

    Не приводитиму весь висновок роботи цього скрипту, там все досить просто і зрозуміло. Спочатку задаємо пароль для root (поточний пароль після встановлення порожній), потім видаляємо анонімних користувачів, відключаємо можливість підключатися root віддалено, видаляємо тестового користувача та базу.

    Файл налаштувань mysql/mariadb лежить у /etc/my.cnf. Для нормальної роботи достатньо налаштувань за замовчуванням. Але якщо ви вирішите змінити їх, не забудьте перезапустити службу бази даних.

    Перезапуск mariadb/mysql у CentOS 7:

    # systemctl restart mariadb

    На цьому все. Базовий функціонал web-сервера на CentOS 7 налаштований.

    Буду радий зауваженням та коментарям на тему статті. Нагадую, що ця стаття є частиною єдиного циклу статтею про сервер .

    Практикум з Kali Linux

    Курс для тих, хто цікавиться проведенням тестів на проникнення та хоче практично спробувати себе у ситуаціях, близьких до реальних. Курс розрахований на тих, у кого ще немає досвіду інформаційної безпеки. Навчання триває 3 місяці по 4 години на тиждень. Що дасть вам цей курс:
    • Шукати та експлуатувати вразливості або вади конфігурації в корпоративних мережах, web сайтах, серверах. Упор на пентест ОС Windows та на безпеку корпоративного сегменту.
    • Вивчення таких інструментів, як metasploit, sqlmap, wireshark, burp suite та багато інших.
    • Освоєння інструментарію Kali Linux на практиці - з ним повинен бути знайомий будь-який фахівець з ІБ.
    Перевірте себе на вступному тесті і дивіться докладніше програму.

    Зараз розповім, як встановити MariaDB на Debian. Так само розповім, як нею користуватися у своїй темі «Установка MariaDB на Debian», все це буде докладно описано.

    MariaDB є легкою заміною MySQL. MariaDB є аналогом MySQL і вона прагне бути найкращим виборомдля фахівців з баз даних, які шукають надійний, масштабований SQL Server. Цей посібник допоможе початківцям встановити і зрозуміти суть роботи MariaDB на Debian 7 і 6. Для досягнення цієї мети, MariaDB Foundation тісно співпрацює та спільно працює з великою спільнотою користувачів та розробників у справжньому дусі вільного та відкритого програмного забезпечення, і випускає ПЗ таким чином, щоб воно було із високою надійністю.

    Поштовхом до створення стала необхідність забезпечення вільного статусу СУБД (під ліцензією GPL) на противагу невизначеній політиці ліцензування MySQL компанією Oracle. Ведучий розробник – Майкл Віденіус, автор оригінальної версії MySQL та засновник компанії Monty Program AB.

    У MariaDB відмова від підсистеми зберігання даних InnoDB та його заміна на XtraDB. Також включені підсистеми Aria (en: Aria (storage engine)), PBXT та FederateX.

    Для початку, оновимо ОС (щоб було все найновіше):

    # apt-get update # apt-get upgrade

    Встановлюємо доповнення до пітону:

    # sudo apt-get install python-software-properties

    Встановлення MariaDB

    По-перше, потрібно імпортувати ключ GPG, щоб APT перевірив цілісність пакетів і завантажив все:

    # apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

    Створюємо власний MariaDB файл sources.list щоб додати репозиторій до нього:

    # vim /etc/apt/sources.list

    Установка MariaDB 5.5 для Debian 7 wheezy

    # MariaDB 5.5 repository list - created 2014-11-15 17:08 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian wheezy main deb-src http://mirror.23media.de/mariadb /repo/5.5/debian wheezy main

    Установка MariaDB 5.5 для Debian 6 squeeze

    # MariaDB 5.5 repository list - created 2014-11-15 17:14 UTC deb http://mirror.23media.de/mariadb/repo/5.5/debian squeeze main deb-src http://mirror.23media.de/mariadb /repo/5.5/debian squeeze main

    Установка MariaDB 10.0 для Debian 7 wheezy

    # MariaDB 10.0 repository list - created 2014-11-15 17:21 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian wheezy main deb-src http://mirror.23media.de/mariadb /repo/10.0/debian wheezy main

    Установка MariaDB 10.0 для Debian 6 squeeze

    # MariaDB 10.0 repository list - created 2014-11-15 17:22 UTC deb http://mirror.23media.de/mariadb/repo/10.0/debian squeeze main deb-src http://mirror.23media.de/mariadb /repo/10.0/debian squeeze main

    Установка MariaDB 10.1 для Debian 7 wheezy

    # MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian wheezy main deb-src http://mirror.23media.de/mariadb /repo/10.1/debian wheezy main

    Установка MariaDB 10.1 для Debian 6 squeeze

    # MariaDB 10.1 repository list - created 2014-11-15 17:23 UTC deb http://mirror.23media.de/mariadb/repo/10.1/debian squeeze main deb-src http://mirror.23media.de/mariadb /repo/10.1/debian squeeze main

    Після цього оновлюємо систему (список всіх репозиторією) і встановлюємо сервер з MariaDB:

    # sudo apt-get update # sudo apt-get install mariadb-server

    Після цього почнеться встановлення сервера MariaDB. Я вибрав 10.0 версію і тому, наведу приклад установки. У ході установки, вас попросять ввести пароль для MariaDB користувача - root.

    Вводимо пароль та натискаємо OK. Також потрібно ввести 2-й раз (підтвердження). Процес встановлення триватиме кілька хвилин.

    Використання MariaDB

    У цьому розділі ви дізнаєтесь, як підключитися до MariaDB та як користуватися основними командами SQL.

    Стандартним інструментом для взаємодії з MariaDB є програма-клієнт MySQL. Для початку, виконайте наступну команду для підключення до MariaDB як root:

    # mysql -u root -p

    Вводимо пароль, який Ви вводили (створили) під час встановлення.

    Спробуймо створити просту базу даних, яку ми пізніше будемо заповнення даними. Введіть наступні команди, щоб створити базу даних з іменем TEST_DB, власником якого буде Новий користувач Test_User, так само командою встановимо пароль secret_password для користувача:

    MariaDB [(none)]> CREATE DATABASE test_db; MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO test_user@localhost IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Останній рядок (команда) виходить із користувача root на MariaDB. І зараз увійдемо як користувач test_user:

    # mysql -u testuser -p

    Введемо команду для того, щоб використовувати щойно створену БД (test_db):

    MariaDB [(none)]> USE test_db;

    Створіть нову таблицю та заповніть її деякими даними:

    MariaDB [(none)]> CREATE TABLE products (ID INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), price DECIMAL(6,2)); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("MacBook_Pro", 3200.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("Asus", 340.0); MariaDB [(none)]> INSERT INTO products (name, price) VALUES ("HP", 745.0);

    Переконайтеся, що нові дані нормально вставлені:

    MariaDB [(none)]> SELECT * FROM products;

    Вийдіть з клієнта MariaDB, виконавши:

    MariaDB [(none)]> quit

    Для отримання додаткової інформаціїо командах SQLвиконайте:

    MariaDB [(none)]> \h

    Налаштування MariaDB

    Щоб настроїти MariaDB, потрібно відредагувати файл з конфігурацією. Цей файл контролює більшість системних змінних сервера, які ви, як правило, залишені за замовчуванням.

    # vim /etc/mysql/my.cnf

    перезапустіть сервер, виконавши таку команду:

    # service mysql restart

    Безпека MariaDB

    # mysql_secure_installation

    Вам буде запропоновано змінити пароль адміністратора, видалити анонімів, заборонити вхід за межами локального хоста, видалити всіх анонімів та видалити тестову базу даних. Рекомендується, щоб ви відповіли "Y" на всі запитання.

    Віддалені з'єднання користувачів

    Давайте поглянемо на те, як дозволити раніше створеному користувачеві Test_User підключення до MariaDB віддалено (за замовчуванням, MariaDB дозволяє підключення тільки з локального хоста).

    Відкриття сервера MariaDB до Інтернету робить його менш безпечним. Якщо вам необхідно підключити з іншого сервера, переконайтеся, що ви застосували правила брандмауера, які дозволяють з'єднання лише з певних IP-адрес.
    По-перше, ми повинні надати з'єднання користувача з віддаленими хостами для користувача Test_user, для цього потрібно увійти в MariaDB як root:

    # mysql -u root -p

    Дозволяємо користувачеві Test_User підключення з віддалених хостів:

    MariaDB [(none)]> GRANT ALL PRIVILEGES ON test_db.* TO test_user@"%" IDENTIFIED BY "secret_password"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Налаштування MariaDB слухати все мережеві інтерфейси. Відкрийте файл /etc/mysql/my.cnf:

    # vim /etc/mysql/my.cnf

    […]
    bind-address = 0.0.0.0
    […]

    Перезапустіть сервер:

    # service mysql restart

    Перевірка з'єднання з локального комп'ютерана вашому MariaDB сервері, замінивши Test_User з вашим ім'ям користувача, і test_domain.com з вашим доменом або IP-адресою:

    # mysql -u test_user -h test_domain.com -p

    Якщо увійшли успішно, ви повинні побачити привітання MariaDB та shell prompt.

    Тюнінг MariaDB

    MySQL-тюнер є корисним інструментом, який підключається до працюючого екземпляра MariaDB і надає рекомендації щодо конфігурації на основі робочого навантаження. Ви повинні дозволити вашому екземпляру MariaDB працювати не менше 24 годин перед запуском тюнера. Чим довше екземпляр працює вже, тим найкраща порадавам запропонує тюнер.

    Встановіть MySQL тюнер, виконавши таку команду:

    # apt-get install mysqltuner

    Запустіть MySQL тюнер за допомогою наступної команди:

    # mysqltuner

    Після чого він вам видасть багато корисної інформації. Зверніть увагу на рекомендації в кінці. Це вкаже вам, що необхідно змінити (які змінні мають бути настрої) у розділі вашого /etc/mysql/my.cnf файлу.

    Як скинути MariaDB root пароль?

    Якщо ви забули свій пароль суперкористувача (пароль від root), ви можете легко скинути його, дотримуючись наведених нижче інструкцій.

    Зупиніть сервер MariaDB:

    # service mysql stop

    Запустіть сервер з skip-grant-tables, таким чином ви можете увійти на MariaDB без пароля:

    # mysqld_safe --skip-grant-tables &

    Тепер ви можете підключитися до сервера MariaDB як root без пароля:

    # mysql -u root

    У клієнті MariaDB введіть наступні команди, щоб скинути пароль для суперкористувача і вийти:

    MariaDB [(none)]> USE mysql MariaDB [(none)]> UPDATE user SET password=PASSWORD("yournewpassword") WHERE user="root"; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> quit

    Перезапустіть сервер MariaDB:

    # service mysql restart

    Підключіться до сервера MariaDB, використовуючи новий пароль:

    # mysql -u root -p

    Налаштування MariaDB на Debian завершено. Сподіваюся, було зрозуміло.



    
    Top