sql >> Database teknologi >  >> RDS >> Mysql

MySQL Performance:Konvertering af MySQL til MariaDB

Som vi udforskede i vores tidligere artikel i vores MySQL Performance Series:MySQL vs. MariaDB er der meget få ulemper ved at bruge MariaDB over standard MySQL. Vores højtilgængelige MariaDB'er har vist sig at være en værdig efterfølger med let afbødede ulemper. Som den sidste artikel i vores serie vil vi fokusere på at opgradere til forskellige MySQL- og MariaDB-versioner på følgende servere:

CentOS 6/7

  • MySQL til MariaDB på CentOS 6/7 med cPanel
  • MySQL til MariaDB på CentOS 7 med Plesk Onyx 17
  • MySQL 5.1-5.5 til MariaDB 5.5 på CentOS 6
  • MariaDB 5.5 til MariaDB 10.0 på CentOS 6

Ubuntu 14.04/16.04

  • MySQL 5.1-5.5 til MariaDB 5.5 på Ubuntu 14.04
  • MySQL 5.7 til MariaDB 10.2 på Ubuntu 16.04

Valg af en MariaDB-opgraderingsplan

Valg af den rigtige opgraderingsplan kræver, at det bestemmes, hvilken version af MySQL, der kører på det tilsigtede system. En universel metode til at bestemme, hvilken version af MySQL serveren kører i øjeblikket, er at forespørge serveren selv for at rapportere versionen. Dette fungerer på samme måde på trods af, at Linux-distributionen kører på serveren:

mysql -h localhost -e 'VIS VARIABLER SOM "version"\G'

Eksempel output:

~ $ mysql -h localhost -p -e 'VIS VARIABLER SOM "version"\G'
*********************** **** 1. række ***************************
Variabelnavn:version
Værdi:5.5.61 -MariaDB

Når du har identificeret din MySQL-version, skal du bruge nøglen nedenfor til at finde den korrekte opgraderingsprocedure for din specifikke server. Nogle versioner af MySQL kræver opgradering til MariaDB 5.5 før opgradering til MariaDB 10.x versioner.

Opgradering fra MySQL  til MariaDB

Opgraderingsprocessen ligner de fleste servertyper. Der er forskelle med de specifikke kommandoer, der udføres, men den overordnede procedure følger denne Generelle opgraderingsprocedure:

  1. Planlæg nøjagtig nedetid.
  2. Sørg for tilstrækkelige sikkerhedskopier.
  3. Fjern de eksisterende MySQL binære filer/pakker.
  4. Installer det korrekte MariaDB-lager.
  5. Ryd lagercache for at slette gamle pakkedata.
  6. Installer MariaDB-pakker via systemets pakkehåndtering.
  7. Start MariaDB ved at starte MySQL-tjenesten.
  8. Kør MySQL-opgraderingsscript.
  9. Bekræft, at MySQL-databaser er tilgængelige, og at data er korrekte

Vi har inkluderet specifikke procedurer nedenfor for forskellige Liquid Web-systemer. Inden du vælger din relevante opgraderingsprocedure, lad os gennemgå de to første trin i ovenstående Generelle opgraderingsprocedure . Disse trin er generelt universelle og er afgørende for succesen af ​​enhver vedligeholdelsesplan.

Planlæg nøjagtig nedetid

Det kan være vanskeligt at planlægge korrekte vedligeholdelsesvinduer for at udføre ændringer, der påvirker produktionsmiljøer. Vedligeholdelseshændelsesvinduet skal indeholde nok tid til at udføre alle nødvendige opgaver i vedligeholdelsesplanen plus eventuel fejlfinding og ekstra tid til at fuldføre tilbageføringsplanen, hvis det er nødvendigt.

Sørg for tilstrækkelige sikkerhedskopier

