Инсталиране на MariaDB на Debian. Как да настроите MariaDB SSL и да установите защитени връзки от различни клиенти Как да настроите mariadb в Windows

| |

Стъпка 1 - инсталиране на MariaDB

Debian 9 съдържа пакета MariaDB 10.1 в стандартното хранилище. Това е неговият MySQL вариант по подразбиране.

За да го инсталирате, актуализирайте индекса на пакета:

Сега инсталирайте пакета:

sudo apt инсталирате mariadb-сървър

Командата ще инсталира MariaDB, но няма да ви подкани да изберете парола или да промените други настройки. В момента инсталацията на MariaDB има няколко уязвимости, които трябва да бъдат отстранени.

Стъпка 2 - конфигуриране на MariaDB

След като инсталацията приключи, трябва да стартирате скрипт за защита, който ще премахне ненадеждни параметри и ще защити базата данни от неоторизиран достъп.

sudo mysql_secure_installation

Сценарият ще задава поредица от въпроси. Първо трябва да предоставите паролата за root на MariaDB. Това е административен акаунт в MariaDB, който има повишени привилегии. Току-що инсталирахте MariaDB и все още не сте направили никакви промени в конфигурацията, все още нямате тази парола, така че просто натиснете Enter.

В следващата заявка скриптът ще ви помоли да зададете root парола за базата данни. Въведете N и натиснете Enter. В Debian основният акаунт в MariaDB е тясно свързан с автоматизираната поддръжка на системата, така че не можете да промените методите за удостоверяване по подразбиране за този акаунт. В противен случай, когато пакетът се актуализира, базата данни може да бъде повредена и достъпът до root акаунта може да бъде загубен. По-късно ще разгледаме как да настроим допълнителен администраторски акаунт, ако удостоверяването на сокет не е за вас.

За други въпроси можете да натиснете Y и Enter. Това ще премахне анонимните потребители и тестовите бази данни, ще деактивира дистанционното влизане в root и ще актуализира текущите настройки на MariaDB.

Стъпка 3 - Конфигуриране на поддръжка за удостоверяване на парола

При новите инсталации на Debian, root потребителят на MariaDB по подразбиране поддържа удостоверяване с плъгина unix_socket, а не с парола. Това може да подобри сигурността и използваемостта в много случаи, но също така може да затрудни нещата, ако трябва да разрешите достъп до външна програма (като phpMyAdmin).

Тъй като сървърът използва root потребителя за задачи като въртене на регистрационни файлове, стартиране и спиране на сървъра, най-добре е да не променяте удостоверяването на root акаунта. Промяната на идентификационните данни във файла /etc/mysql/debian.cnf може да работи първоначално, но по-нататъшните актуализации на пакета ще презапишат тези промени. Вместо това разработчиците препоръчват създаване на отделен акаунт на администратор с удостоверяване с парола.

Така че, създайте акаунт, наречен администратор, със същите права като root, но с поддръжка за удостоверяване на парола. За да направите това, отворете командния ред MariaDB в терминал:

Сега създайте нов потребител с root привилегии и поддръжка за удостоверяване на парола. Въведете вашето потребителско име и парола в командата.

ПРЕДОСТАВЯТЕ ВСИЧКИ НА *. * НА "admin" @ "localhost", ИДЕНТИФИЦИРАНА ОТ "парола" С ОПЦИЯ ЗА ПРЕДОСТАВЯНЕ;

Прекратете привилегиите:

ПРИВИЛЕГИИ НА ФЛУШ;

Затворете обвивката на MariaDB:

Стъпка 4 - Тестване на MariaDB

Когато се инсталира от стандартното хранилище, MariaDB стартира автоматично. За да проверите това, проверете състоянието на услугата:

