sql >> Databáze >  >> RDS >> Mysql

Výkon MySQL:Převod MySQL na MariaDB

Jak jsme prozkoumali v našem předchozím článku naší MySQL Performance Series:MySQL vs. MariaDB, používání MariaDB oproti standardní MySQL má jen velmi málo nevýhod. Naše vysoce dostupné MariaDB se osvědčily jako důstojný nástupce se snadno odstranitelnými nedostatky. Jako poslední článek v naší sérii se zaměříme na upgrade na různé verze MySQL a MariaDB na následujících serverech:

CentOS 6/7

  • MySQL na MariaDB na CentOS 6/7 s cPanel
  • MySQL na MariaDB na CentOS 7 s Plesk Onyx 17
  • MySQL 5.1-5.5 až MariaDB 5.5 na CentOS 6
  • MariaDB 5.5 až MariaDB 10.0 na CentOS 6

Ubuntu 14.04/16.04

  • MySQL 5.1-5.5 až MariaDB 5.5 na Ubuntu 14.04
  • MySQL 5.7 až MariaDB 10.2 na Ubuntu 16.04

Výběr plánu upgradu MariaDB

Výběr správného plánu upgradu vyžaduje určení, která verze MySQL běží na zamýšleném systému. Univerzální metodou, jak zjistit, jakou verzi MySQL server aktuálně používá, je dotazovat se samotného serveru, aby nahlásil verzi. Funguje to stejně i přes distribuci Linuxu běžící na serveru:

mysql -h localhost -e 'ZOBRAZIT PROMĚNNÉ JAKO "verze"\G'

Příklad výstupu:

~ $ mysql -h localhost -p -e 'ZOBRAZIT PROMĚNNÉ JAKO "verze"\G'
*********************** **** 1. řádek *********************************
Název_proměnné:verze
Hodnota:5.5.61 -MariaDB

Jakmile identifikujete svou verzi MySQL, použijte klíč níže k nalezení správného postupu upgradu pro váš konkrétní server. Některé verze MySQL vyžadují před upgradem na verze MariaDB 10.x upgrade na MariaDB 5.5.

Upgrade z MySQL  na MariaDB

Proces upgradu je u většiny typů serverů podobný. Existují rozdíly mezi konkrétními příkazy, které se provádějí, ale celkový postup se řídí tímto Obecným postupem upgradu:

  1. Naplánujte si přesné odstávky.
  2. Zajistěte dostatečné zálohy.
  3. Odstraňte stávající binární soubory/balíčky MySQL.
  4. Nainstalujte správné úložiště MariaDB.
  5. Vymažte mezipaměti úložiště a vymažte data starých balíčků.
  6. Nainstalujte balíčky MariaDB prostřednictvím systémového správce balíčků.
  7. Spusťte MariaDB spuštěním služby MySQL.
  8. Spusťte skript pro upgrade MySQL.
  9. Potvrďte, že databáze MySQL jsou přístupné a data jsou správná

Níže uvádíme konkrétní postupy pro různé systémy Liquid Web. Než zvolíte příslušný postup upgradu, projděte si první dva kroky výše uvedeného Obecného postupu upgradu . Tyto kroky jsou obecně univerzální a jsou zásadní pro úspěch jakéhokoli plánu údržby.

Naplánujte přesné odstávky

Naplánovat správná okna údržby pro provedení změn ovlivňujících produkční prostředí může být složité. Okno události údržby musí zahrnovat dostatek času na provedení všech nezbytných úkolů v plánu údržby plus jakékoli řešení problémů a čas navíc na dokončení plánu reverze, pokud je to potřeba.

Zajistěte dostatečné zálohování

Plán zálohování údržby obsahuje více než jen zálohování souborů a databází. Je také nutné vytvořit plán reverze, který nastiňuje proces obnovení prostředí do původního stavu před zahájením údržby.
Události údržby mohou někdy vést k nepředvídatelným problémům s alternativou návratu k zálohám. Mít platný plán zálohování i platný plán obnovy pro obnovení služeb je kritickou součástí úspěšné údržby. Níže jsou uvedeny obrysy obou vzorových plánů zálohování a Ukázkový plán reverze které lze použít s postupem upgradu uvedeným v tomto článku.

Ukázkový plán zálohování

+

Ukázkový plán reverze

+

MySQL do MariaDB na CentOS 6/7 s cPanel