Der er mere til en vedligeholdelses-backupplan end blot at sikkerhedskopiere filer og databaser. Det er også nødvendigt at lave en reversionsplan, som skitserer processen for at genoprette miljøet til dets oprindelige tilstand før starten af ​​vedligeholdelsen.
Vedligeholdelsesbegivenheder kan nogle gange føre til uforudsete problemer med alternativet at vende tilbage til sikkerhedskopier. At have både en gyldig backupplan og en gyldig reversionsplan for at gendanne tjenester er en kritisk komponent for vellykket vedligeholdelse. Nedenfor er skitserne af både en Eksempel på backupplan og en prøvetilbageførselsplan som kan bruges med denne artikels opgraderingsprocedure beskrevet.

Eksempel på backupplan

+

Eksempel på tilbageførselsplan

+

MySQL til MariaDB på CentOS 6/7 med cPanel

Alle Liquid Web cPanel-serverbilleder inkluderer MariaDB 5.5, der allerede er installeret. Dette inkluderer både CentOS 6- og CentOS 7-serverbilleder. Der er ingen grund til at opgradere, medmindre MariaDB 10.x-serien er påkrævet. For en manuel opgradering, procedurer som leveret af MariaDB her:Opgradering fra MariaDB 5.5 til MariaDB 10.0, ellers giver cPanel en nem peg-og-klik-grænseflade, som gør alt det tunge løft for dig. Følg en af ​​nedenstående procedurer i enten 'Kun tekst'-form eller grafisk form.

cPanel MariaDB-opgraderingsinstruktioner:

Trin A) Bekræft, at der er sikkerhedskopier, før du fortsætter på det planlagte tidspunkt.

Trin B) Log ind på WHM og indlæs MySQL/MariaDB-opgraderingerne side:

① Brug det hurtige søgefelt til venstre, og skriv: mysql upgrade

② Find og klik på MySQL/MariaDB-opgraderingerne link.

③ Valgte din ønskede version af MariaDB.

④ Klik på knappen Næste.

Trin C) Vent på “Opgraderingsadvarsler ” side for at afslutte indlæsningen.

① Læs og anerkend hver advarselsmeddelelse ved at aktivere hvert afkrydsningsfelt.

② Klik på knappen Fortsæt.

Trin D) Vent på “Opgraderingstype ” side for at afslutte indlæsningen.

① Vælg Uovervåget opgradering for en problemfri opgraderingsoplevelse.

② Klik på knappen Fortsæt.

Trin E)  Vent på, at opgraderingsprocessen er fuldført.

MySQL til MariaDB på CentOS 7 med Plesk Onyx 17

Alle Liquid Web CentOS 7-serverbilleder inkluderer MariaDB 5.5, der allerede er installeret, inklusive vores CentOS 7 Plesk Onyx 17-servere. Der er ingen grund til at opgradere, medmindre MariaDB 10.x-serien er påkrævet. I disse tilfælde skal du følge standard MariaDB Plesk Upgrade Procedures her:Sådan opgraderes MySQL 5.5 til 5.6/5.7 eller MariaDB 5.5 til 10.0/10.1/10.2 på Linux

MySQL 5.1-5.5 til MariaDB 5.5 på CentOS 6

På grund af kompatibilitetsbegrænsning skal MySQL 5.1, 5.2, 5.3 og 5.5.x opgraderes til MariaDB 5.5 og kan ikke opgraderes direkte til MariaDB 10.0. Denne opgraderingsplan vil gennemgå at få en af ​​disse forældede MySQL-versioner opgraderet til MariaDB 5.5. Når opgraderingen til MariaDB 5.5 er fuldført, skal du følge Sådan opgraderer du MariaDB 5.5 til MariaDB 10.0 på CentOS 6 instruktioner for at fortsætte opgraderingsprocessen til MariaDB 10.

Trin 1: Bekræft, at der er sikkerhedskopier, før du fortsætter på det planlagte tidspunkt.

Trin 2: Stop MySQL-tjenesten.

service mysqld stop

Eksempel output:
~ $ service mysqld genstart
Stop mysqld:[ OK ]

