Як настроїти MariaDB SSL і встановити безпечні з'єднання з різних клієнтів. Встановлення MariaDB на Debian Встановлення mariadb
Вітаю!
Я повністю підтримую ваше рішення! Я перевів свої сервери на MariaDB з MySQL 3 роки тому і не від хорошого життя. Версії MySQL після покупки його компанією Oracle ставали дедалі гіршими. Постійні падіння та помилки в таблицях погано впливали на доступність сайтів, тоді було вирішено перейти на MariaDB.
Результат повністю себе виправдав, MariaDB дуже стабільна та добре оптимізована. Трирічний аптайм без перерв на кількох серверах добре це доводить.
Вибір версії MariaDB
Існує 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
- Отриману 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 сервера:
- За промовчанням файл конфігурації: /etc/httpd/conf/httpd.conf
- Файли конфігурації модулів, що завантажуються: /etc/httpd/conf.modules.d/ (наприклад, PHP)
- Виберіть MPMs як завантажені модулі та події: /etc/httpd/conf.modules.d/00-mpm.conf
- Стандартні порти: 80 та 443 (SSL)
- Файли журналів за промовчанням: /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. Познайомимося трохи з кожним із них:
- Apache- http сервер або просто веб-сервер апач. Є кроссплатформенним ПЗ, що підтримує практично всі популярні Операційні системи, зокрема і Windows. Цінується насамперед за свою надійність і гнучкість конфігурації, яку можна істотно розширити завдяки модулям, що підключаються, яких існує безліч. З недоліків відзначають велику вимогливість до ресурсів порівняно з іншими серверами. Тримати таку ж навантаження, як, наприклад, nginx, apache зможе при подібних властивостях заліза.
- PHP- мова програмування загального призначення, яка найчастіше застосовується у веб-розробці. На сьогоднішній день це найпопулярніша мова в цій галузі застосування. Підтримується майже всіма хостинг-провайдерами.
- 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 :
Перезапуск 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.html192.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 завершено. Сподіваюся, було зрозуміло.