Všechny obrazy serveru Liquid Web cPanel obsahují již nainstalovanou MariaDB 5.5. To zahrnuje obrazy serveru CentOS 6 i CentOS 7. Není třeba upgradovat, pokud není vyžadována řada MariaDB 10.x. Při ručním upgradu postupujte podle pokynů MariaDB zde:Upgrade z MariaDB 5.5 na MariaDB 10.0, jinak cPanel poskytuje jednoduché rozhraní typu point-&-click, které za vás udělá veškerou těžkou práci. Postupujte podle jednoho z níže uvedených postupů buď ve formě 'Pouze text' nebo v grafické formě.

Pokyny k upgradu cPanel MariaDB:

Krok A) Před pokračováním v naplánovanou dobu zkontrolujte, zda jsou zálohy přítomny.

Krok B) Přihlaste se do WHM a načtěte upgrady MySQL/MariaDB stránka:

① Použijte rychlé vyhledávací pole vlevo a zadejte: mysql upgrade

② Vyhledejte a klikněte na Upgrady MySQL/MariaDB odkaz.

③ Vybrali jste požadovanou verzi MariaDB.

④ Klikněte na tlačítko Další .

Krok C) Počkejte na „Upozornění na upgrade ” pro dokončení načítání.

① Přečtěte si a potvrďte každou zprávu s upozorněním zaškrtnutím příslušných políček.

② Klikněte na tlačítko Pokračovat.

Krok D) Počkejte na „Typ upgradu ” pro dokončení načítání.

① Vyberte bezobslužný upgrade pro bezproblémový upgrade.

② Klikněte na tlačítko Pokračovat.

Krok E)  Počkejte na dokončení procesu upgradu.

MySQL do MariaDB na CentOS 7 s Plesk Onyx 17

Všechny obrazy serveru Liquid Web CentOS 7 obsahují již nainstalovanou MariaDB 5.5, včetně našich serverů CentOS 7 Plesk Onyx 17. Není třeba upgradovat, pokud není vyžadována řada MariaDB 10.x. V těchto případech postupujte podle standardních postupů upgradu MariaDB Plesk zde:Jak upgradovat MySQL 5.5 na 5.6/5.7 nebo MariaDB 5.5 na 10.0/10.1/10.2 v systému Linux

MySQL 5.1-5.5 až MariaDB 5.5 na CentOS 6

Kvůli omezení kompatibility musí být MySQL 5.1, 5.2, 5.3 a 5.5.x upgradovány na MariaDB 5.5 a nelze je upgradovat přímo na MariaDB 10.0. Tento plán upgradu vás provede upgradem kterékoli z těchto zastaralých verzí MySQL na MariaDB 5.5. Po dokončení upgradu na MariaDB 5.5 postupujte podle Jak upgradovat MariaDB 5.5 na MariaDB 10.0 na CentOS 6 pokyny k pokračování procesu upgradu na MariaDB 10.

Krok 1: Před pokračováním v naplánovanou dobu zkontrolujte, zda jsou zálohy přítomny.

Krok 2: Zastavte službu MySQL.

zastavení služby mysqld

Příklad výstupu:
~ $ service mysqld restart
Zastavení mysqld:[ OK ]

Krok 3: Nainstalujte úložiště MariaDB 5.5 pro CentOS 6

cat [mariadb]
jméno =MariaDB
baseurl =http://yum.mariadb.org/5.5/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Tento příkaz nemá žádný viditelný výstup, pokud nedojde k chybě.

Krok 4: Vyčistěte mezipaměť úložiště yum

mňam vyčistit vše
Příklad výstupu:

~ $ yum vyčistit vše
Načtené zásuvné moduly:Fastmirror
Čištění repozitářů:základní doplňky mariadb aktualizace
Vyčištění všeho
Vyčištění seznamu nejrychlejších zrcadel

Krok 5:  Odebrat balíčky MySQL

yum odstranit mysql-server mysql Příklad výstupu:

Spuštění testu transakce
Test transakce byl úspěšný
Spuštění transakce
Vymazání:mysql-server-5.1.73-8.el6_8.x86_64 1/1
varování:/var/ log/mysqld.log uložen jako /var/log/mysqld.log.rpmsave
Ověřování:mysql-server-5.1.73-8.el6_8.x86_64 1/1
Odstraněno:
mysql -server.x86_64 0:5.1.73-8.el6_8
Dokončeno!
Zkráceno kvůli stručnosti.

Krok 6: Nainstalujte server MariaDB aklient MariaDB balíčky přes yum.

yum nainstalovat MariaDB-server MariaDB-client -y