sudo systemctl състояние mariadb
mariadb.service - сървър на база данни MariaDB
Заредено: заредено (/lib/systemd/system/mariadb.service; активирано; предварителна настройка на доставчика: активирана)
Активен: активен (работи) от вторник 2018-09-04 16:22:47 UTC; преди 2 часа 35 минути
Процес: 15596 ExecStartPost = / bin / sh -c systemctl unset-environment _WSREP_START_POSIT
Процес: 15594 ExecStartPost = / etc / mysql / debian-start (код = изход, състояние = 0 / УСПЕХ)
Процес: 15478 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = ||
Процес: 15474 ExecStartPre = / bin / sh -c systemctl unset-environment _WSREP_START_POSITI
Процес: 15471 ExecStartPre = / usr / bin / install -m 755 -o mysql -g root -d / var / run / mysql
Основен PID: 15567 (mysqld)
Състояние: "Поемате вашите SQL заявки сега..."
Задачи: 27 (лимит: 4915)
CGroup: /system.slice/mariadb.service
└─15567 / usr / sbin / mysqld
4 септември 16:22:45 deb-mysql1 systemd: Стартиране на сървъра на база данни MariaDB ...
04 септември 16:22:46 deb-mysql1 mysqld: 2018-09-04 16:22:46 140183374869056 / usr / sbin / mysqld (mysqld 10.1.26-MariaDB-0) + стартиране като процес на deb67 ...
04 септември 16:22:47 deb-mysql1 systemd: Стартира сървъра на база данни MariaDB.

Ако СУБД не се стартира по някаква причина, въведете:

sudo systemctl стартиране на mariadb

За допълнителна проверка можете да опитате да се свържете с базата данни с помощта на инструмента mysqladmin (това е клиент, който ви позволява да изпълнявате административни команди). Например, тази команда ще се свърже с MariaDB като root и ще отпечата версията с помощта на Unix сокет:

sudo mysqladmin версия
mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, за debian-linux-gnu на x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab и други.
Версия на сървъра 10.1.26-MariaDB-0 + deb9u1
Протокол версия 10
Връзка Localhost през UNIX сокет
UNIX сокет /var/run/mysqld/mysqld.sock
Време за работа: 2 часа 44 мин. 46 сек
Нишки: 1 Въпроси: 36 Бавни заявки: 0 Отвори: 21 Флъш таблици: 1 Отворени таблици: 15 Средно заявки в секунда: 0,003

Ако сте създали допълнителен администратор, можете да извършите тази операция с командата:

mysqladmin -u admin -p версия

MariaDB работи и работи според очакванията.

Днес ще се заемем с издигането на една от най-търсените роли на всеки Linux сървър, които заемат водеща роля в този функционален сегмент. Конфигуриране на уеб сървър CentOS 7 на базата на пакет от популярен http сървър apache, преводач phpи сървър на база данни mysql, или накратко, лампа за настройка. Този пакет е най-популярната конфигурация сред уеб хостинг днес. Въпреки че напоследък същата компания стъпва по петите, но на базата на nginx може вече да я изпревари, нямам точни данни за този резултат.

Тази статия е част от една поредица от статии за сървъра.

Уеб сървър на CentOS 7

И така, нашият уеб сървър centos ще се състои от три основни компонента - http сървъра apache, интерпретаторът на езика за програмиране phpи сървър на база данни mysql... Нека се запознаем малко с всеки един от тях:

  1. Apache- http сървър или просто уеб сървър на apache. Това е междуплатформен софтуер, който поддържа почти всички популярни операционни системи, включително Windows. Той е ценен преди всичко за своята надеждност и гъвкавост на конфигурацията, която може да бъде значително разширена благодарение на плъгини, от които има много. Сред недостатъците те отбелязват, че са по-взискателни към ресурсите в сравнение с други сървъри. Apache няма да може да поддържа същото натоварване като, например, nginx със сходни хардуерни параметри.
  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 инсталирам -y httpd

Добавете apache към стартиране:

# systemctl активира httpd

Стартирайте apache на CentOS 7:

# systemctl стартиране на httpd

Проверете дали сървърът е стартиран:

# netstat -tulnp | grep httpd tcp6 0 0 ::: 80 ::: * СЛУШАЙТЕ 21586 / httpd

Всичко е наред, окачено на 80-то пристанище, както трябва. Вече можете да отидете на адрес http: // ip-адрес и да видите снимката:

Сега нека започнем да конфигурираме apache. Предпочитам следната структура на уеб хостинг:

Нека създадем подобна структура:

# mkdir / web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -R apache. / уеб

Включете по избор conf.d / *. Conf

