Centos installerar mariadb. Installera MariaDB på Windows


Idag kommer vi att engagera oss i att lyfta en av de mest efterfrågade rollerna för någon linux -server, som har en ledande roll i detta funktionella segment. Konfigurera en CentOS 7 -webbserver baserad på ett paket med en populär http -server apache, tolk php och databaseserver mysql, eller kort sagt, inställningslampa. Detta paket är den mest populära konfigurationen bland webbhotell idag. Även om samma företag på sistone har trampat i klackarna, men på grundval av nginx, kan det redan ha överträffat det, jag har inte exakta uppgifter om denna poäng.

Denna artikel är en del av en enda serie artiklar om servern.

Webbserver på CentOS 7

Så vår centos webbserver kommer att bestå av tre huvudkomponenter - http -servern apache, tolkaren av programmeringsspråket php och databaseserver mysql... Låt oss lära känna var och en av dem lite:

  1. Apache- http -server eller bara apache -webbserver. Det är en plattformsoberoende programvara som stöder nästan alla populära operativsystem, inklusive Windows. Prisad främst för sin tillförlitlighet och konfigurationsflexibilitet, som kan utökas avsevärt tack vare plug-ins, som det finns många av. Bland bristerna noterar de att de är mer krävande på resurser, jämfört med andra servrar. Apache kommer inte att kunna behålla samma belastning som till exempel nginx med liknande maskinvaruparametrar.
  2. PHPÄr ett generellt programmeringsspråk som oftast används i webbutveckling. Det är det överlägset mest populära språket inom detta tillämpningsområde. Stöds av nästan alla värdleverantörer.
  3. Mysql- databashanteringssystem. Fick sin popularitet i den lilla och medelstora applikationsmiljön, som det finns mycket på webben. Så, som php, är det den i särklass mest populära databasen som används på webbplatser. Stöds av de flesta värdleverantörer. På CentOS, istället för mysql, installera mariadbÄr en gaffel av mysql. De är fullt kompatibla, det är möjligt när som helst att byta från en underavdelning till en annan och vice versa. Nyligen har jag stött på information om att mariadb fungerar snabbare än mysql och att folk sakta går till det. I praktiken har jag inte kunnat observera detta, eftersom jag aldrig har arbetat med laddade databaser. Och under normala förhållanden märks inte skillnaden.

Den experimentella servern kommer att vara, egenskaperna är följande:

CPU2 kärnor
Minne8 Gb
Disk150 GB SSD

Detta är en anpassad parameterinställning. De är inte optimala för priset, men de var precis vad jag behövde.

Jag vill genast klargöra att jag analyserar den grundläggande standardinställningen. För att förbättra prestanda, förbättra tillförlitlighet och användbarhet måste du installera några fler verktyg, som jag kommer att diskutera separat. I allmänhet räcker det som finns i den här artikeln för att organisera en webbserver.

Om du inte har en server än måste du köra. Och om servern redan är installerad, glöm det inte. Jag rekommenderar att du uppmärksammar inställningen, eftersom det finns mycket användbar information som jag inte ger inom ramen för denna artikel - uppdatera systemet, konfigurera brandväggen, installera redigeraren och mycket mer.

Konfigurera apache på CentOS 7

På CentOS kallas apache -tjänsten httpd... När jag först lärde känna detta distributionskit var det ovanligt för mig. I Freebsd och Debian, som jag arbetade med tidigare, kallades webbservertjänsten för apache, även om jag någonstans märkte att det verkar i en yngel att konfigurationsfilen heter httpd.conf. Fram till nu vet jag inte varför båda dessa namn har spridit sig. Jag skulle bli glad om någon delade information om detta med mig i kommentarerna.

Låt oss nu gå ner till installerar apache... I CentOS 7 görs detta mycket enkelt:

# yum installera -y httpd

Lägg till apache för start:

# systemctl aktivera httpd

Starta apache på CentOS 7:

# systemctl starta httpd

Kontrollera om servern har startat:

# netstat -tulnp | grep httpd tcp6 0 0 ::: 80 ::: * Lyssna 21586 / httpd

Allt är i sin ordning, hängt på 80: e hamnen, som det ska vara. Nu kan du gå till http: // ip-address och se bilden:

Låt oss nu börja konfigurera apache. Jag föredrar följande webbhotellstruktur:

Låt oss skapa en liknande struktur:

# mkdir/web && mkdir /web/site1.ru && mkdir /web/site1.ru/www && mkdir /web/site1.ru/logs # chown -R apache. / webb

InkluderaOptional conf.d / *. Conf

