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:
- Planlæg nøjagtig nedetid.
- Sørg for tilstrækkelige sikkerhedskopier.
- Fjern de eksisterende MySQL binære filer/pakker.
- Installer det korrekte MariaDB-lager.
- Ryd lagercache for at slette gamle pakkedata.
- Installer MariaDB-pakker via systemets pakkehåndtering.
- Start MariaDB ved at starte MySQL-tjenesten.
- Kør MySQL-opgraderingsscript.
- 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]
Denne kommando har ikke noget synligt output, medmindre der opstår fejl.
navn =MariaDB
baseurl =http://yum.mariadb.org/5.5/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
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
Trunkeret for kortheds skyld.
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!
Trin 6: Installer MariaDB-serveren og MariaDB-klient pakker via yum.
yum installer MariaDB-server MariaDB-client -y
Eksempel output:Installeret:
Trunkeret for kortheds skyld.
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!
Trin 7: Genstart MySQL-tjenesten
service mysql start
Eksempel output:
~ $ service mysql start
Trin 8: Kør MySQL-opgraderingsværktøj
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!
mysql_upgrade
Eksempel output:
~ $ mysql_upgrade
Trunkeret for kortheds skyld.
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
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
Trunkeret for kortheds skyld.
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!
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]
Denne kommando har ikke noget synligt output, medmindre der opstår fejl.
navn =MariaDB
baseurl =http://yum.mariadb.org/10.0/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
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:
Trunkeret for kortheds skyld.
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!
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
Trunkeret for kortheds skyld.
~ $ 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
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
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
Trunkeret for kortheds skyld.
~ $ 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
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
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.