Ако не, разкоментирайте и отидете в директорията /etc/httpd/conf.d. Създайте файла site1.ru.conf там:

ServerName site1.ru ServerAlias ​​www.site1.ru DocumentRoot /web/site1.ru/www Опции FollowSymLinks AllowOverride All Изискване на всички предоставени ErrorLog /web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log общ

Рестартиране на apache на centos

Сега рестартираме apache:

# systemctl рестартирайте httpd

Ако има някакви грешки, погледнете дневника на apache / var / log / httpd / error_log. Ако всичко е наред, проверете дали нашият виртуален хост е конфигуриран правилно. За да направите това, създайте в папката /web/site1.ru/www index.html файлсъс следното съдържание:

# mcedit /web/site1.ru/www/index.html

Apache е настроен!

# 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 презареждане httpd.service> / dev / null 2> / dev / null || true endscript)

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

Ако трябва да организирате работата на сайта по протокол https, след това използвайте ръководството за.

Инсталиране на php на CentOS 7

За да поддържаме динамично съдържание на сайта, нека предприемем следващата стъпка. Инсталирай phpна CentOS 7:

# yum инсталирам -y php

И тогава има още няколко полезни компонента. Инсталирайте популярни модули за php:

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

Нека рестартираме Apache:

# systemctl рестартирайте 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 е в / и т.н, точно в корена. Там можете да редактирате глобалните настройки за всички виртуални хостове. Личните настройки за всеки сайт могат да бъдат направени отделно в конфигурационния файл за виртуален хост, който направихме по-рано. Нека добавим някои полезни настройки там:

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

Добавете до самия край, преди

Php_admin_value date.timezone "Европа / Москва" php_admin_value max_execution_time 60 php_admin_value upload_max_filesize 30M

За да приложите настройките, трябва да рестартирате 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 инсталирайте php php-common php-mysql php-mbstring php-mcrypt php-devel php-xml php-gd

Рестартирайте apache:

# systemctl рестартирайте httpd

И нека да гледаме изхода на phpinfo - http://site1.ru/index.php

Чудесно, актуализирахме php до версия 5.6.

Инсталиране на MySQL на CentOS 7

Както писах по-рано, разклонението на mysql става все по-разпространено сега - mariadb... Той има пълна съвместимост с mysql, така че можете безопасно да го използвате. Това предпочитам да използвам.

Инсталирайте mariadbна CentOS 7:

# yum инсталирам -y mariadb mariadb-сървър

Добавете mariadb към автоматично стартиране:

# systemctl активира mariadb.service

Стартирайте mariadb:

# systemctl стартиране на mariadb

Проверяваме дали е започнало или не:

# netstat -tulnp | grep mysqld tcp 0 0 0.0.0.0:3306 0.0.0.0:* СЛУШАЙТЕ 22276 / mysqld

Обръщам внимание на факта, че дори в системата се показва като mysqld услуга. Сега стартираме стандартния скрипт за конфигуриране на сигурността:

# / usr / bin / mysql_secure_installation

Няма да давам целия изход на този скрипт, там всичко е доста просто и ясно. Първо задайте парола за root (текущата парола след инсталацията е празна), след това изтрийте анонимни потребители, деактивирайте възможността за дистанционно свързване с root, изтрийте тестовия потребител и базата данни.

Файл настройки mysql / mariadb се намира в /etc/my.cnf... Настройките по подразбиране са достатъчни за нормална работа. Но ако решите да ги промените, не забравяйте да рестартирате услугата за база данни.

Рестартиране на mariadb/ mysql на CentOS 7:

# systemctl рестартирайте mariadb

Това е всичко. Основната функционалност на уеб сървъра на CentOS 7 е конфигурирана.

Ще се радвам да получа забележки и коментари по темата на статията. Нека ви напомня, че тази статия е част от една поредица от статии за сървъра.

Работилница Kali Linux