Om inte, avmarkera och gå till katalogen /etc/httpd/conf.d. Skapa filen site1.ru.conf där:

ServerName site1.ru ServerAlias ​​www.site1.ru DocumentRoot /web/site1.ru/www Alternativ FollowSymLinks AllowOverride All Kräv allt beviljat ErrorLog /web/site1.ru/logs/error.log CustomLog /web/site1.ru/logs/access.log common

Startar om apache på centos

Nu startar vi om apache:

# systemctl starta om httpd

Om det finns några fel, titta på apache log / var / log / httpd / error_log. Om allt är i ordning, kontrollera om vår virtuella värd är korrekt konfigurerad. För att göra detta, skapa i mappen /web/site1.ru/www index.html -fil med följande innehåll:

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

Apache är inställd!

# chown apache. /web/site1.ru/www/index.html

192.168.1.25 site1.ru

där 192.168.1.25 är vår webbservers ip -adress.

Nu skriver vi adressen http://site1.ru i webbläsaren. Om vi ​​ser en bild:

då är allt rätt konfigurerat. Om det finns några fel går vi och tittar på loggarna. Och i det här fallet, inte den allmänna httpd -loggen, utan felloggen för en specifik virtuell värd på /web/site1.ru/logs/error.log.

Omedelbart skulle jag vilja uppmärksamma dig på att konfigurera rotationen av virtuella värdloggar. Det händer ofta att om du inte ställer in det direkt, glömmer du det. Men om webbplatsen har bra trafik, kommer stockarna att växa snabbt och kan ta mycket plats. Det är bättre att konfigurera rotationen av webbserverloggarna direkt efter skapandet. Detta är inte svårt att göra.

För att konfigurera rotation av virtuella värdloggar måste du redigera filen /etc/logrotate.d/httpd. Det skapas under apache -installationen och inkluderar inställning av rotationen av loggarnas standardplats. Och eftersom vi överförde loggarna för varje virtuell värd till en enskild mapp måste du lägga till dessa mappar i den här filen:

# mcedit /etc/logrotate.d/httpd /web/*/logs/*.log/ var / log / httpd / * log (missingok notifempty sharedscripts delaycompress postrotate / bin / systemctl reload httpd.service> / dev / null 2> / dev / null || true eindskrift)

I grund och botten är den enklaste webbservern redan klar och kan användas. Men nu finns det knappt några webbplatser med statiskt innehåll som bara behöver html -stöd. Så låt oss fortsätta med vår installation.

Om du behöver organisera webbplatsens arbete enligt protokollet https, använd sedan manualen.

Installera php på CentOS 7

Låt oss ta nästa steg för att stödja dynamiskt webbplatsinnehåll. Installera php på CentOS 7:

# yum installera -y php

Och sedan finns det några fler användbara komponenter. Installera populärt moduler för php:

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

Starta om apache:

# systemctl starta om httpd

Låt oss skapa en fil i den virtuella värdkatalogen och testa php:

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

Vi går till adressen http://site1.ru/index.php

Du bör se php -informationsutmatning. Om något är fel var det några fel, se den virtuella värdfelloggen, php -fel kommer att finnas där också.

Var är php.ini

Efter installationen uppstår ofta frågan, var lagras php -inställningar? Traditionellt finns de i en enda inställningsfil. På CentOS php.ini är i / etc., precis vid roten. Där kan du redigera de globala inställningarna för alla virtuella värdar. Personliga inställningar för varje webbplats kan göras separat i den virtuella värdkonfigurationsfilen som vi gjorde tidigare. Låt oss lägga till några användbara inställningar där:

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

Lägg till i slutet, innan

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

För att tillämpa inställningarna måste du starta om apache. Du kan nu se inställningarna ändras i phpinfo -utmatningen.

Uppgradering till php 5.6 på CentOS 7

I vårt exempel installerade vi på CentOS 7 php 5.4 från standardförvaret. Och vad händer om vi till exempel behöver en nyare version php 5.6? I det här fallet måste du uppdatera php.

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

Nu uppgradera php 5.4 till php 5.6:

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

Starta om apache:

# systemctl starta om httpd

Och låt oss titta på utmatningen av phpinfo - http://site1.ru/index.php

Bra, vi har uppdaterat php till version 5.6.

Installera MySQL på CentOS 7

Som jag skrev tidigare blir mysql -gaffeln mer utbredd nu - mariadb... Den har full kompatibilitet med mysql, så att du säkert kan använda den. Jag föredrar att använda den.

Installera mariadb på CentOS 7:

# yum installera -y mariadb mariadb -server

Lägg till mariadb till autorun:

# systemctl aktivera mariadb.service

Starta mariadb:

# systemctl start mariadb

Vi kontrollerar om det startade eller inte:

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

Jag uppmärksammar det faktum att även i systemet visas det som en mysqld -tjänst. Nu kör vi standardskriptet för säkerhetskonfiguration:

# / usr / bin / mysql_secure_installation

Jag kommer inte att ge hela utmatningen av detta manus, allt är ganska enkelt och tydligt där. Ställ först in ett lösenord för root (det aktuella lösenordet efter installationen är tomt), radera sedan anonyma användare, inaktivera möjligheten att fjärransluta till root, radera testanvändaren och databasen.

Fil inställningar mysql / mariadb ligger i /etc/my.cnf... Standardinställningarna är tillräckliga för normal drift. Men om du bestämmer dig för att ändra dem, kom ihåg att starta om databastjänsten.

Startar om mariadb/ mysql på CentOS 7:

# systemctl starta om mariadb

Det är allt. Grundfunktionen för webbservern på CentOS 7 är konfigurerad.

Jag skulle gärna få kommentarer och kommentarer om ämnet i artikeln. Låt mig påminna dig om att denna artikel är en del av en enda serie artiklar om servern.

Kali Linux Workshop

En kurs för dig som är intresserad av att genomföra penetrationstester och praktiskt taget vill prova sig fram i situationer nära verkliga. Kursen är avsedd för dig som ännu inte har erfarenhet av informationssäkerhet. Träningen varar 3 månader, 4 timmar i veckan. Vad kommer den här kursen att ge dig:
  • Sök och utnyttja sårbarheter eller konfigurationsbrister i företagsnätverk, webbplatser, servrar. Betoning på Windows penetrationstest och företagssäkerhet.
  • Utforska verktyg som metasploit, sqlmap, wireshark, burp suite och många fler.
  • Att behärska Kali Linux -verktygssatsen i praktiken - alla informationssäkerhetsspecialister bör känna till den.
Testa dig själv på inträdesprovet och se detaljerna i programmet på. | |

Steg 1 - installation av MariaDB

Debian 9 innehåller MariaDB 10.1 -paketet i standardförvaret. Detta är dess standard MySQL -variant.

För att installera det, uppdatera paketindexet:

Installera nu paketet:

sudo apt installera mariadb-server

Kommandot installerar MariaDB, men det uppmanar dig inte att välja ett lösenord eller ändra andra inställningar. För närvarande har MariaDB -installationen flera sårbarheter som måste åtgärdas.

Steg 2 - Konfigurera MariaDB

När installationen är klar måste du köra ett säkerhetsskript som tar bort opålitliga parametrar och skyddar databasen från obehörig åtkomst.

sudo mysql_secure_installation

Manuset kommer att ställa en rad frågor. Först måste du ange MariaDB -rotlösenordet. Detta är ett MariaDB -administratörskonto som har förhöjda privilegier. Du har precis installerat MariaDB och har inte gjort några konfigurationsändringar än, du har inte det här lösenordet än, så tryck bara på Retur.

I nästa förfrågan kommer skriptet att be dig att konfigurera ett rotlösenord för databasen. Skriv N och tryck på Enter. I Debian är MariaDB -rotkontot nära knutet till automatiskt systemunderhåll, så du kan inte ändra standardverifieringsmetoderna för det här kontot. Annars, när paketet uppdateras, kan databasen skadas och åtkomst till rotkontot förloras. Vi kommer att titta på hur du konfigurerar ett ytterligare administratörskonto senare om socketautentisering inte är något för dig.

För andra frågor kan du trycka på Y och Enter. Detta kommer att ta bort anonyma användare och testa databaser, inaktivera fjärrrotinloggning och uppdatera de aktuella MariaDB -inställningarna.

Steg 3 - Konfigurera stöd för lösenordsautentisering

I nya Debian -installationer stöder MariaDB -rotanvändaren som standard autentisering med unix_socket -plugin istället för lösenord. Detta kan förbättra säkerheten och användbarheten i många fall, men det kan också göra det svårare om du behöver tillåta åtkomst till ett externt program (t.ex. phpMyAdmin).

Eftersom servern använder rotanvändaren för uppgifter som att rotera loggar, starta och stoppa servern är det bäst att inte ändra rotkontots autentisering. Att ändra autentiseringsuppgifterna i filen /etc/mysql/debian.cnf kan fungera inledningsvis, men ytterligare paketuppdateringar kommer att skriva över dessa ändringar. Istället rekommenderar utvecklarna att du skapar ett separat administratörskonto med lösenordsautentisering.

