プランを上げてDBを複数作成できるようになったので全然怖くない。
経緯
WPのサイトヘルスを見たらPHPバージョンとDBバージョンが古いとあった。
PHPはすぐに切り替えられる。
DBを見返してみたら5.7だった、今は8.0。
だいぶ違う。
現状実害的な動作不良はないけど、ないうちに上げましょう。
作業フロー
- 現行DBからデータのエクスポート
- 新規DBを作成
- 新規DBにデータのインポート
- WPの接続先を新規DBに変更(wp-config.php)
以前は最低プランだからDBは1個だけだった。
ロリポップのサーバー性能が上がったのと試したいことが増えて切り分けて管理できたら良いなとかでプランをアップグレードして、DBを複数作成できるようになったおかげで、一発勝負じゃなくなった。
たとえエクスポートをミスっても保険があるのはとても精神に良い。
やっていく
環境はロリポップのレギュラープラン。
エクスポート
- phpMyAdminにログイン
- 左側メニュー、一番親にあたるデータベース名を選択する
- 「エクスポート」をクリック
- エクスポート方法を「詳細」にする
- 「生成オプション」で「CREATE DATABASE / USE コマンドを追加する」と「DROP TABLE / VIEW / PROCEDURE / FUNCTION / EVENT コマンドを追加する」にチェック
- 「実行」を押してエクスポート
これは以前の記事に書いたのと同じ。
DBを作成
ロリポップの管理画面上から作成する。
作成できるのはMySQL8.0のみだった。
インポート
- 作成したデータベースのphpMyAdminにログインする
- 左メニューのデータベース名をクリックする
- 「インポート」をクリックする
- エクスポートしたデータを指定してインポートする
そのまま突っ込んだらエラーが出た。
表示はこう。
--
-- データベース: `【旧DB名】`
--
CREATE DATABASE IF NOT EXISTS `【旧DB名】` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
MySQL のメッセージ: ドキュメント
#1044 - ユーザー '【ユーザー名】'@'【000.00.0.0】/255.255.0.0' によるデータベース '【旧DB名】' へのアクセスは拒否されました。コピーしたらこう。
---- データベース: `【旧DB名】`--CREATE DATABASE IF NOT EXISTS 【旧DB名】` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;どういうことかといえば、「【旧DB名】のデータベースがなかったら作成しろ」というものが弾かれてる。
まあ、そりゃそうだよね。
作れないし、作る必要がない。
エクスポートした.sqlファイルを開いて、以下の内容を削除。
CREATE DATABASE IF NOT EXISTS `【旧DB名】` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
USE `【旧DB名】`;※念のため、編集前にファイルのバックアップは取っておくこと。
編集したファイルをインポートしたら成功した。
.sqlファイルは211MB、まぁまぁ待った。
WPの接続先を新規DBに変更(wp-config.php)
該当WPのwp-configを開く。
以下の項目を編集する。
define('DB_NAME', '【新DB名】');
define('DB_USER', '【新DBユーザー名】');
define('DB_PASSWORD', '【新DBパスワード】');
define('DB_HOST', '【新DBホスト】');編集が終わったらWPをブラウザで開いて、問題ないかチェック。
最後に
バージョンにかなりの開きがあったけど、それによる弊害はなかったのでよかった。
SQLのエラーは原因と対処を素人がやるにはちょっと怖かったけど、GeminiとかAIに聞いてしまえば解説付きで対処法を出してくれる。
いい時代になりましたね。

コメント