Trin 3: Installer MariaDB 5.5-lageret til CentOS 6

cat [mariadb]
navn =MariaDB
baseurl =http://yum.mariadb.org/5.5/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Denne kommando har ikke noget synligt output, medmindre der opstår fejl.

Trin 4: Rens yum-lagerets cache

yum clean all
Eksempel output:

~ $ yum renser alle
Indlæste plugins:fastestmirror
Rengøringsrepos:basis ekstramateriale mariadb-opdateringer
Rydning af alt
Rydning af liste over hurtigste spejle

Trin 5:  Fjern MySQL-pakker

yum fjern mysql-server mysql Eksempel output:

Kørsel af transaktionstest
Transaktionstest lykkedes
Kørsel af transaktion
Sletning:mysql-server-5.1.73-8.el6_8.x86_64 1/1
advarsel:/var/ log/mysqld.log gemt som /var/log/mysqld.log.rpmsave
Bekræfter:mysql-server-5.1.73-8.el6_8.x86_64 1/1
Fjernet:
mysql -server.x86_64 0:5.1.73-8.el6_8
Fuldfør!
Trunkeret for kortheds skyld.

Trin 6: Installer MariaDB-serveren og MariaDB-klient pakker via yum.

yum installer MariaDB-server MariaDB-client -y

Eksempel output:Installeret:
MariaDB-client.x86_64 0:10.1.35-1.el6 MariaDB-compat.x86_64 0:10.1.35-1.el6 MariaDB-server.x86_64 0:10.1.35 -1.el6
Afhængighed installeret:
MariaDB-common.x86_64 0:10.1.35-1.el6 boost-program-options.x86_64 0:1.41.0-28.el6
galera .x86_64 0:25.3.23-1.rhel6.el6 jemalloc.x86_64 0:3.6.0-1.el6
Erstattet:
mysql-libs.x86_64 0:5.1.73-8.el6_8
Fuldfør!
Trunkeret for kortheds skyld.

Trin 7: Genstart MySQL-tjenesten

service mysql start Eksempel output:

~ $ service mysql start
Starter MariaDB.180808 18:21:13 mysqld_safe Logger til '/var/lib/mysql/cent6.hostname.err'.
180808 18:21:13 mysqld_safe Starter mysqld daemon med databaser fra /var/lib/mysql
SUCCES!
Trin 8: Kør MySQL-opgraderingsværktøj

mysql_upgrade Eksempel output:

~ $ mysql_upgrade
MySQL-opgradering fundet
Fase 1/4:Retter visninger fra mysql
mysql
mysql.columns_priv OK
mysql.db OK
mysql.event OK
mysql.func OK
mysql.time_zone_leap_second OK
mysql.time_zone_name OK
mysql.time_zone_transition OK
mysql.time_zone_transition_type OK
mysq .user OK
Fase 4/4:Kører 'mysql_fix_privilege_tables'
OK
Trunkeret for kortheds skyld.

Trin 9: Bekræft, at MariaDB-serveren kører som forventet

mysql -e 'VIS VARIABLER SOM "version"\G' Eksempel output:

~ $ mysql -e 'VIS VARIABLER SOM "version"\G'
**************************** 1 . række ***************************
Variabelnavn:version
Værdi:5.5.61-MariaDB

Trin 10: Opgraderingen er fuldført, tjek at dine databaser eksisterer og virker.

[ Valgfrit ] følg vejledningen Sådan opgraderes MariaDB 5.5 til MariaDB 10.0 på CentOS 6.

MariaDB 5.5 til MariaDB 10.0 på CentOS 6

Trin 1:  Bekræft, at der er sikkerhedskopier, før du fortsætter på det planlagte tidspunkt.

Trin 2: Fjern alle MariaDB-pakker.