Så, skapa ett konto som heter admin med samma rättigheter som root, men med stöd för lösenordsautentisering. För att göra detta, öppna kommandoraden MariaDB i en terminal:

Skapa nu en ny användare med root -privilegier och stöd för lösenordsautentisering. Ange ditt användarnamn och lösenord i kommandot.

GRANT ALL ON *. * TO "admin" @ "localhost" IDENTIFICERAT MED "lösenord" MED GRANT -ALTERNATIV;

Släpp privilegier:

FLUSH -PRIVILEGER;

Stäng MariaDB -skalet:

Steg 4 - Testa MariaDB

När den installeras från standardförvaret startar MariaDB automatiskt. Kontrollera tjänstens status för att verifiera detta:

sudo systemctl status mariadb
mariadb.service - MariaDB -databaseserver
Lastad: laddad (/lib/systemd/system/mariadb.service; aktiverad; leverantörsinställning: aktiverad)
Aktiv: aktiv (kör) sedan tis 2018-09-04 16:22:47 UTC; 2 timmar 35 minuter sedan
Process: 15596 ExecStartPost = / bin / sh -c systemctl unset -environment _WSREP_START_POSIT
Process: 15594 ExecStartPost = / etc / mysql / debian-start (kod = avslutad, status = 0 / SUCCESS)
Process: 15478 ExecStartPre = / bin / sh -c [! -e / usr / bin / galera_recovery] && VAR = ||
Process: 15474 ExecStartPre = / bin / sh -c systemctl unset -environment _WSREP_START_POSITI
Process: 15471 ExecStartPre = / usr / bin / install -m 755 -o mysql -g root -d / var / run / mysql
Huvud -PID: 15567 (mysqld)
Status: "Tar dina SQL -förfrågningar nu ..."
Uppgifter: 27 (gräns: 4915)
CGrupp: /system.slice/mariadb.service
└─15567 / usr / sbin / mysqld
Sep 04 16:22:45 deb-mysql1 systemd: Startar MariaDB-databaseserver ...
Sep 04 16:22:46 deb-mysql1 mysqld: 2018-09-04 16:22:46 140183374869056 / usr / sbin / mysqld (mysqld 10.1.26-MariaDB-0 + deb9u1) startar som process 15567 ...
Sep 04 16:22:47 deb-mysql1 systemd: Startade MariaDB-databaseserver.

Om DBMS av någon anledning inte startar anger du:

sudo systemctl start mariadb

För ytterligare verifiering kan du försöka ansluta till databasen med hjälp av mysqladmin -verktyget (detta är en klient som låter dig köra administrativa kommandon). Till exempel kommer detta kommando att ansluta till MariaDB som root och skriva ut versionen med ett Unix -uttag:

sudo mysqladmin version
mysqladmin Ver 9.1 Distrib 10.1.26-MariaDB, för debian-linux-gnu på x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab m.fl.
Serverversion 10.1.26-MariaDB-0 + deb9u1
Protokoll version 10
Anslutning Localhost via UNIX -uttag
UNIX -uttag /var/run/mysqld/mysqld.sock
Drifttid: 2 timmar 44 min 46 sek
Trådar: 1 Frågor: 36 Långsamma frågor: 0 Öppnar: 21 Spolningstabeller: 1 Öppna tabeller: 15 Frågor per sekund genomsnitt: 0.003

Om du har skapat en ytterligare administratör kan du utföra den här operationen med kommandot:

mysqladmin -u admin -p version

MariaDB är igång som förväntat.

Vad är MariaDB

MariaDB är ett databashanteringssystem (DBMS) som bygger på och är i stort sett kompatibelt med MySQL.

MariaDB och MySQL är fullt kompatibla i SQL -frågesyntax. Det vill säga, om ditt program använder MySQL -databaser (till exempel en webbplats i PHP), behöver du inte ändra något i programmet när du byter till MariaDB.

MariaDB är också binärt kompatibel med MySQL -kontakter. De där. om du använder MySQL -kontakter behöver du inte ändra dem när du migrerar till MariaDB.