Курс за тези, които се интересуват от провеждане на тестове за проникване и искат на практика да се опитат в ситуации, близки до реалните. Курсът е предназначен за тези, които все още нямат опит в информационната сигурност. Обучението продължава 3 месеца по 4 часа седмично. Какво ще ви даде този курс:
  • Търсете и използвайте уязвимости или конфигурационни недостатъци в корпоративни мрежи, уеб сайтове, сървъри. Акцент върху тестването за проникване на Windows и корпоративната сигурност.
  • Разгледайте инструменти като metasploit, sqlmap, wireshark, burp suite и много други.
  • Овладяване на инструментариума Kali Linux на практика - всеки специалист по информационна сигурност трябва да е запознат с него.
Тествайте се на входния тест и вижте подробностите за програмата.

Здравейте!

Напълно подкрепям решението ти! Мигрирах сървърите си към 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 сървър и програми за среда, като използвате yum:

    yum инсталирайте MariaDB-сървър MariaDB-клиент

    За MySQL могат да бъдат инсталирани библиотеки за различни езици за програмиране, те са напълно съвместими. Например за PHP:

    Сега трябва да стартирате инсталирания MariaDB сървър и да продължите да го конфигурирате:

    Ако сте направили всичко правилно, ще видите съобщение като това:

    Конфигуриране на MariaDB

    За да започнете нормално с MariaDB, трябва да зададете root парола. Ще ви разкажа подробно за настройката и оптимизирането на базата данни в специална статия, това не са приоритетни неща.

    Първоначална настройка на root парола за MySQL:

    Най-лесният начин да зададете root парола е да използвате специален скрипт, който идва с дистрибуцията на MariaDB:

    / usr / bin / mysql_secure_installation

    Следвайте инструкциите и задайте root парола.

    Ако имате въпроси или се нуждаете от разяснения, моля, задайте въпрос или оставете коментар.

    Винаги се радвам да помогна!

    2 януари 2017 г. 12:16 ч 13 224 гледания | без коментари

    Изисквания

    • CentOS 7 сървър.
    • Потребител с достъп до sudo.

    Всички необходими инструкции можете да намерите в.

    Стъпка 1 - инсталиране на MariaDB

    За да инсталирате MariaDB, използвайте хранилището на Yum. Изпълнете следната команда и натиснете y, за да продължите.

    sudo yum инсталирайте mariadb-сървър

    След като инсталацията приключи, стартирайте демона:

    sudo systemctl стартиране на mariadb

    Командата systemctl не показва изхода на някои команди. За да се уверите, че демонът работи, въведете:

    sudo systemctl състояние mariadb

    Ако демонът MariaDB е стартиран, изходът на командата ще съдържа редовете:

    Активен: активен (работи)
    […]
    01 декември 19:06:20 centos-512mb-sfo2-01 systemd: Стартира сървъра на база данни на MariaDB.

    Сега трябва да конфигурирате MariaDB за автоматично стартиране. За да направите това, въведете:

    sudo systemctl активира mariadb
    Създадена символна връзка от /etc/systemd/system/multi-user.target.wants/mariadb.service към /usr/lib/systemd/system/mariadb.service.

    След това трябва да гарантирате сигурността на данните.

    Стъпка 2: осигуряване на MariaDB

    След като инсталацията приключи, трябва да изпълните вградения скрипт за защита на MariaDB, който променя някои от опциите по подразбиране и блокира дистанционното влизане в root. За да стартирате скрипта, въведете:

    sudo mysql_secure_installation

    Скриптът предоставя подробно описание на всяка стъпка. Първо, той ще поиска root парола. Тъй като все още няма такава парола в новата инсталация, просто натиснете Enter. След това скриптът ви подканва да създадете такава парола. Въведете силна парола и я потвърдете.

    След това сценарият ви задава поредица от въпроси. За да приемете данните по подразбиране, можете просто да натиснете Y и Enter. Скриптът ще блокира анонимни потребители и дистанционно влизане в root, ще изтрие тестови таблици и ще презареди привилегиите.

    Стъпка 3 - Тестване на MariaDB

    Сега трябва да се уверим, че инсталацията на MariaDB е била успешна.

    Опитайте да се свържете с DB с помощта на инструмента mysqladmin (това е клиентът за изпълнение на административни команди). За да се свържете с MariaDB като root (-u root), въведете паролата (-p) и поискайте версията на програмата, въведете командата:

    mysqladmin -u root -p версия

    Командата ще изведе:

    mysqladmin Ver 9.0 Distrib 5.5.50-MariaDB, за Linux на x86_64
    Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab и други.
    Версия на сървъра 5.5.50-MariaDB
    Протокол версия 10
    Връзка Localhost през UNIX сокет
    UNIX сокет /var/lib/mysql/mysql.sock
    Време за работа: 4 мин. 4 сек
    Нишки: 1 Въпроси: 42 Бавни заявки: 0 Отваряния: 1 Изчистване на таблици: 2 Отворени таблици: 27 Средно заявки в секунда: 0,172

    Това означава, че инсталацията на MariaDB е била успешна.

    Заключение

    Вече трябва да можете да извършвате основна инсталация и конфигурация на MariaDB.

    След Debian 9 популярната система за управление на база данни MySQL беше заменена от MariaDB. Базата данни е разклонение на MySQL и е създадена от нейните първоначални разработчици, които не са доволни от лицензионната политика на Oracle и се опасяват, че MySQL може да се превърне в по-затворен продукт. MariaDB е напълно съвместим с MySQL, което означава, че замяната ще бъде възможно най-прозрачна и всички приложения, които са работили с MySQL, също ще работят с MariaDB. И ние ще разгледаме някои от характеристиките на този преход.

    Първо, да кажем, че всички команди, инструкции, скриптове и т.н. и т.н. тези, които преди са работили с MySQL, също ще работят с MariaDB, не е необходимо да се правят промени и много потребители може просто да не забележат, че работят с различна СУБД.

    Но има и разлики, главно по отношение на сигурността и бяха въведени от екипа на Debian. Една от основните разлики е, че MariaDB е включена в Debian 9 не иска root парола по време на инсталацията... След което потребителят остава в известно объркване и какво да прави след това? Масло в огъня налива и фактът, че повечето от инструкциите в Интернет разглеждат управлението на MySQL само чрез контролния панел на phpMyAdmin и потребителите, които нямат умения за команден ред, се оказват в особено безпомощно състояние.

    "Как да зададете root парола в MariaDB„в различни вариации е една от популярните заявки за търсене, свързани с тази СУБД. Но нека не се захващаме от рамото, а първо нека разберем какво са направили разработчиците на Debian и защо.

    Най-големият проблем със сигурността с MySQL е, че идентификационните данни на базата данни се съхраняват в чист текст в конфигурационните файлове на уеб приложенията. Предвид факта, че много потребители не се притесняват и правят суперпотребител root собственик на всички бази данни, проблемът става доста сериозен. И ако вземете предвид, че доста широк кръг от хора, включително не само служители, но и служители на свободна практика, могат да имат достъп до файловете на уеб приложенията, става много лошо.

    Следователно в Debian за root суперпотребител в MariaDB се предоставя удостоверяване чрез UNIX сокет и то е реализирано по такъв начин, че само системният суперпотребител може да получи неограничен достъп до MariaDB и само в режим на команден ред. От гледна точка на сигурността това е много правилно, тъй като сега потребители и уеб приложения на трети страни няма да могат да получат root достъп, дори ако по някакъв начин са научили паролата.

    Всичко това е добре, но какво трябва да направи обикновен потребител, който е инсталирал MariaDB на своя сървър и иска да качи дъмп на базата данни на сайта в него? На първо място, вземете потребител, по-добре дори не един. За да направите това, повдигнете правата си в системата за root чрез su или sudo и изпълнете командата:

    Mysql -u root

    След това ще се озовете в командния ред на MariaDB. За да създадете нов потребител, изпълнете командата:

    създаване на потребител "andrey" @ "localhost", идентифициран с "password";

    В нашия пример създадохме потребител Андрейс парола парола.

    Сега ще му присвоим права. На първо място, очевидно ще отнеме правата върху базите данни на други хора:

    разреши използване на *. * на "andrey" @ "localhost";

    И ние ще издадем пълни права върху базите данни с шаблона за име andrey_basename, този подход автоматично ще предостави права на всички нови бази данни, които потребителят ще създаде.

    дайте всички привилегии на `andrey \ _%`. * на "andrey" @ "localhost";

    Имайте предвид, че шаблонът е увит в знаци гравис (`), който се намира на ключа с руската буква Ё.

    Всичко, което остава, е да презаредите привилегиите и да излезете от конзолата MariaDB

    flush привилегии;
    напусна;

    След това можете да се върнете към обичайните инструменти за работа с MySQL / MariaDB, например phpMyAdmin:


    Моля, имайте предвид, че този метод, за разлика от общите препоръки „активиране на root в MariaDB“, ви позволява да поддържате повишена сигурност на системата, което е важно, ако трети страни имат достъп до него. Също така, не препоръчваме да съхранявате всички бази данни под един потребител, в идеалния случай един сайт (или друго приложение) - един потребител, това ще ви позволи да промените паролата, без да губите време и усилия в случай на компрометиране или потенциал (например, привлечете да работите със сайта на свободна практика).

    Инсталиране на MariaDB от хранилища за разработчици

    Операционната система Debian има много предимства, една от които е най-обичана е стабилността. Настройте го и забравете - това е само за него, но недостатъкът на този подход е консерватизмът, много пакети нямат толкова новите версии, колкото понякога бихме искали. В момента Debian 9 се доставя с MariaDB 10.1, докато текущите версии са 10.2 и 10.3.

    Следователно, ако имате нужда от някои нови функции на MariaDB или просто искате да използвате най-новите стабилни версии на софтуера, можете да инсталирате MariaDB директно от хранилищата на разработчика. Не е трудно да направите това, но преди всяко потенциално опасно действие трябва да направите пълно архивиране на вашия сървър.

    За да направите това, изпълнете следната команда в конзолата на сървъра с права на суперпотребител:

    Mysqldump -u root --all-databases> ~ / my_backup.sql

    Тази команда ще запази всички бази данни на MariaDB, включително служебните, във файл my_backup.sqlв указателя / корени ако нещо се обърка, винаги можете да възстановите състоянието на вашия сървър по време на копирането.

    Можете да получите инструкции за инсталиране на специална страница на официалния уебсайт.

    Направен е много удобно: избирате своя дистрибуторски комплект, неговото издание, версията на СУБД и огледалото - след което ще получите готови инструкции за инсталиране. За да ви спестим време, ние го представяме тук (ще инсталираме MariaDB 10.3 на Debian 9):

    Apt-получи инсталиране на софтуер-свойства-общ dirmngr
    apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
    add-apt-repository "deb http://mirror.mephi.ru/mariadb/repo/10.3/debian stretch main"

    За да разберете какво правите, ще коментираме накратко тези команди. Първият от тях добавя необходимите зависимости към системата, вторият инсталира ключа, с който са подписани пакетите, а третият, накрая, добавя самото хранилище към системата.

    Сега нека актуализираме списъка с пакети:

    Apt-получи актуализация

    и инсталирайте новата версия на MariaDB:

    Apt-get инсталирате mariadb-сървър

    Моля, имайте предвид, че мениджърът на пакети правилно ще деинсталира предишната версия и ще инсталира новата, всички бази данни ще бъдат запазени и ще продължат да работят с новата версия на MariaDB.

    Втората точка, когато инсталирате MariaDB от разработчиците, инсталаторът ще ви помоли да зададете root парола, тъй като в тази версия не се използва удостоверяване чрез UNIX сокет.

    Някой може да е доволен от това, но ако сте успели да разберете и оцените всички предимства на метода от разработчиците на Debain, тогава ще възникне разумен въпрос: възможно ли е да го върнете такъв, какъвто беше? Мога. За да направите това, отворете конфигурационния файл /etc/mysql/mariadb.conf.d/50-server.cnfи добавете към раздела ред:

    Plugin-load-add = auth_socket.so

    Нека рестартираме СУБД:

    Рестартиране на услугата mysqld

    Нека се опитаме да влезем от обикновен потребителски акаунт:

    Въпреки факта, че системата ще ни поиска парола и ще я въведем правилно, все пак ще ни бъде отказан достъп. Нека опитаме отново чрез phpMyAdmin:

    И тук няма да имаме успех. Глоба! Сега само системният суперпотребител има достъп с права на суперпотребител на СУБД и не е нужно да се притесняваме, че паролата за root на MariaDB ще стане известна на никого.



    Свързани статии: