MySQLパフォーマンスシリーズの前回の記事で説明したように、MySQLとMariaDBは、標準のMySQLよりもMariaDBを使用することのデメリットはほとんどありません。当社の高可用性MariaDBは、欠点を簡単に軽減できる価値のある後継者であることが証明されています。シリーズの最後の記事として、次のサーバーでさまざまなMySQLおよびMariaDBバージョンにアップグレードすることに焦点を当てます。
CentOS 6/7
- cPanelを使用したCentOS6/7でのMySQLからMariaDBへ
- PleskOnyx17を搭載したCentOS7上のMySQLからMariaDBへ
- CentOS6上のMySQL5.1-5.5からMariaDB5.5へ
- CentOS6上のMariaDB5.5からMariaDB10.0
Ubuntu 14.04 / 16.04
- MySQL5.1-5.5からUbuntu14.04上のMariaDB5.5へ
- MySQL5.7からUbuntu16.04上のMariaDB10.2へ
MariaDBアップグレードプランの選択
適切なアップグレードプランを選択するには、目的のシステムで実行されているMySQLのバージョンを判別する必要があります。サーバーが現在実行しているMySQLのバージョンを判別する一般的な方法は、サーバー自体にクエリを実行してバージョンを報告することです。これは、サーバー上でLinuxディストリビューションが実行されている場合でも同じように機能します。
mysql -h localhost -e'SHOW VARIABLES LIKE "version" \ G'
出力例:
〜$ mysql -h localhost -p -e'SHOW VARIABLES LIKE "version" \ G'
*********************** ****1.行***************************
Variable_name:バージョン
値:5.5.61 -MariaDB
MySQLのバージョンを特定したら、以下のキーを使用して、特定のサーバーの正しいアップグレード手順を見つけます。 MySQLの一部のバージョンでは、MariaDB10.xバージョンにアップグレードする前にMariaDB5.5にアップグレードする必要があります。
MySQLからMariaDBへのアップグレード
アップグレードプロセスは、ほとんどのサーバータイプ間で類似しています。実行される特定のコマンドには違いがありますが、全体的な手順は次の一般的なアップグレード手順です:
- リポジトリキャッシュをクリアして、古いパッケージデータを消去します。
- MySQLサービスを開始して、MariaDBを起動します。
- MySQLデータベースにアクセスでき、データが正しいことを確認します
さまざまなLiquidWebシステムの特定の手順を以下に示します。該当するアップグレード手順を選択する前に、上記の一般的なアップグレード手順の最初の2つの手順を確認してください。 。これらの手順は一般的に普遍的であり、メンテナンス計画を成功させるために重要です。
正確なダウンタイムをスケジュールする
本番環境に影響を与える変更を実行するために適切なメンテナンスウィンドウをスケジュールするのは難しい場合があります。メンテナンスイベントウィンドウには、メンテナンスプランで必要なすべてのタスクを実行するのに十分な時間に加えて、トラブルシューティングと、必要に応じて復帰プランを完了するための追加の時間が含まれている必要があります。
適切なバックアップを確保する
メンテナンスバックアップ計画には、ファイルとデータベースをバックアップするだけではありません。また、メンテナンスを開始する前に環境を元の状態に復元するプロセスの概要を示す復帰計画を作成する必要があります。
メンテナンスイベントにより、バックアップに復帰する代わりに予期しない問題が発生する場合があります。サービスを復元するための有効なバックアップ計画と有効な復帰計画の両方を用意することは、メンテナンスを成功させるための重要な要素です。以下は、両方のサンプルバックアッププランの概要です。 およびサンプル復帰計画 これは、この記事のアップグレード手順の概要で使用できます。
サンプルバックアッププラン
+サンプル復帰計画
+cPanelを使用したCentOS6/7でのMySQLからMariaDBへの変換
すべてのLiquidWebcPanelサーバーイメージには、すでにインストールされているMariaDB5.5が含まれています。これには、CentOS6とCentOS7の両方のサーバーイメージが含まれます。 MariaDB 10.xシリーズが必要でない限り、アップグレードする必要はありません。手動アップグレードの場合、MariaDBが提供する手順は次のとおりです。MariaDB5.5からMariaDB 10.0にアップグレードする場合、cPanelは、すべての面倒な作業を行う簡単なポイントアンドクリックインターフェイスを提供します。 「テキストのみ」形式またはグラフィック形式のいずれかで、以下の手順のいずれかに従ってください。
cPanel MariaDBのアップグレード手順:
ステップA) スケジュールされた時間に続行する前に、バックアップが存在することを確認してください。
ステップB) WHMにログインし、 MySQL/MariaDBアップグレードをロードします ページ:
①左側のクイック検索ボックスを使用して、次のように入力します:mysql upgrade
②MySQL/MariaDBのアップグレードを見つけてクリックします リンク。
③MariaDBの目的のバージョンを選択しました。
④[次へ]ボタンをクリックします。
ステップC) 「アップグレードの警告」を待ちます 」ページで読み込みを完了します。
①各チェックボックスを有効にして、各警告メッセージを読み、確認します。
②[続行]ボタンをクリックします。
ステップD) 「アップグレードタイプ」を待ちます 」ページで読み込みを完了します。
①シームレスなアップグレードエクスペリエンスを実現するには、[無人アップグレード]を選択します。
②[続行]ボタンをクリックします。
ステップE) アップグレードプロセスが完了するのを待ちます。
PleskOnyx17を使用したCentOS7上のMariaDBへのMySQL
すべてのLiquidWebCentOS 7サーバーイメージには、CentOS 7 Plesk Onyx 17サーバーを含め、すでにインストールされているMariaDB5.5が含まれています。 MariaDB 10.xシリーズが必要でない限り、アップグレードする必要はありません。このような場合は、標準のMariaDBPleskアップグレード手順に従ってください。LinuxでMySQL5.5を5.6/5.7にアップグレードする方法またはMariaDB5.5を10.0/ 10.1/10.2にアップグレードする方法
CentOS6上のMySQL5.1-5.5からMariaDB5.5へ
互換性の制限により、MySQL 5.1、5.2、5.3、および5.5.xはMariaDB 5.5にアップグレードする必要があり、MariaDB10.0に直接アップグレードすることはできません。このアップグレードプランでは、これらの非推奨のMySQLバージョンのいずれかをMariaDB5.5にアップグレードする方法について説明します。 MariaDB 5.5へのアップグレードが完了したら、CentOS6でMariaDB5.5をMariaDB10.0にアップグレードする方法に従ってください。 MariaDB10へのアップグレードプロセスを続行するための手順。
ステップ1: スケジュールされた時間に続行する前に、バックアップが存在することを確認してください。
ステップ2: MySQLサービスを停止します。
service mysqld stop
出力例:
〜$ service mysqld restart
mysqldの停止:[OK]
ステップ3: CentOS6用のMariaDB5.5リポジトリをインストールします
cat [mariadb]
エラーが発生しない限り、このコマンドには表示される出力はありません。
name =MariaDB
baseurl =http://yum.mariadb.org/5.5/centos6 -amd64
gpgkey =https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck =1
EOF
ステップ4: yumリポジトリキャッシュをクリーンアップします
yum clean all
出力例:
〜$ yum clean all
ロードされたプラグイン:fastestmirror
クリーニングリポジトリ:baseextrasmariadbの更新
すべてをクリーンアップ
最速のミラーのリストをクリーンアップ
ステップ5: MySQLパッケージを削除する
yum remove mysql-server mysql
出力例:
トランザクションテストの実行
簡潔にするために切り捨てられました。
トランザクションテストが成功しました
トランザクションの実行
消去:mysql-server-5.1.73-8.el6_8.x86_64 1/1
警告:/ var / log / mysqld.logは/var/log/mysqld.log.rpmsaveとして保存されます
確認:mysql-server-5.1.73-8.el6_8.x86_64 1/1
削除:
mysql -server.x86_64 0:5.1.73-8.el6_8
完了!
ステップ6: MariaDB-serverをインストールします およびMariaDB-client yum経由のパッケージ。
yum install MariaDB-server MariaDB-client -y
出力例:インストール済み:
簡潔にするために切り捨てられました。
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
インストールされている依存関係:
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
置換:
mysql-libs.x86_64 0:5.1.73-8.el6_8
完了!
ステップ7: MySQLサービスを再起動します
service mysql start
出力例:
〜$ service mysql start
のデータベースを使用してmysqldデーモンを起動します ステップ8:MySQLアップグレードツールを実行する
MariaDB.18080818:21:13の開始mysqld_safe「/var/lib/mysql/cent6.hostname.err」へのログ記録。
18080818:21:13 mysqld_safe / var / lib / mysql
SUCCESS!
mysql_upgrade
出力例:
〜$ mysql_upgrade
簡潔にするために切り捨てられました。
MySQLアップグレードが検出されました
フェーズ1/4: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
フェーズ4/4:「mysql_fix_privilege_tables」の実行
OK
ステップ9:MariaDBサーバーが期待どおりに実行されていることを確認します
mysql -e'SHOW VARIABLES LIKE "version" \ G'
出力例:
〜$ mysql -e'SHOW VARIABLES LIKE "version" \ G'
>
*************************** 1 .row ***************************
Variable_name:version
Value:5.5.61-MariaDB
ステップ10: アップグレードが完了しました。データベースが存在し、機能していることを確認してください。
[ オプション ] CentOS6の手順でMariaDB5.5をMariaDB10.0にアップグレードする方法に従ってください。
CentOS6上のMariaDB5.5からMariaDB10.0
ステップ1: スケジュールされた時間に続行する前に、バックアップが存在することを確認してください。
ステップ2: すべてのMariaDBパッケージを削除します。
yum remove MariaDB-*
出力例:
実行中のトランザクションテスト
簡潔にするために切り捨てられました。
実行中のトランザクション
実行中のトランザクション
消去:MariaDB-server-5.5.61-1.el6.x86_64 1/2
消去:MariaDB-client-5.5.61-1.el6.x86_64 2/2
検証:MariaDB-server-5.5.61-1.el6.x86_64 1/2
検証:MariaDB- client-5.5.61-1.el6.x86_64 2/2
削除:
MariaDB-client.x86_64 0:5.5.61-1.el6 MariaDB-server.x86_64 0:5.5.61-1 .el6
完了!
ステップ3: 既存のMariaDBリポジトリを削除します。
rm -f /etc/yum.repos.d/MariaDB*.repo
エラーが発生しない限り、このコマンドには表示される出力はありません。
ステップ4: MariaDB10.OYumリポジトリファイルを作成します。
cat [mariadb]
エラーが発生しない限り、このコマンドには表示される出力はありません。
name =MariaDB
baseurl =http://yum.mariadb.org/10.0/centos6 -amd64
gpgkey =https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck =1
EOF
ステップ5: Yumキャッシュをクリーンアップします。
yum clean all
出力例:
〜$ yum clean all
ロードされたプラグイン:fastestmirror
クリーニングリポジトリ:baseextrasmariadbの更新
すべてをクリーンアップ
最速のミラーのリストをクリーンアップ
コード>
ステップ6: MariaDB-serverをインストールします およびMariaDB-client Yum経由のパッケージ。
yum install MariaDB-server MariaDB-client
出力例:
簡潔にするために切り捨てられました。
トランザクションテストの実行
トランザクションテストが成功しました
トランザクションの実行
インストール:MariaDB-client-10.0.36-1.el6.x86_64 1 / 2
インストール:MariaDB-server-10.0.36-1.el6.x86_64 2/2
確認:MariaDB-server-10.0.36-1.el6.x86_64 1/2
確認中:MariaDB-client-10.0.36-1.el6.x86_64 2/2
インストール済み:
MariaDB-client.x86_64 0:10.0.36-1.el6 MariaDB-server.x86_64 0:10.0 .36-1.el6
完了!
ステップ7: MySQLサービスを開始します。
service mysql start
ステップ8: MySQLアップグレードスクリプトを実行します。
mysql_upgrade
ステップ9: アップグレードが完了しました。データベースが存在し、機能していることを確認してください。
Ubuntu14.04上のMySQL5.1-5.5からMariaDB5.5へ
ステップ1: スケジュールされた時間に続行する前に、バックアップが存在することを確認してください。
ステップ2: このワンライナーを使用してMariaDB5.5リポジトリをインストールすると、必要なツール(欠落している場合)、Ubuntu 14.04 GPGキー、およびaptパッケージキャッシュの更新中にMariaDB5.5リポジトリがインストールされます。
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
出力例:
〜$ sudo apt-get install software-properties-common -y> / dev / null
簡潔にするために切り捨てられました。
〜$ sudo apt-key adv --recv-keys- -keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
実行中: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:hkpサーバーからキー1BB943DBをリクエストしていますkeyserver.ubuntu.com
gpg:キー1BB943DB:パブリックキー"MariaDBパッケージ署名キー
gpg:処理された総数:1
gpg:imported: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
ステップ3: mysqlサービスを停止します。
sudo service mysql stop
出力例:
〜$ sudo service mysql stop
mysql stop / waiting
ステップ4: MySQL構成ファイルの名前を/etc/mysql/my.cnfから/etc/mysql/my.cnf.bakに変更します。この手順は、インストールの問題を防ぐために、互換性のないすべてのディレクティブ/変数が構成から削除されていることを確認するために必要です。
sudo mv /etc/mysql/my.cnf {,. bak}
ステップ5: mariadb-serverをインストールします パッケージ。これにより、既存のMySQLバイナリが同時に削除され、新しいMariaDBバイナリがインストールされます。
sudo apt-get install mariadb-server -y
出力例:
+ステップ6: インストール中に、MySQLルートパスワードを2回変更するように求める画面ダイアログが表示されます。指示に従って、パスワードを変更するか、空白のパスワードを入力して変更をスキップします。
ステップ7: 正常に完了すると、mysqlサービスが自動的に開始され、インストールプロセス中にmysql_upgradeスクリプトが自動的に完了します。
A)mysqlサービスが実行されていることを確認します。 sudoservice mysql status
出力例:
〜$ sudo service mysql status
mysql start / running、process 4745
B)mysql_upgradeが成功したことを確認します。 sudomysql_upgrade
出力例:
〜$ sudo mysql_upgrade
このMySQLのインストールはすでに5.5.61にアップグレードされています-MariaDB、まだmysql_upgradeを実行する必要がある場合は--forceを使用してください
ステップ8: アップグレードが完了しました。データベースが存在し、機能していることを確認してください。
MySQL5.7からUbuntu16.04上のMariaDB10.2へ
ステップ1: スケジュールされた時間に続行する前に、バックアップが存在することを確認してください。
ステップ2: ローカルrootアカウントに適切なパスワードがあることを確認してください。 MariaDB 10.2にアップグレードする前に、「root」@「localhost」を確認してください。 パスワードが他の方法で割り当てられていることを確認するユーザー、 auth_socket プラグインは空のパスワードを使用します。これは古いセットアップでは一般的な方法であり、StrictSQLのMariaDB10.2のデフォルトモードが原因で、アップグレードプロセスで問題が発生します。
次のスクリプトは、ローカルrootユーザーの詳細を出力します。
mysql -e'select User、Host、Plugin、authentication_string from user where authentication_string ="" and plugin ="auth_socket";' mysql
出力例:
〜$ mysql -e'select User、Host、Plugin、authentication_string from user where authentication_string ="" and plugin ="auth_socket";' mysql
+ ------ + ----------- + ------------- + ----------- ------------ +
|ユーザー|ホスト|プラグイン| authentication_string |
+ ------ + ----------- + ------------- + ---------- ------------- +
|ルート|ローカルホスト| auth_socket | |
+ ------ + ----------- + ------------- + ----------- ------------ +
以下は、これらのエントリを更新する方法の2つの例です。
オートマジックメソッド :次のワンライナーは、/root/.my.cnfからパスワードを読み取り、ファイルが存在する場合は、そのパスワードを使用してMySQLユーザーエントリを更新します。
sudo test -e /root/.my.cnf &&sudo mysql -e "ALTER USER'root' @'localhost' IDENTIFIED WITH mysql_native_password BY'$(awk -F" [='] "'tolower($ 1) 〜/ password / {print $(NF-1)}'/root/.my.cnf)'; select User、Host、Plugin、authentication_string from user where user ='root' and host ='localhost'; " mysql || echo「エラー:/root/.my.cnfは存在しません、あなたはルートですか?」
出力例:
〜$ sudo test -e /root/.my.cnf &&sudo mysql -e "ALTER USER'root' @'localhost' IDENTIFIED WITH mysql_native_password BY'$(awk -F "[=']"' tolower($ 1)〜/ password / {print $(NF-1)}'/root/.my.cnf)'; select User、Host、Plugin、authentication_string from user where user ='root'およびhost='localhost'; " mysql || echo「エラー:/root/.my.cnfは存在しません、ルートですか?」
+ ------ + ----------- + ------ ----------------- + -------------------------------- ----------- +
|ユーザー|ホスト|プラグイン| authentication_string |
+ ------ + ----------- + ----------------------- + ------------------------------------------- +
|ルート|ローカルホスト| mysql_native_password | * 40C5E49F0CC7BDC637FEEDFBF14FF100C37619D7 |
+ ------ + ----------- + ----------------------- + ------------------------------------------- +
手動による方法: rootユーザーアカウントに適切なパスワードを追加するには、次の構文が必要です。 /root/.my.cnfファイルを正しいパスワードで更新することを忘れないでください。そうしないと、更新でエラーが発生する可能性があります。 SuperSecretPassの代わりに正しいパスワードを使用してください。
ALTER USER‘root’ @’localhost’ IDENTIFIED WITH mysql_native_password BY‘SuperSecretPass’;
ステップ3: MariaDB10.2リポジトリをインストールします。これは、必要なツール、GPGキー、リポジトリをインストールし、パッケージキャッシュを更新するマルチコマンドスタンザです。
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 -更新を取得>/dev / null
出力例:
〜$ sudo apt-get install software-properties-common -y
簡潔にするために切り捨てられました。
〜$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu .com:80 0xF1656F24C74CD1D8
実行中:/tmp/tmp.J8PdET9w5B/gpg.1.sh --recv-keys
--keyserver
hkp://keyserver.ubuntu.com:80
0xF1656F24C74CD1D8
gpg:hkpサーバーkeyserver.ubuntu.comからキーC74CD1D8を要求しています
gpg:キーC74CD1D8:公開キー"MariaDB署名キー
gpg:処理された総数:1
gpg:インポートされた: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
ステップ4: mysqlサービスを停止します。
sudo service mysql stop
出力例:
〜$ sudo service mysql stop
mysql stop / waiting
ステップ5: MySQL構成ファイルの名前を/etc/mysql/my.cnfから/etc/mysql/my.cnf.bakに変更します。この手順は、インストールの問題を防ぐために、互換性のないすべてのディレクティブ/変数が構成から削除されていることを確認するために必要です。
sudo mv /etc/mysql/my.cnf{,.bak}
ステップ6: mariadb-serverパッケージをインストールします。これにより、既存のMySQLバイナリが同時に削除され、新しいMariaDBバイナリがインストールされます。
sudo apt-get install mariadb-server -y
出力例:
〜$ sudo apt install mariadb-server -y
ステップ7: インストール中に画面上のダイアログが表示され、rootパスワードがすでに設定されているため変更できなかったことを確認します。 Enterキーを押して続行します。
ステップ8: 正常に完了すると、mysqlサービスが自動的に開始されます。
sudo service mysql status
出力例:
〜$ sudo service mysql status
mysql start / running、process 4745
ステップ9: 最後に、mysql_upgradeを実行してアップグレードを完了します。
sudomysql_upgrade
出力は、アップグレード時の通常のエラーを示しています。
出力例:
+ステップ10: アップグレードが完了しました。データベースが存在し、機能していることを確認してください。