MariaDB är kompatibelt med MySQL -databasformat, men det finns vissa nyanser. Om du överför databaser via export / import (till exempel med hjälp av en SQL -fil) kommer databaserna som överförs på detta sätt att vara fullt kompatibla mellan alla versioner och kräver inga ytterligare åtgärder. Men om du installerade MariaDB över MySQL, det vill säga MariaDB använder MySQL -databasfiler, måste du överväga kompatibilitet:

  • MariaDB 10.2 är kompatibel med tidigare versioner av MariaDB -datafiler, liksom MySQL 5.6 och MySQL 5.7, men inte kompatibel med MySQL 8.0.
  • MariaDB 10.1 är kompatibel med tidigare versioner av MariaDB -datafiler samt MySQL 5.6.

Mer information: https://mariadb.com/kb/en/library/mariadb-vs-mysql-compatibility/

MariaDB körs på Windows och Linux. Detta program är helt öppen källkod. Den distribueras både i form av källkoder och kompilerade körbara filer för Windows och alla populära Linux -distributioner.

Varför MariaDB är bättre än MySQL

MariaDB stöder fler lagringsmotorer.

Förutom standard MyISAM, BLACKHOLE, CSV, MEMORY, ARCHIVE och MERGE lagringsmotorer har MariaDB också följande:

  • ColumnStore, ett kolumnorienterat lagringssystem, är optimerat för datalager.
  • MyRocks, ett mycket komprimerat lagringssystem, tillagt i 10.2
  • Aria, en ersättning för MyISAM med förbättrad cachning.
  • FederatedX (ersättare för Federated)
  • OQGRAPH.
  • SphinxSE.
  • TokuDB.
  • ANSLUTA.
  • SEKVENS.
  • Spindel.
  • Cassandra.

MariaDB har många olika förbättringar och optimeringar i databehandlingshastigheten.

MariaDB har uppdaterats med nya tillägg och funktioner.

Ladda ner MariaDB för Windows

MariaDB är gratis, det rekommenderas starkt att ladda ner det från den officiella webbplatsen. MariaDB nedladdningssida: https://downloads.mariadb.org/

Du kommer att se flera avsnitt - flera stora versioner av programmet. Om du inte behöver någon specifik kompatibilitet med MySQL, välj bara den senaste versionen och klicka på knappen med "Ladda ner"

Eftersom detta program fungerar på olika operativsystem, i nästa fönster kommer du att se ett stort urval av filer att ladda ner.

Filer Windows x86_64är 64-bitarsversioner och Windows x86- 32-bitars.

.blixtlås- det här är bärbara versioner som du behöver installera själv, men som ger fullständig frihet i finjustering. MEN .msiär ett installationsprogram för Windows.

I denna instruktion kommer jag att visa med ett exempel på hur man arbetar med versionen .blixtlås.

Klicka på knappen på nästa sida: " Nej tack, ta mig bara till nedladdningen»:

Installera MariaDB på Windows

För Windows distribueras MariaDB som ett installationsprogram och ZIP -arkiv. Jag föredrar installationen från ett ZIP -arkiv eftersom det ger mig fullständig kontroll över processen.

Jag installerar i alla exempel i mappen C: \ Server \ bin \ eftersom jag har MariaDB som en del av en webbserver installerad av. Om din är annorlunda, ta hänsyn till detta och gör lämpliga ändringar.

mariadb och flytta till C: \ Server \ bin \.

Flytta mappen C: \ Server \ bin \ mariadb \ data \ till mapp C: \ Server \ data \ DB \.

I mapp C: \ Server \ bin \ mariadb \ skapa en fil min.cnf och kopiera till den:

Migrerar från MySQL till MariaDB på Windows

Migrerar från MySQL till MariaDB med databassparing

Du kan göra övergången på olika sätt. Jag kommer att visa dig den mest mångsidiga metoden för att säkerställa fullständig kompatibilitet och inga ytterligare problem.

Du måste börja med att säkerhetskopiera dina databaser. Vi kommer att göra detta på kommandoraden med hjälp av verktyget (levereras med MySQL och finns i mappen papperskorg).

Öppna en kommandotolk i Windows. För att göra detta, klicka på Vinn + x och välj Windows PowerShell (administratör)... Kör i fönstret som öppnas

Låt oss gå till mappen där det här verktyget finns (du kan ha en annan sökväg):

Cd C: \ Server \ bin \ mysql-8.0 \ bin \

Dumpa (säkerhetskopiera) alla databaser med följande kommando:

Mysqldump.exe -u root -p --all -databaser> all -databases.sql

Nu i mappen C: \ Server \ bin \ mysql-8.0 \ bin \ filen visas all-databases.sql- var noga med att kopiera den till en säker plats!

Stoppa nu MySQL -tjänsten och ta bort den från start:

Kopiera mappen till en säker plats C: \ Server \ data \ DB \ data \- detta är en extra säkerhetskopia av MySQL -databasfilerna - om något skulle gå fel med MariaDB och du vill byta tillbaka till MySQL.

Ta nu bort mapparna C: \ Server \ bin \ mysql-8.0 \(binärer) och C: \ Server \ data \ DB \ data \(Databas).

Packa upp det nedladdade arkivet med MariaDB, byt namn på mappen till mariadb och flytta till C: \ Server \ bin \.

Flytta mappen C: \ Server \ bin \ mariadb \ data \ till mapp C: \ Server \ data \ DB \.

I mapp C: \ Server \ bin \ mariadb \ skapa en fil min.cnf och kopiera till den:

Datadir = "c: / Server / data / DB / data /"

Kör kommandona för att installera och starta tjänsten:

C: \ Server \ bin \ mariadb \ bin \ mysqld -installera net start mysql

För att distribuera databaser från en säkerhetskopia, gå till mappen C: \ Server \ bin \ mariadb \ bin \:

Cmd cd C: \ Server \ bin \ mariadb \ bin \

Och kör ett kommando som:

Mysql -uroot< C:\путь\до\файла\резервной_копии.sql

Till exempel har jag en fil all-databases.sql med en säkerhetskopia av databaserna i mappen h: \ Dropbox \! Säkerhetskopiering \ då är mitt kommando så här:

Mysql -uroot< h:\Dropbox\!Backup\all-databases.sql

Vänta tills importen är klar - om filen är stor kan processen ta lång tid.

Migrerar från MySQL till MariaDB utan att spara databaser

Stoppa MySQL -tjänsten och ta bort den från start:

Net stop mysql c: \ Server \ bin \ mysql-8.0 \ bin \ mysqld-bort

Ta bort mappar C: \ Server \ bin \ mysql-8.0 \(binärer) och C: \ Server \ data \ DB \ data \(Databas).

Packa upp det nedladdade arkivet med MariaDB, byt namn på mappen till mariadb och flytta till C: \ Server \ bin \.

Flytta mappen C: \ Server \ bin \ mariadb \ data \ till mapp C: \ Server \ data \ DB \.

I mapp C: \ Server \ bin \ mariadb \ skapa en fil min.cnf och kopiera till den:

Datadir = "c: / Server / data / DB / data /"

Kör kommandona för att installera och starta tjänsten:

C: \ Server \ bin \ mariadb \ bin \ mysqld -installera net start mysql

Sedan Debian 9 har det populära MySQL -databashanteringssystemet ersatts av MariaDB. Detta DBMS är en gaffel av MySQL och skapades av dess ursprungliga utvecklare som var missnöjda med Oracles licenspolicy och fruktade att MySQL skulle kunna bli en mer egenutvecklad produkt. MariaDB är fullt kompatibelt med MySQL, vilket innebär att ersättningen blir så transparent som möjligt och alla applikationer som fungerade med MySQL kommer också att fungera med MariaDB. Och vi kommer att överväga några av funktionerna i denna övergång.

Först och främst, låt oss säga att alla kommandon, instruktioner, skript etc. etc. de som tidigare arbetat med MySQL kommer också att arbeta med MariaDB, inga ändringar behöver göras och många användare kanske helt enkelt inte märker att de arbetar med ett annat DBMS.

Men det finns också skillnader, först och främst är de relaterade till säkerhet och introducerades av Debian -teamet. En av de största skillnaderna är att MariaDB ingår i Debian 9 frågar inte efter root -lösenord under installationen... Efter det är användaren kvar i viss förvirring, och vad ska man göra sedan? Att lägga bränsle till elden är det faktum att de flesta instruktionerna på Internet överväger att hantera MySQL enbart via phpMyAdmin -kontrollpanelen, och användare som inte har kommandoradsfärdigheter befinner sig i ett särskilt hjälplöst tillstånd.

"Så här ställer du in rotlösenord i MariaDB"i olika varianter är en av de populära sökfrågorna relaterade till detta DBMS. Men låt oss inte hacka av axeln, men låt oss först ta reda på vad Debian -utvecklarna har gjort och varför.

Det största säkerhetsproblemet med MySQL är att databasuppgifter lagras i klartext i konfigurationsfilerna för webbapplikationer. Med tanke på att många användare inte stör sig och gör superanvändarroten till ägare till alla databaser, blir problemet ganska allvarligt. Och om du anser att ett ganska brett spektrum av människor, inklusive inte bara anställda, utan även frilansare, kan ha tillgång till filerna i webbapplikationer, blir det väldigt dåligt.

