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
# 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
# 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 中国語 Web サイトの他の関連記事を参照してください。