YakstYakstは、海外の役立つブログ記事などを人力で翻訳して公開するプロジェクトです。翻訳リクエストタグYakstとはFacebookでログイン1年以上前投稿MySQL5.7からMySQL8.0へのインプレースアップグレードMySQL5.7からMySQL8.0にインプレースでアップグレードする方法を解説した記事。ユーザが翻訳したものであり、Oracle公式の文書ではありません。8.0のGA版が4月に発表され、多くの新機能が実装されました。新機能の概要やMySQL8.0での改良点については、こちらの記事で確認できます。MySQLサーバはINPLACEとLOGICAL、両方のアップグレード方式が使えます。INPLACEアップグレードは、MySQL5.7サーバを停止し、古いバイナリをMySQL8.0のものに置き換えた後に、古いデータディレクトリをそのまま使用してMySQL8.0サーバを立ち上げる方法です。LOGICALアップグレードは、mysqldumpやmysqlpumpといったバックアップツールを使用してMySQL5.7からデータをSQLを出力し、インストールしたMySQL8.0に対してインポートする方法です。MySQL8.0のインストール後にデータをロードする必要がないため、LOGICALアップグレードよりもINPLACEアップグレードの方が高速です。LOGICALアップグレードのデータロード中には非互換性に起因したエラーが発生する可能性もあり、その場合出力したSQLファイルを修正する必要があります。本記事では、MySQL8.0にINPLACEアップグレードするための簡単な手順を説明します。MySQL8.0にアップグレードする最初のステップは、既存のMySQL5.7サーバに対してアップグレードの準備が整っているかチェックすることです。Checker"を導入しました。この記事では、ツールの実行してアップグレード前にするべき作業があるかどうかを確認する方法について簡単に説明しています。MySQL8.0へのアップグレードをする前に稼働中のMySQL5.7に対してこのツールを実行してみましょう。protected]$ツールは修正しなければいけないエラーを出力しませんでした。そのため、古いバイナリを置き換える次のステップに進むことができます。ようなバックアップツールを使って、データのバックアップを取得してください。mysqlのシステムデータやログファイルを含んだバックアップを取っておくことで、あなたのデータを守ることはとても大事なことです。MySQL8.0のバイナリはこちらからダウンロードできます。MySQL8.0サーバは古いデータディレクトリを使ってそのまま起動できます。私は以下のようなデフォルト設定で起動しました。システムテーブルはアップグレードされ、ユーザが作成したテーブルのチェックも完了しました。サーバを停止し、もう一度起動してみます。ログに何もエラーが出力されていないことを確認しましょう。distribution以上でINPLACEアップグレードは完了です。何かしらのエラーでアップグレードが失敗したら、MySQLサーバはデータディレクトリに対する全ての変更を巻き戻します。再度アップグレードを実施する場合は、以下のようにしてください。データディレクトリ内にredoログがある場合は、それらを全て削除する同じデータディレクトリを使用してMySQL5.7を起動するアップグレード中に出力されたエラーを全て解消する再度INPLACEアップグレードを実施する次回の私の記事では、MySQL8.0へのアップグレード中に起こりうるエラーに関して述べたいと思います。MySQL8.0にアップグレードする前には、アップグレードの前提条件とアップグレードによる影響のページを確認してください。アップグレードに関する詳細な説明は、MySQLドキュメントで確認ができます。@yakstcom_req_jaYakstYakstお問い合わせ。