yum fjern MariaDB-* Eksempeloutput:
Kørsel af transaktionstest
Transaktionstest lykkedes
Kørsel af transaktion
Sletning :MariaDB-server-5.5.61-1.el6.x86_64 1/2
Sletning :MariaDB-client-5.5.61-1.el6.x86_64 2/2
Bekræfter :MariaDB-server-5.5.61-1.el6.x86_64 1/2
Bekræfter :MariaDB- client-5.5.61-1.el6.x86_64 2/2
Fjernet:
MariaDB-client.x86_64 0:5.5.61-1.el6 MariaDB-server.x86_64 0:5.5.61-1 .el6
Fuldfør!
Trunkeret for kortheds skyld.

Trin 3: Fjern eksisterende MariaDB-lager.

rm -f /etc/yum.repos.d/MariaDB*.repo Denne kommando har ikke noget synligt output, medmindre der opstår fejl.

Trin 4: Opret MariaDB 10.O Yum repository-fil.

kat [mariadb]
navn =MariaDB
baseurl =http://yum.mariadb.org/10.0/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Denne kommando har ikke noget synligt output, medmindre der opstår fejl.

Trin 5: Rens Yum-cachen.

yum clean all

Eksempel output:

~ $ yum renser alle
Indlæste plugins:fastestmirror
Rengøringsrepos:basis ekstra mariadb-opdateringer
Rydning op i alt
Rydning af liste over hurtigste spejle

Trin 6: Installer MariaDB-server og MariaDB-klient pakke via Yum.

yum installer MariaDB-server MariaDB-klient Eksempeloutput:

Kørsel af transaktionstest
Transaktionstest lykkedes
Kørsel af transaktion
Installation :MariaDB-client-10.0.36-1.el6.x86_64 1 /2
Installerer :MariaDB-server-10.0.36-1.el6.x86_64 2/2
Bekræfter :MariaDB-server-10.0.36-1.el6.x86_64 1/2
Bekræfter:MariaDB-client-10.0.36-1.el6.x86_64 2/2
Installeret:
MariaDB-client.x86_64 0:10.0.36-1.el6 MariaDB-server.x86_64 0:10.0 .36-1.el6
Fuldfør!
Trunkeret for kortheds skyld.

Trin 7: Start MySQL-tjenesten.

service mysql start

Trin 8: Kør MySQL Upgrade-scriptet.

mysql_upgrade

Trin 9: Opgraderingen er fuldført, tjek at dine databaser eksisterer og fungerer.

MySQL 5.1-5.5 til MariaDB 5.5 på Ubuntu 14.04

Trin 1:  Bekræft, at der er sikkerhedskopier, før du fortsætter på det planlagte tidspunkt.

Trin 2: Installer MariaDB 5.5-depotet med denne one-liner, det vil installere de nødvendige nødvendige værktøjer (hvis de mangler), Ubuntu 14.04 GPG-nøglen og MariaDB 5.5-depotet, mens de apt-pakkecacher opdateres.

sudo apt-get install software-properties-common -y
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
sudo add -apt-repository 'deb [arch=amd64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
sudo apt-get update

Eksempel output:
~ $ sudo apt-get install software-properties-common -y> /dev/null
~ $ sudo apt-key adv --recv-keys - -keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Kører:gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.PtpHIXMNvY - -no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp:// keyserver.ubuntu.com:80 0xcbcb082a1bb943db
gpg:anmoder om nøgle 1BB943DB fra hkp-server keyserver.ubuntu.com
gpg:nøgle 1BB943DB:offentlig nøgle "MariaDB Package Signing Key " importeret
gpg:Samlet antal behandlet:1
gpg:importeret:1
~ $ sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http:/ /ftp.osuosl.org/pub/mariadb/repo/5.5/ubuntu trusty main'
~ $ sudo apt-get update> /dev/null
Trunkeret for kortheds skyld.

Trin 3: Stop mysql-tjenesten.

sudo service mysql stop
Eksempel output:
~ $ sudo service mysql stop
mysql stop/waiting

