ホームページ  >  記事  >  データベース  >  MySQL をアップグレードする最良の方法の例を共有する

MySQL をアップグレードする最良の方法の例を共有する

小云云
小云云オリジナル
2018-01-05 17:39:571648ブラウズ

MySQL5.7 には、オンライン DDL、マルチソース レプリケーション、強化された準同期、テーブル スペース転送、sys ライブラリ、グループ レプリケーションなど、多くの新機能が追加されています。最近、ついに MySQL を 5.7 にアップグレードする機会が得られ、とても興奮しました。この記事では主に、MySQL を理論から実践にアップグレードするための最良の方法を説明します。必要な方がフォローして学習し、操作することができます。

MySQL アップグレードの概要

MySQL アップグレードの本質:

​​

データ辞書にアップグレード

データ ディクショナリには、mysql、information_schema、performance_schema、sys スキーマが含まれます。

MySQL をアップグレードする 2 つの方法:

インプレースアップグレード:

マイナーバージョンアップに最適です。

つまり、現在の MySQL をシャットダウンし、現在のバイナリまたはパッケージを置き換え、既存のデータ ディレクトリで MySQL を再起動し、mysql_upgrade を実行します。 特徴: データ ファイルに変更はなく、アップグレード速度が速い; ただし、オペレーティング システムをまたがることはできず、メジャー バージョン (5.5->5.7) をまたぐことはできません。 論理アップグレード:

異なるオペレーティング システムでの MySQL のアップグレードやメジャー バージョン間のアップグレードに適しています。


つまり、mysqldump または mydumper を使用してデータをインポートおよびエクスポートし、バージョン アップグレードを実現します。

特徴: オペレーティング システムとメジャー バージョンをまたがることができますが、アップグレード速度が遅く、文字化けなどの問題が発生しやすくなります。

アップグレード前の準備:

事前にバックアップを作成してください。

新しいバージョンの変更点に関する情報を取得します (互換性がなくなったもの、サポートされなくなった機能)

公式 Web サイトの一般情報 - > mysql 5.7 の新機能

アップグレードに関する注意事項:

新しいバージョンに大きな変更がないか確認してください

SQL モードの変更に注意してください

例: SQL モードは MySQL 5.7 で変更されました。サポートされなくなった SQL モードでは、現時点では SQL モードをクリアし、実行後に SQL モードを設定できます。

アップグレードが成功したら、ビジネス SQL がスムーズに実行できるかどうかを確認します

すべてのプログラム層は正常ですか? 元のプログラミング言語の一部がデータベースの新しいバージョンでサポートされない場合があります。たとえば、以前は PHP 5.1 で PHP 4.0 を使用していましたが、5.6 にアップグレードした後、PHP の一部の機能がサポートされなくなりました。

アップグレード完了後は、必ずオンライン版と同じプログラムを使用してテストを行い、問題がないか確認してください。

ストレージ エンジンの変更

たとえば、将来のバージョン 5.8 では、myisam エンジンはサポートされなくなります。

文字化け問題に注意してください

次のステップは、インプレース アップグレード方法を使用して MySQL5.6 を MySQL5.7 にアップグレードすることです。

インプレースアップグレード MySQL をアップグレード

環境:

5.6.15 —>5.7.20

アップグレード前の準備:

バックアップ + 新しいバージョンの変更点に注意してください

アップグレード操作:

1. 5.7 ソフトウェア パッケージをダウンロードして解凍します

# tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql5.7
2. 現在の MySQL (5.6) を閉じます

# mysql -u root -p -S /data/mysql3308/mysql3308.sock --execute="SET GLOBAL innodb_fast_shutdown=0"
# mysqladmin -u root -p -S /data/mysql3308/mysql3308.sock shutdown

3. バイナリ ファイルを置き換えます (5.7 は 5.6 を置き換えます)
# cd /usr/local
# mv mysql  mysql5.6
# mv mysql5.7 mysql

4. 既存のデータディレクトリを使用して MySQL を起動します

# mysqld_safe --user=mysql --socket=/data/mysql3308/mysql3308.sock -p --skip-grant-tables --datadir=/data/mysql3308/data

5. すべてのテーブルが現在のバージョンと互換性があるかどうかを確認し、システム ライブラリを更新します

# mysql_upgrade -uroot -p -S /data/mysql3308/mysql3308.sock
注:mysql_upgrade的作用是检查所有库的所有表是否与当前的新版本兼容,并更新系统库。

6. 再起動して、システム テーブルに加えた変更が有効になっていることを確認します

# mysqld --defaults-file=/data/mysql3308/my3308.cnf &
# mysql -uroot -p -S /data/mysql3308/mysql3308.sock

この時点で、アップグレードは完了です。

質問: MySQL のアップグレード時にアップグレードが失敗した場合はどうすればよいですか?

アップグレード時には、通常、アップグレード用のスレーブ ライブラリが作成されます。アップグレードが失敗しても、メイン ライブラリには影響しません。アップグレードが成功し、テストが成功すると、他のスレーブ ライブラリが徐々に新しいバージョンにアップグレードされます。データベースがオフラインになると、メイン ライブラリがアップグレードされ、スレーブ データベースが新しいマスター データベースとして昇格され、古いマスター データベースがアップグレードされます。

関連する推奨事項:

アップグレード後に mysql が起動しない問題の解決策

PHP でカプセル化された Mysql 操作クラスの詳細な説明

中国語で文字化けする MySQL 格納データの問題を PHP はどのように解決しますか?

以上がMySQL をアップグレードする最良の方法の例を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。