English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
MySQL5.7多くの新しい機能が追加されました。例えば:Online DDL、多源複製、強化された半同期、テーブルスペースの転送、sys ライブラリ、Group Replicationなど。ついにその機会が訪れ、MySQLをアップグレードするまで待っていました。5.7、とても嬉しくなりました。
MySQLのアップグレードの概要
MySQLのアップグレードの本質:
データ辞書のアップグレード
データ辞書には:mysql、information_schema、performance_schema、sys schemaがあります。
MySQLのアップグレードの2つの方法:
in-place upgrade:
小バージョンのアップグレードに適しています。
つまり:現在のMySQLを停止し、現在のバイナリファイルやパッケージを置き換え、現在のデータディレクトリ上でMySQLを再起動し、mysql_upgradeを実行。
特徴:データファイルを変更しません、アップグレード速度が速い;しかし、オペレーティングシステム間、大バージョン間で対応可能ではありません(5.5—>5.7)。
logical upgrade:
異なるオペレーティングシステムのMySQLのアップグレード、大バージョン間のアップグレードに適しています。
つまり:mysqldumpやmydumperを使用してデータのインポート/エクスポートを行い、バージョンのアップグレードを実現。
特徴:オペレーティングシステム間、大バージョン間で対応可能;しかし、アップグレード速度が遅く、乱れが発生しやすい問題があります。
アップグレード前の準備:
事前にバックアップを取っておく
新しいバージョンの変更情報(どの機能が互換性がない、どの機能がサポートされない)を確認
公式サイトのgeneral information—>what is new in mysql 5.7
アップグレードの注意点:
新しいバージョンが重要な変更があるか確認
SQLモードの変更に注意
例えば:MySQL5.7でSQLモードが変更されました。サポートされないSQLモードについては、一部のSQLが通らない場合があります。その場合、SQLモードをクリアし、完了後に設定してください。
アップグレードが成功した後、ビジネスSQLが通るか確認してください
プログラムレベルがすべて正常であるか確認
旧バージョンのプログラムの一部が新しいバージョンのデータベースにサポートされないことがあります。例えば、ある時5.1にアップグレードすると、使用しているPHP4.0ではサポートされていますが、5.6、PHPの一部の関数がサポートされません。
アップグレードが完了した後、テストでは必ずオンラインバージョンと同じプログラムを使用して、問題が存在するかどうかを確認してください。
ストレージエンジンの変更
例えば:将来の5.8バージョンでは、myisamエンジンをサポートしません。
文字コードの乱れの問題に注意
次に、inを使用して-place upgradeメソッドでMySQLを5.6MySQLにアップグレード5.7。
In-place upgradeで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に対してアップグレードを行い、アップグレードが失敗した場合にはどうしますか?
アップグレードを行う際には、一般的にリポジトリを作成してアップグレードを行います。アップグレードが失敗した場合でも、メインリポジトリに影響を与えません。アップグレードが成功し、テストも成功した場合、他のリポジトリも徐々に新しいバージョンにアップグレードされ、最後にメインリポジトリをオフラインにし、新しいメインリポジトリとして新しいリポジトリをアップグレードし、古いメインリポジトリに対してバージョンアップを行います。
声明:このコンテンツはインターネットからネットワークに投稿され、著作権者に帰属します。コンテンツはインターネットユーザーによって自発的に提供され、アップロードされました。このウェブサイトは所有権を持ちません。また、人工的な編集処理も行われていません。著作権侵害の可能性のあるコンテンツを見つけたら、notice#wにメールを送ってください。3codebox.com(メールを送信する際には、#を@に置き換えてください。報告を行い、関連する証拠を提供してください。一旦確認ができたら、このサイトは即座に侵害されたとされる内容を削除します。)