Trin 4: Omdøb MySQL-konfigurationsfilen /etc/mysql/my.cnf til /etc/mysql/my.cnf.bak. Dette trin er nødvendigt for at sikre, at alle inkompatible direktiver/variabler er blevet fjernet fra konfigurationen for at forhindre problemer med installationen.

sudo mv /etc/mysql/my.cnf{,.bak}

Trin 5: Installer mariadb-serveren pakke. Dette vil samtidig fjerne de eksisterende MySQL-binære filer og derefter installere de nye MariaDB-binære filer.
sudo apt-get install mariadb-server -y

Eksempel output:

+

Trin 6: Under installationen vises en dialogboks på skærmen, der beder dig om at ændre MySQL root-adgangskoden to gange. Følg instruktionerne for enten at ændre adgangskoden eller springe ændringen over ved at angive en tom adgangskode.


Trin 7: Når den er fuldført, bør mysql-tjenesten automatisk starte, og mysql_upgrade-scriptet fuldføres automatisk under installationsprocessen.

A) Tjek, at mysql-tjenesten kører.sudo-tjenesten mysql-status
Eksempel output:
~ $ sudo service mysql status
mysql start/running, process 4745

B) Tjek, at mysql_upgrade var vellykket.sudo mysql_upgrade

Eksempel output:
~ $ sudo mysql_upgrade
Denne installation af MySQL er allerede opgraderet til 5.5.61-MariaDB, brug --force hvis du stadig skal køre mysql_upgrade

Trin 8: Opgraderingen er fuldført, tjek at dine databaser eksisterer og fungerer.

MySQL 5.7 til MariaDB 10.2 på Ubuntu 16.04

Trin 1:  Bekræft, at der er sikkerhedskopier, før du fortsætter på det planlagte tidspunkt.

Trin 2: Kontroller, at den lokale root-konto har en korrekt adgangskode. Før du opgraderer til MariaDB 10.2, skal du kontrollere 'root' @ 'localhost' bruger for at sikre, at en adgangskode er tildelt ellers, auth_socket plugin bruger en tom adgangskode. Dette er almindelig praksis i ældre opsætninger og forårsager problemer med opgraderingsprocessen på grund af standardtilstanden for MariaDB 10.2 i Strict SQL.

Følgende script vil udskrive de lokale root-brugeroplysninger.

mysql -e 'vælg User,Host,Plugin,authentication_string fra bruger, hvor authentication_string ="" og plugin ="auth_socket";' mysql
Eksempel output:
~ $ mysql -e 'vælg User,Host,Plugin,authentication_string fra bruger, hvor authentication_string ="" og plugin ="auth_socket";' mysql
+------+-----------------+----- ------------+
| Bruger | Vært | Plugin | authentication_string |
+------+------------+-------------+-------- -------------+
| rod | lokalvært | auth_socket | |
+------+---------------+----- ------------+

Nedenfor er to eksempler på, hvordan du opdaterer disse poster.

Automagisk metode :Følgende one-liner læser adgangskoden fra /root/.my.cnf og bruger denne adgangskode til at opdatere MySQL-brugerindgangen, hvis filen findes.

