MySQLバージョン5.7へ移行

MySQL のバージョンをやっと5.7へ移行できた。これでサイトヘルスに怒られなくなったか?データベースが古いとか言われ続けていたけど。

手順

  1. 現在のデータベースにphpMyAdmin(MySQLバージョン5.6)でログイン。データベース名と接続パスワードはconfig.phpで確認できる。
  2. 対象データベース名を選択するとテーブルの一覧が表示される。一番右にオーバーヘッドという項目があって、4項目がオーバーヘッドしていた。posts, postsmeta, comments, commentsmetaとかだったかな。
  3. 各オーバーヘッド項目の一つをクリックし、下までスクロールするとそのテーブルを最適化するというリンクがあったのでそれをクリック。やっちゃいますか?と聞かれたかな、オッケイして作業中アイコンくーるくるして、作業終了。これを4項目分繰り返した。
  4. データベース先頭に戻ってそのデータベース名が全選択されていることを確認。エクスポートをクリックし、実行するをクリック。少し時間かかって自分のPCに.sqlファイルがダウンロードされる。
  5. アップロードできる.sqlファイルの容量は最高で100Mib(メビ・バイト)=1,048.576MBx100と注意書きがあった。単位が大きくなるほど乖離が大きくなるという事でメビバイトとわざわざ表記するとか。私のダウンロードファイルは136,000KB以上あったので132メビバイト以上になっていた。なのでZIPに圧縮する
  6. ZIP圧縮方法は、ファイル名の上で右クリック、送る、ZIPで圧縮をクリックしてジップファイルに圧縮完了。すると容量は一桁小さくなって16,000KBほど(約16メビバイトほど)になった。
  7. サーバーさまの言うとおりにファイル名を*****.sql.zipに変更
  8. 新しいデータベースを作成し、そのデータベース名上でインポートをクリック、圧縮したZIPファイルを選択し実行する。
  9. config.phpで新しく作ったデータベースの名前やユーザー名、接続パスワードを変更して保存。保存の前には念のためconfig.phpを別にコピーしてから。

ここまで来るには何度もエクスポートを失敗し、オーバーヘッドが引っかかっているのではないかと見当つけた。当初、そのオーバーヘッドも複数選択して、いったんはテーブルの最適化ができたはずだったが、やはり最後まではエクスポートが完了してない旨をphpMyAdminがコメントしてくれていた。

英語も右クリックで翻訳してくれるようになってグーグルとクロームに感謝。

何度か繰り返していたら、今日はちょっと違うやり方でテーブルの最適化が出来たのだった。それで作業は進んだ。このphpMyAdminのPHPバージョンが表記されているのだけど4.1.6って書いてあるの。古すぎないかな。

新しいデータベース作成してインポートしても最初はエラーばかり。なぜ?って思っても同じことを繰り返して2日間が経過。

あ、そう言えば容量が出ていたな―と思い出したのが3日目。マニュアル読み直すと100MiBまでだと気付いた。.sql の他 .gzip .zipでも良いと。.zipでは大して圧縮できないかと思ってどうせならと、.gzip調べてみたがLinuxコマンドという事で諦め。逆に私はZIP圧縮しかできないのだった。約10%くらいになったからホッとした。で、無事にインポートも完了。

ヘテさまもここまでの細かいマニュアル書いといてくれればいいのに。。。実は書いてくれてはあるんだけど、私がスンナリ理解できないですっ飛ばしてるからなかなか出来なかっただけ。原則としてデータベースのサポなし。

「インポートは正常に終了しました。2941個のクエリを実行しました。

と表示された時はうれしかった。

念のため、データベースはすぐにコピーしておいた。上記のインライン画像がインポート終了後のコピーデータベースのスクリーンショット。作業も分かってしまえば簡単だった。