Příklad výstupu:Instalováno:
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
Instalovaná závislost:
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
Nahrazeno:
mysql-libs.x86_64 0:5.1.73-8.el6_8
Dokončeno!
Zkráceno kvůli stručnosti.

Krok 7: Restartujte službu MySQL

spuštění služby mysql Příklad výstupu:

~ $ service mysql start
Spouštění MariaDB.180808 18:21:13 mysqld_safe Přihlášení do '/var/lib/mysql/cent6.hostname.err'.
180808 18:21:13 mysqld_safe Spuštění démona mysqld s databázemi z /var/lib/mysql
ÚSPĚCH!
Krok 8: Spusťte nástroj pro upgrade MySQL

mysql_upgrade Příklad výstupu:

~ $ mysql_upgrade
Zjištěn upgrade MySQL
Fáze 1/4:Oprava zobrazení z 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
mysql .user OK
Fáze 4/4:Spuštění 'mysql_fix_privilege_tables'
OK
Zkráceno kvůli stručnosti.

Krok 9: Ověřte, že server MariaDB běží podle očekávání

mysql -e 'ZOBRAZIT PROMĚNNÉ JAKO "verze"\G' Příklad výstupu:

~ $ mysql -e 'ZOBRAZIT PROMĚNNÉ JAKO "verze"\G'
******************************** 1 . řádek ***************************
Název_proměnné:verze
Hodnota:5.5.61-MariaDB

Krok 10: Upgrade je dokončen, zkontrolujte, zda vaše databáze existují a fungují.

[ Volitelné ] postupujte podle pokynů Jak upgradovat MariaDB 5.5 na MariaDB 10.0 na CentOS 6.

MariaDB 5.5 až MariaDB 10.0 na CentOS 6

Krok 1:  Před pokračováním v naplánovanou dobu zkontrolujte, zda jsou zálohy přítomny.

Krok 2: Odeberte všechny balíčky MariaDB.

yum odstranit MariaDB-* Příklad výstupu:
Spuštění testu transakce
Test transakce byl úspěšný
Spuštění transakce
Vymazání:MariaDB-server-5.5.61-1.el6.x86_64 1/2
Mazání:MariaDB-client-5.5.61-1.el6.x86_64 2/2
Ověřování:MariaDB-server-5.5.61-1.el6.x86_64 1/2
Ověřování:MariaDB- client-5.5.61-1.el6.x86_64 2/2
Odstraněno:
MariaDB-client.x86_64 0:5.5.61-1.el6 MariaDB-server.x86_64 0:5.5.61-1 .el6
Dokončeno!
Zkráceno kvůli stručnosti.

Krok 3: Odstraňte stávající úložiště MariaDB.

rm -f /etc/yum.repos.d/MariaDB*.repo Tento příkaz nemá žádný viditelný výstup, pokud nedojde k chybě.

Krok 4: Vytvořte soubor úložiště MariaDB 10.O Yum.

cat [mariadb]
jméno =MariaDB
baseurl =http://yum.mariadb.org/10.0/centos6 -amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
EOF
Tento příkaz nemá žádný viditelný výstup, pokud nedojde k chybě.

Krok 5: Vyčistěte mezipaměť Yum.

mňam vyčistit vše

Příklad výstupu:

~ $ yum vyčistit vše
Načtené pluginy:Fastmirror
Čištění repozitářů:základní doplňky mariadb aktualizace
Vyčištění všeho
Vyčištění seznamu nejrychlejších zrcadel

Krok 6: Nainstalujte MariaDB-server a klient MariaDB balíček přes Yum.

yum nainstalovat MariaDB-server MariaDB-client Příklad výstupu:

Spuštění testu transakce
Test transakce byl úspěšný
Spuštění transakce
Instalace:MariaDB-client-10.0.36-1.el6.x86_64 1 /2
Instalace:MariaDB-server-10.0.36-1.el6.x86_64 2/2
Ověřování:MariaDB-server-10.0.36-1.el6.x86_64 1/2
Ověřování:MariaDB-client-10.0.36-1.el6.x86_64 2/2
Instalováno:
MariaDB-client.x86_64 0:10.0.36-1.el6 MariaDB-server.x86_64 0:10.0 .36-1.el6
Dokončeno!
Zkráceno kvůli stručnosti.

Krok 7: Spusťte službu MySQL.

spuštění služby mysql

Krok 8: Spusťte skript MySQL Upgrade.

mysql_upgrade