sudo test -e /root/.my.cnf &&sudo mysql -e "ÆNDRE BRUGER 'root'@'localhost' IDENTIFICERET MED mysql_native_password AF '$(awk -F"[=']" 'tolower($1) ~/password/{print $(NF-1)}' /root/.my.cnf)'; vælg User,Host,Plugin,authentication_string fra bruger, hvor bruger ='root' og vært ='localhost';" mysql || echo “FEJL:/root/.my.cnf eksisterer ikke, er du root?”
Eksempel output:
~ $ sudo test -e /root/.my.cnf &&sudo mysql -e "ÆNDRE BRUGER 'root'@'localhost' IDENTIFICERET MED mysql_native_password AF '$(awk) -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; vælg User,Host,Plugin,authentication_string fra bruger, hvor bruger ='root' og host ='localhost';" mysql || echo “FEJL:/root/.my.cnf eksisterer ikke, er du root?”
+------+-----------+------ ------------------+-------------------------------- -----------+
| Bruger | Vært | Plugin | authentication_string |
+------+-----------+-----------------------------+ ------------------------------------------+
| rod | lokalvært | mysql_native_password | *40C5E49F0CC7BDC637FEEDFBF14FF100C37619D7 |
+------+-----------+----------------------------- +---------------------------------------------------+

Manuel metode: Følgende syntaks er nødvendig for at tilføje en korrekt adgangskode til root-brugerkontoen. Glem ikke at opdatere filen /root/.my.cnf med den korrekte adgangskode, ellers kan din opdatering støde på fejl. Sørg for at erstatte SuperSecretPass med den korrekte adgangskode.

ÆNDR BRUGER 'root'@'localhost' IDENTIFICERET MED mysql_native_password AF 'SuperSecretPass';

Trin 3: Installer MariaDB 10.2-lageret. Dette er en strofe med flere kommandoer, der installerer de nødvendige værktøjer, GPG-nøgle, repository og opdaterer pakkecachene.

sudo apt-get install software-properties-common -y> /dev/null
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
sudo apt -get update> /dev/null

Eksempel output:
~ $ sudo apt-get install software-properties-common -y
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu .com:80 0xF1656F24C74CD1D8
Kører:/tmp/tmp.J8PdET9w5B/gpg.1.sh --recv-keys
--keyserver
hkp://keyserver.ubuntu.com:80
0xF1656F24C74CD1D8
gpg:anmoder om nøgle C74CD1D8 fra hkp-server keyserver.ubuntu.com
gpg:nøgle C74CD1D8:offentlig nøgle "MariaDB Signing Key " importeret
gpg:Samlet antal behandlet:1
gpg:importeret:1 (RSA:1)
~ $ sudo add-apt-repository 'deb [arch=amd64,arm64,i386,ppc64el] http://ftp.osuosl.org/pub/mariadb/repo/10.2/ubuntu xenial main'
~ $ sudo apt-get update> /dev/null
Trunkeret for kortheds skyld.

Trin 4: Stop mysql-tjenesten.

sudo service mysql stop
Eksempel output:
~ $ sudo service mysql stop
mysql stop/waiting

Trin 5: Omdøb MySQL-konfigurationsfilen /etc/mysql/my.cnf til /etc/mysql/my.cnf.bak. Dette trin er nødvendigt for at sikre, at alle inkompatible direktiver/variabler er blevet fjernet fra konfigurationen for at forhindre problemer med installationen.
sudo mv /etc/mysql/my.cnf{,.bak}
Trin 6: Installer mariadb-server-pakken. Dette vil samtidig fjerne de eksisterende MySQL-binære filer og derefter installere de nye MariaDB-binære filer.

sudo apt-get install mariadb-server -y Eksempel output:
~ $ sudo apt install mariadb-server -y

Trin 7: Under installationen vises en dialogboks på skærmen, der beder dig om, at root-adgangskoden ikke kunne ændres, fordi den allerede er på plads. Tryk på enter for at fortsætte.

Trin 8: Når den er fuldført, bør mysql-tjenesten automatisk starte.
sudo-tjenesten mysql-status Eksempel output:
~ $ sudo service mysql status
mysql start/running, process 4745

Trin 9: Kør endelig mysql_upgrade for at fuldføre opgraderingen.
sudo mysql_upgrade Outputtet viser normale fejl ved opgradering.

Eksempel på output:

+

Trin 10: Opgraderingen er fuldført, tjek at dine databaser eksisterer og virker.

Serienavigation<>

  1. Udfør flere forespørgsler i en enkelt Oracle-kommando i C#

  2. UUID-kollisionsrisiko ved hjælp af forskellige algoritmer

  3. Oprettelse af dynamisk pivottabel med funktionen QUOTENAME

  4. Sådan opretter du en tabel fra udvalgt forespørgselsresultat i SQL Server 2008