Därför tillhandahålls i Debian, för rotöveranvändaren i MariaDB, autentisering via ett UNIX -uttag och den implementeras på ett sådant sätt att endast systemöveranvändaren kan få obegränsad åtkomst till MariaDB och endast i kommandoradsläge. Ur säkerhetssynpunkt är detta mycket korrekt, eftersom nu tredje parts användare och webbapplikationer inte kommer att kunna få root-åtkomst, även om de på något sätt har lärt sig lösenordet.

Allt detta är bra, men vad ska en vanlig användare göra som har installerat MariaDB på sin server och vill ladda upp en dumpning av webbplatsdatabasen till den? Först och främst, skaffa en användare, det är bättre inte ens en. För att göra detta, höja våra rättigheter i systemet till root via su eller sudo och kör kommandot:

Mysql -u root

Då befinner du dig på kommandoraden MariaDB. För att skapa en ny användare, kör kommandot:

skapa användaren "andrey" @ "localhost" identifierad med "lösenord";

I vårt exempel har vi skapat en användare andrey med lösenord Lösenord.

Nu kommer vi att tilldela rättigheter till det. Först och främst tar vi uppenbarligen bort rättigheterna till andras databaser:

bevilja användning på *. * till "andrey" @ "localhost";

Och vi kommer att utfärda fullständiga rättigheter till databaserna med mallnamnet andrey_basename, detta tillvägagångssätt ger automatiskt rättigheter till alla nya databaser som användaren kommer att skapa.

bevilja alla privilegier för 'andrey \ _%'. * till "andrey" @ "localhost";