Krok 9: Upgrade je dokončen, zkontrolujte, zda vaše databáze existují a fungují.

MySQL 5.1-5.5 až MariaDB 5.5 na Ubuntu 14.04

Krok 1:  Před pokračováním v naplánovanou dobu zkontrolujte, zda jsou zálohy přítomny.

Krok 2: Nainstalujte repozitář MariaDB 5.5 s tímto jednořádkovým modulem, který nainstaluje potřebné požadované nástroje (pokud chybí), klíč GPG Ubuntu 14.04 a úložiště MariaDB 5.5 při aktualizaci mezipaměti balíčků apt.

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'
aktualizace sudo apt-get

Ukázkový výstup:
~ $ sudo apt-get install software-properties-common -y> /dev/null
~ $ sudo apt-key adv --recv-keys - -keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Provádění: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:vyžádání klíče 1BB943DB ze serveru hkp keyserver.ubuntu.com
gpg:klíč 1BB943DB:veřejný klíč "Podpisový klíč balíčku MariaDB-keyriad." importováno
gpg:Celkový počet zpracovaných:1
gpg:importováno: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
Zkráceno kvůli stručnosti.

Krok 3: Zastavte službu mysql.

stop mysql služby sudo
Příklad výstupu:
~ $ sudo služba mysql stop
mysql stop/waiting

Krok 4: Přejmenujte konfigurační soubor MySQL /etc/mysql/my.cnf na /etc/mysql/my.cnf.bak. Tento krok je nezbytný k zajištění toho, aby byly z konfigurace odstraněny všechny nekompatibilní direktivy/proměnné, aby se předešlo problémům s instalací.

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

Krok 5: Nainstalujte mariadb-server balík. Tím současně odstraníte stávající binární soubory MySQL a poté nainstalujete nové binární soubory MariaDB.
sudo apt-get install mariadb-server -y

Příklad výstupu:

+

Krok 6: Během instalace se na obrazovce objeví dialogové okno s výzvou ke změně hesla root MySQL dvakrát. Postupujte podle pokynů pro změnu hesla nebo změnu přeskočte zadáním prázdného hesla.


Krok 7: Po úspěšném dokončení by se služba mysql měla automaticky spustit a skript mysql_upgrade se automaticky dokončí během procesu instalace.

A) Zkontrolujte, zda je spuštěna služba mysql.stav mysql služby sudo
Ukázkový výstup:
~ $ stav mysql služby sudo
mysql start/spuštěn, proces 4745

B) Zkontrolujte, zda byl mysql_upgrade úspěšný.sudo mysql_upgrade

Příklad výstupu:
~ $ sudo mysql_upgrade
Tato instalace MySQL je již upgradována na 5.5.61-MariaDB, použijte --force, pokud stále potřebujete spustit mysql_upgrade

Krok 8: Upgrade je dokončen, zkontrolujte, zda vaše databáze existují a fungují.

MySQL 5.7 až MariaDB 10.2 na Ubuntu 16.04

Krok 1:  Před pokračováním v naplánovanou dobu zkontrolujte, zda jsou zálohy přítomny.

Krok 2: Zkontrolujte, zda má místní root účet správné heslo. Před upgradem na MariaDB 10.2 zkontrolujte ‘root‘ @ ‚localhost‘ Chcete-li zajistit, aby bylo heslo přiřazeno jinak, auth_socket plugin používá prázdné heslo. To je běžná praxe ve starších nastaveních a způsobuje problémy s procesem upgradu kvůli výchozímu režimu MariaDB 10.2 v Strict SQL.

Následující skript vytiskne podrobnosti místního uživatele root.

mysql -e 'vyberte User,Host,Plugin,authentication_string z uživatele kde authentication_string ="" a plugin ="auth_socket";' mysql
Příklad výstupu:
~ $ mysql -e 'vyberte User,Host,Plugin,authentication_string z uživatele kde authentication_string ="" a plugin ="auth_socket";' mysql
+------+-----------+-------------+------------ ------------+
| Uživatel | Host | Plugin | autentizační_řetězec |
+------+-----------+-------------+---------- -------------+
| kořen | localhost | auth_socket | |
+------+-----------+-------------+------------ ------------+

Níže jsou uvedeny dva příklady, jak tyto položky aktualizovat.

Automatická metoda :Následující jednořádkový řádek přečte heslo z /root/.my.cnf a použije toto heslo k aktualizaci uživatelského záznamu MySQL, pokud soubor existuje.