Observera att mönstret är inslaget med tecken gravis (`), som ligger på tangenten med den ryska bokstaven Ё.

Det återstår bara att ladda om privilegierna och lämna MariaDB -konsolen

spolningsprivilegier;
sluta med;

Sedan kan du återgå till de vanliga verktygen för att arbeta med MySQL / MariaDB, till exempel phpMyAdmin:


Observera att denna metod, till skillnad från de vanliga rekommendationerna "aktivera rot i MariaDB", låter dig behålla ökad systemsäkerhet, vilket är viktigt om tredje part har tillgång till den. Vi rekommenderar inte att alla databaser hålls under en användare, helst en webbplats (eller en annan applikation) - en användare, detta gör att du kan ändra lösenordet utan att slösa tid och ansträngning i händelse av dess kompromiss eller potential (t.ex. du lockade att arbeta med sajten frilansare).

Installera MariaDB från utvecklarförråd

Debians operativsystem har många dygder, varav en är mest älskad för stabilitet. Ställ upp det och glöm det - det här handlar bara om honom, men nackdelen med detta tillvägagångssätt är konservatism, många paket har inte så nya versioner som vi ibland skulle vilja. MariaDB 10.1 levereras för närvarande med Debian 9, medan de nuvarande versionerna är 10.2 och 10.3.

Därför, om du behöver några nya MariaDB -funktioner eller bara vill använda de senaste stabila versionerna av programvara, kan du installera MariaDB direkt från utvecklarens arkiv. Det är inte svårt att göra detta, men innan eventuella farliga åtgärder bör du göra en fullständig säkerhetskopia av din server.

För att göra detta, kör följande kommando i serverkonsolen med superanvändarrättigheter:

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

Detta kommando sparar alla MariaDB -databaser, inklusive tjänstedatabaser, till en fil min_backup.sql i katalogen / root och om något går fel kan du alltid återställa tillståndet för din server vid kopieringstillfället.

Du kan få installationsanvisningar på en speciell sida på den officiella webbplatsen.

Det görs mycket bekvämt: du väljer ditt distributionskit, dess utgåva, versionen av DBMS och spegeln - varefter du får färdiga instruktioner för installationen. För att spara tid presenterar vi det här (vi kommer att installera MariaDB 10.3 på Debian 9):

Apt-get installera programvara-egenskaper-vanlig 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"

Så att du förstår vad du gör kommer vi att kort kommentera dessa kommandon. Den första av dem lägger till de nödvändiga beroendena i systemet, den andra installerar nyckeln som paketen signeras med, och den tredje lägger slutligen till själva förvaret i systemet.

Låt oss nu uppdatera paketlistan:

Uppdatera snabbt

och installera den nya versionen av MariaDB:

Apt-get install mariadb-server

Observera att pakethanteraren kommer att avinstallera den tidigare versionen och installera den nya, alla databaser bevaras och fortsätter att fungera med den nya versionen av MariaDB.

Den andra punkten, när du installerar MariaDB från utvecklarna, kommer installationsprogrammet att be dig att ange rotlösenordet, eftersom i den här versionen används inte autentisering via ett UNIX -uttag.

Någon kan vara nöjd med detta, men om du lyckades förstå och uppskatta alla fördelar med metoden från Debain -utvecklarna, kommer en rimlig fråga att uppstå: är det möjligt att returnera det som det var? Burk. För att göra detta, öppna konfigurationsfilen /etc/mysql/mariadb.conf.d/50-server.cnf och lägg till i avsnittet linje:

Plugin-load-add = auth_socket.so

Låt oss starta om DBMS:

Service mysqld omstart

Låt oss försöka logga in från ett vanligt användarkonto:

Trots att systemet kommer att be oss om ett lösenord och vi anger det korrekt kommer vi fortfarande att nekas åtkomst. Låt oss försöka igen via phpMyAdmin:

Och här kommer vi inte att lyckas. Excellent! Nu är det bara systemöveranvändaren som har åtkomst med DBMS -superanvändarrättigheter och vi behöver inte oroa oss för att MariaDB -rotlösenordet blir känt för någon.

Jag bestämde mig för att sluta använda MySQL, eller snarare helt överföra alla mina servrar till sin gaffel - MariaDB. Jag vill passa på att dela processen med att installera MariaDB 10.1 på Debian 8. Det bör noteras att en kort beskrivning av installationen av MariaDB finns på den officiella projektsidan. Jag bestämde mig för att markera ett separat inlägg för det här problemet, där jag vill beskriva de nödvändiga stegen efter att ha installerat MariaDB på servern.

Innan du installerar MariaDB måste du lägga till dess förvar. MariaDB-webbplatsen rekommenderar att du installerar programvaruegenskaper-vanligt paket för detta. Jag ser ingen mening med detta och föredrar att göra allt manuellt.

Registrera förvarets GPG -nyckel i systemet:

Apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Lägg till förvarsbeskrivning till sources.list -filen. Öppna filen i nanoredigeraren:

Nano /etc/apt/sources.list

Kopiera följande rader till slutet:

Deb http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main deb-src http://lon1.mirrors.digitalocean.com/mariadb/repo/10.1/debian jessie main

Vi uppdaterar listan över tillgängliga paket:

Uppdatera snabbt

Starta installationsprocessen för MariaDB 10.1:

Apt-get install mariadb-server

Under installationen kommer vi att bli ombedd att ange ett lösenord för rotanvändaren. Detta slutför installationen av MariaDB på Debian 8. Låt oss nu gå vidare till att konfigurera servern.

För att förbättra tillförlitligheten för vår server måste vi uppfylla minimikraven för säkerhet. Neka root -auktorisering från fjärrvärdar. Om du har testdatabasen och den anonyma användaren måste du ta bort dem från servern. För att göra saker enklare, använd skriptet:

Mysql_secure_installation

Standardlagringstyp

Om du vill ändra standardlagringstypen lägger du till följande rader i my.cnf -filen:

Standard-lagring-motor = innodb

Se till att MariaDB använder standard InnoDB -tabeller. För att göra detta, kör kommandot:

VISA MOTORER;

Skapa MariaDB -användare och databas

För att skapa en användare i MariaDB, använd kommandot nedan:

SKAPA ANVÄNDAREN "USER_NAME" @ "localhost" IDENTIFIERAD MED "LÖSENORD";

Vi skapar en ny bas:

SKAPA DATABASE databasnamn;

Vi ger USER_NAME -användaren fullständiga rättigheter till databasnamnsdatabasen:

GE ALLA PRIVILEGER PÅ databasnamn. * TILL "USER_NAME" @ "localhost";

Nu måste du uppdatera alla privilegier:

FLUSH PRIVILEGER

Kör kommandot för att se behörigheterna:

VISA BIDRAG FÖR "USER_NAME" @ "localhost";

Binära loggar

MariaDB skriver alla databasändringar till en binär logg, vilket krävs för att replikeringsmekanismen ska fungera. Om du inte har gjort säkerhetskopior eller om de är föråldrade kan binära loggar användas för att återställa data. Det finns dock ingen garanti för att data helt eller delvis återställs. Framgången beror på storleken, lagringstiden för de binära loggarna och frekvensen för säkerhetskopian.

För att inaktivera binära loggar, kommentera raderna i my.cnf -filen:

#log_bin = / var / log / mysql / mariadb-bin #log_bin_index = /var/log/mysql/mariadb-bin.index







2021 gtavrl.ru.