sudo test -e /root/.my.cnf &&sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIKOVANÝ S mysql_native_password BY '$(awk -F"[=']" 'tolower($1) ~/password/{print $(NF-1)}' /root/.my.cnf)'; vyberte User,Host,Plugin,authentication_string z user kde user ='root' a host ='localhost';" mysql || echo “CHYBA:/root/.my.cnf neexistuje, jste root?”
Ukázkový výstup:
~ $ sudo test -e /root/.my.cnf &&sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIKOVANÝ S mysql_native_password BY '$(awk -F"[=']" 'tolower($1)~/password/{print $(NF-1)}' /root/.my.cnf)'; vyberte User,Host,Plugin,authentication_string z uživatele, kde uživatel ='root' a host ='localhost';" mysql || echo “CHYBA:/root/.my.cnf neexistuje, jste root?”
+------+-----------+------- -----------------+-------------------------------- -----------+
| Uživatel | Host | Plugin | autentizační_řetězec |
+------+-----------+-----------------------+ -------------------------------------------+
| kořen | localhost | mysql_native_password | *40C5E49F0CC7BDC637FEEDFBF14FF100C37619D7 |
+------+-----------+----------------------- +-------------------------------------------+

Ruční metoda: Následující syntaxe je nezbytná pro přidání správného hesla k účtu uživatele root. Nezapomeňte aktualizovat soubor /root/.my.cnf správným heslem, jinak může dojít k chybám. Ujistěte se, že jste nahradili správné heslo pro SuperSecretPass.

ALTER USER ‘root’@’localhost’ IDENTIFIKOVANÉ S mysql_native_password BY ‘SuperSecretPass’;

Krok 3: Nainstalujte úložiště MariaDB 10.2. Toto je stanza s více příkazy, která nainstaluje potřebné nástroje, klíč GPG, úložiště a aktualizuje mezipaměti balíčků.

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

Příklad výstupu:
~ $ sudo apt-get install software-properties-common -y
~ $ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu .com:80 0xF1656F24C74CD1D8
Provádění:/tmp/tmp.J8PdET9w5B/gpg.1.sh --recv-keys
--keyserver
hkp://keyserver.ubuntu.com:80
0xF1656F24C74CD1D8
gpg:vyžádání klíče C74CD1D8 ze serveru hkp keyserver.ubuntu.com
gpg:klíč C74CD1D8:veřejný klíč "Podpisový klíč MariaDB " importován
gpg:Celkový počet zpracovaných:1
gpg:importováno: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
Zkráceno kvůli stručnosti.

Krok 4: Zastavte službu mysql.

stop mysql služby sudo
Příklad výstupu:
~ $ sudo služba mysql stop
mysql stop/waiting

Krok 5: Přejmenujte konfigurační soubor MySQL /etc/mysql/my.cnf na /etc/mysql/my.cnf.bak. Tento krok je nezbytný k zajištění toho, aby byly z konfigurace odstraněny všechny nekompatibilní direktivy/proměnné, aby se předešlo problémům s instalací.
sudo mv /etc/mysql/my.cnf{,.bak}
Krok 6: Nainstalujte balíček mariadb-server. Tím současně odstraníte stávající binární soubory MySQL a poté nainstalujete nové binární soubory MariaDB.

sudo apt-get install mariadb-server -y Příklad výstupu:
~ $ sudo apt install mariadb-server -y

Krok 7: Během instalace se na obrazovce objeví dialogové okno s výzvou, že heslo uživatele root nelze změnit, protože je již zadáno. Pokračujte stisknutím klávesy Enter.

Krok 8: Po úspěšném dokončení by se služba mysql měla automaticky spustit.
sudo service mysql status Příklad výstupu:
~ $ sudo service stav mysql
mysql start/spuštěn, proces 4745

Krok 9: Nakonec spusťte mysql_upgrade a dokončete upgrade.
sudo mysql_upgrade Výstup zobrazuje běžné chyby při aktualizaci.

Příklad výstupu:

+

Krok 10: Upgrade je dokončen, zkontrolujte, zda vaše databáze existují a fungují.

Navigace v řadě<>

  1. Možnosti zotavení po havárii pro PostgreSQL nasazené do hybridního cloudu

  2. Jak nahradit primární klíč Django jiným celým číslem, které je pro danou tabulku jedinečné

  3. aktualizace a komprimace databáze sqlite v systému Android

  4. Seznamte se s Michalem Barem a mnou na Microsoft Ignite!