ロリポップ!サーバーのデータベース(MySQL 5.6)バージョンアップ(更新)方法を、起こりやすいエラー( #1044 #1046 )解決方法と共に覚書き。
この記事は2024年2月15日「ライトプラン」のスペックアップによって、リライトしています。特にライトプランの方は、……データベースを一度削除するというおっかない作業をしなくてはなりません……。
2024年、ロリポップのMySQL8.0 対応に伴い、サイトの内容も5.7から 8.0 に変更しております。画像の多くは5.7 のままですが、やることは 5.7 も 8.0 も同じです。
ロリポップ!サーバーのMySQLバージョンアップデート方法(削除や作成など)
とりあえず、まず一体何をやるのか手順を簡単にまとめておきます。
- バックアップを取る(しっかり取る)
- ロリポップ!へログイン
- ファイルマネージャー「ロリポップFTP」を開き「wp-config.php」をダウンロード
- 「wp-config.php」から「データベーステーブルの接頭辞」「データベース名」「ユーザー名」「データベースのパスワード」をメモる
- 「サーバーの管理・設定」→「データベース」へ
- 「php My adminを開く」へ入る
- 先ほど「wp-config.php」からメモした「ユーザー名」「パスワード」を記入し、プルダウンから「データベース名」を選択してログイン
- 「エクスポート」をクリックして、先ほどメモった「データベーステーブルの接頭辞」と該当したデータを選択し、エクスポート
- 「サーバーの管理・設定」→「データベース」のページへ戻る
- 「ライトプラン」ではデータベースを1つしか作れない。なので現在のデータベースを一度削除して新たに作成する(2024年2月 ロリポップのスペックアップにより「ライトプラン」のデータベースは50に増え、削除する必要がなくなりました!)
- 「スタンダード」以上の場合は現在のデータベースをとりあえずそのままにして「新規作成」する
- 新たに作成したデータベースの「データベース名」「データベースのパスワード」をメモる
- 新たに作成したデータベース(MySQL8.0)の「操作する」に先ほどメモった情報でログイン
- 新しいデータベースは空なので、先ほどエクスポートしたファイルをインポート
- エラー出なければ成功!(不吉なことを言うようですいませんが、エラー、出ること多いです。ほんとに。)
- 最初にダウンロードした「wp-config.php」を編集するので必ずコピーを取る
- 「wp-config.php」の「データベース名」「データベースのパスワード」を新しいMySQLの情報に書き換える
- ファイルマネージャー「ロリポップFTP」を開き書き換えた「wp-config.php」をアップロード
- サイトがきちんと動いていれば成功!
以上が簡単にまとめた手順です……はい、これから詳しく書いていきます。
MySQLバージョン更新手順(エクスポート)
では、自分のためにも詳細に書くつもりではいますが、手順が多いので淡々と書き進めたいと思います。淡々と。
バックアップを取る
それほど記事数が多くないブログでしたら(せいぜい100記事や200記事で画像やプラグインはそれほど多くない場合)プラグイン『All-in-One WP Migration』でバックアップを作っておけば万一データベースの更新に失敗してもまた丸っと移せばいいので非常に簡単です。
他所に最新バージョンサーバーを持っている方は、できたら一旦『All-in-One WP Migration』でサイトを丸ごと引っ越ししてみればデータベースの更新後にサイトに崩れが起きないかのテストも出来ますね。
当方ではご依頼を受けてバージョンアップする時は、当方のテストサイトに一旦移して確認させていただいています。(
バックアップ作業付きのご依頼を頂いた場合)もっとも、他のサーバーをお持ちなくらいでしたらロリポップのライトプランは契約していないかな……とは思うので。
ダッシュボードの「ツール」→「エクスポート」からでもいいので、記事のバックアップだけは取っておきましょう。
ロリポップサーバーへログインする
ログインします。
「ロリポップFTP」を開き「wp-config.php」をダウンロード
これは別にここでやる必要もないのですが、「wp-config.php」ファイルの中には重要なデータベース情報が書かれており、データベースのアップグレード後はどうせこのファイルを書き直すためにダウンロードしなくてはならないので、ここでやってしまいましょう。
管理メニュー「サーバーの管理設定」→「ロリポップFTP」を開きます
「wp-config.php」は、ルートディレクトリ(一番上の階層)にあります。「wp-admin」「wp-content」「wp-includes」の3つのフォルダの10個くらい下にありますね。
ひじょうーーに重要なファイルなので慎重に扱ってください。
「wp-config.php」をダウンロード
パソコンにダウンロードしたら、コピーしてもう一つ作っておいてください。(ザックリ説明しますと、1つは書き換えの無い保存用・もう一つはアップグレードしたデータベースの情報に編集して再びサーバーにアップロードする「新データベース用」です)
「データベーステーブルの接頭辞」「データベース名」「ユーザー名」「データベースのパスワード」をメモる
データベース更新前の段階では、「wp-config.php」のお世話になるのはここの部分です。
「データベース名」「ユーザー名」「データベースのパスワード」「データベーステーブルの接頭辞」これをメモります(ダウンロードした「wp-config.php」を見ながら作業しても構いませんが……)
ファイルの個所としては27行目から(だと思います。なければ近辺をお探しください)
// ** MySQL 設定 – この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘LAA1234567-abcde‘);
/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘LAA1234567‘);
/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘abcdefg‘);
/** MySQL のホスト名 */
define(‘DB_HOST’, ‘mysql123.phy.lolipop.lan‘);
/** データベースのテーブルを作成する際のデータベースの文字セット */
define(‘DB_CHARSET’, ‘utf8’);
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define(‘DB_COLLATE’, ”);/**#@+
* 認証用ユニークキー
*
* それぞれを異なるユニーク (一意) な文字列に変更してください。
↓↓↓
↓↓↓
何行か下を見て
↓↓↓
↓↓↓
↓↓↓
/**
* WordPress データベーステーブルの接頭辞
*
* それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
* インストールすることができます。半角英数字と下線のみを使用してください。
*/
$table_prefix = ‘wp_‘;
/**
上でマークした部分がMySQLのログインと作業に必要な部分になります。
「データベース」へ
1.「サーバーの管理・設定」メニューへ戻り「データベース」へ入ります。
「データベース一覧」は、サイトが1つの方は大抵は1つだと思います。
2.更新するデータベースの「操作する」ボタンをクリック。
3.データベースの入り口画面が出てきます。「php My adminを開く」をクリック。
4.「php My admin」のログイン画面です。
ここに、先ほど「wp-config.php」からメモった A.「ユーザー名」B.「データベースのパスワード」を入力し、「サーバーの選択」のプルダウンからC.「MySQL のホスト名」を探します。
5.「実行」を押します。
エクスポート
データベース(php My admin)の中に入れているはずなので……
1.左メニューからテーブルを選択してクリックします。
2.エクスポートをクリックします。
3.「詳細」を選択します
ここで先ほど「wp-config.php」からメモった「WordPress データベーステーブルの接頭辞」(今回の場合は”wp1_”)が必要になります。
この画像の場合は”wp1_”のみだったのでテーブル「全選択」で大丈夫でしたが、他の接頭辞が混在している場合は“wp1_”を選択してください(shiftキーを押しながらマウスでクリック選択)
重要!
2024年までライトプランの方は1つのデータベースでいくつもサイトを運営しているでしょうから、全部エクスポートしてください!!
5.「生成オプション」の上2つにチェック
下の方の項目はこのままで大丈夫ですが、「生成オプション」の上2つにはチェックを入れてください(デフォルトの状態では恐らくチェックが入っていません)
ここにチェックが入っていないとインポートの時にエラーが出ます!
6.「実行」する
あとは何もいじらず実行します。ダウンロードされた「SQLファイル」をパソコンに取り込んで、ひとまずエクスポート作業は終了です。
では、頑張って引き続き「インポート」へ入りましょう。
MySQLバージョン更新手順(新データベースを作成する)
それでは、今回の主目的である「新データベース MySQL8.0を作成する」作業に入ります。
と言っても作業自体は簡単です。
心配な方は真夜中に作業しましょう
旧データベースからデータをエクスポートし、新データベースにデータをインポートする。この間、サイトは一体どうなっているのかというと、別に何ともなっていません。
一番初めにダウンロードした「wp-config.php」の書き換え。それを行うまではサイトは旧データベースで反映されているからです。
この後、新データベースの作成は、ただ「作成する」をポチポチするだけですが、手慣れないとノロノロする可能性は高いので、万が一でもサイトが表示されなくなる時間が生じる可能性はあります。
なので、なるべく訪問者が来ない時間帯に作業した方が良いですね。
ホームに戻って「データベース」をクリック
まず、ロリポップの管理ホーム画面に戻り「サーバーの管理」→「データベース」に入ります。
「作成」をクリック
「スタンダードプラン」以上の方へのご説明になります。
(2024年2月 ロリポップのスペックアップにより「ライトプラン」のデータベースは50に増え、削除する必要がなくなりました!なので「ライトプラン」の方も同じ作業になります)
先ほど申し上げましたが「ライトプラン」の方はここでは作成できません。現在あるデータベースを「操作する」から削除して、やっと1つ「作成」できるようになります。
新データベースを作成する
「MySQL8.0」のデータベースを作成します。
「作成するサーバー」はMySQL8.0の内、好きなものを選択。「データベース名」は任意の文字列。「パスワード」も自分で決めます。
データベース名と接続パスワードはメモすることを忘れずに!(この後、すぐ必要になります)
新データベースを「操作する」
8.0 のデータベースが出来上がりました!
「操作する」からいよいよインポートへ。
新データベースへ入る
「php My adminを開く」から中へ……「エクスポートの手順の時」と同じ内容の事を新データベースで行います。(php My adminログイン画面で、先ほどメモした新データベースのログイン情報を入力しましょう)
MySQLバージョン更新手順(インポート)
基本的には「エクスポート」と同じことをするだけです。
「インポート」
まず左メニューのテーブルをクリックして入り、「インポート」をクリックします。
ファイルを選択
先ほどエクスポートした「SQLファイル」をインポートします。(上チェックを2つ付けた方をインポートしましょう)
「実行」を押します。
何事もなくこれで終了すれば、お疲れさまでした。
一旦、ホッとできますね。
インポートエラーが出たら!
インポートエラー #1046 – No database selected
#1046 – No database selected
直訳すると「データベースが選択されていません」ですね。
これが、先ほどエクスポートの際に
「生成オプション」の上2つにはチェックを入れてください(デフォルトの状態では恐らくチェックが入っていません)
と書いた部分が原因で出るエラーです。
当方は下1つしかチェックを入れていなかったので、このエラーが出ました。以前は下にチェックを入れてあれば成功したのですが、今回はエラーになりましたので、先に警告させていただきました。
1つしかチェックせずにこの #1046 というエラーが出たときは、ここ2つにチェックを入れてエクスポートし直せば解決します。
インポートエラー #1044 – Access denied
#1044 – Access denied for user ‘[user_name]’ to database ‘[db_name]’.
ユーザー ‘[user_name]’ からデータベース ‘[db_name] へのアクセスが拒否されました。
対処としては、
1.エクスポートしたsqlファイルをテキストエディタで開く
2. こういう記述があるので
Database: 「古いDB名」
CREATE DATABASE ××× DEFAULT CHARACTER SET utf8 ××× COLLATE ××××××;
USE 「古いDB名」;
この「古いDB名」の部分を「新しいDB名」に書き換えて保存します。(書き換え前のバックアップはとっておいてください!)
3. あるいは、この2行をコメントアウトしてしまっても大丈夫です。
Database: 「古いDB名」
/* CREATE DATABASE ××× DEFAULT CHARACTER SET utf8 ××× COLLATE ××××××; */
/* USE 「古いDB名」; */
これでインポートしてみて下さい。
エラーが出る事例
MySQLアップデートの手順は間違っていないのにエラーになる
ファイルのサイズが大きいのではないでしょうか。エクスポート・インポートできるデータベースのサイズは 510MBまでなので、あまりに大きなサイズのデータは圧縮してエクスポートする必要があります
エクスポートしたSQLファイルをインポートしたのに内容が空になる
インポートする時に左メニューからまずデータベース名をクリックしていますでしょうか。ここを選択せずに失敗している方が多いようです。
インポートが成功したら「wp-config.php」の書き換え
さてもう一息です。お疲れ様です。
ここまで終わったら、最初にダウンロードした「wp-config.php」を書き換えます。
そう。
最初に古いデーベースへログインするために「データベーステーブルの接頭辞」「データベース名」「ユーザー名」「データベースのパスワード」をメモりましたよね。
あの部分を新しいデータベース情報に書き換えるのです。
だいぶ上の方なので、ここにもう一度書きますね。
「データベース名」「ユーザー名」「データベースのパスワード」「ホスト名」(「データベーステーブルの接頭辞」←これは同じですね。一応確認)これを新しいデータベースの物と書き換えます。
ファイルの個所としては27行目から(だと思います。なければ近辺をお探しください)
// ** MySQL 設定 – この情報はホスティング先から入手してください。 ** //
/** WordPress のためのデータベース名 */
define(‘DB_NAME’, ‘LAA1234567-abcde‘);
/** MySQL データベースのユーザー名 */
define(‘DB_USER’, ‘LAA1234567‘);
/** MySQL データベースのパスワード */
define(‘DB_PASSWORD’, ‘abcdefg‘);
/** MySQL のホスト名 */
define(‘DB_HOST’, ‘mysql123.phy.lolipop.lan‘);
/** データベースのテーブルを作成する際のデータベースの文字セット */
define(‘DB_CHARSET’, ‘utf8’);
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define(‘DB_COLLATE’, ”);/**#@+
* 認証用ユニークキー
*
* それぞれを異なるユニーク (一意) な文字列に変更してください。
↓↓↓
↓↓↓
何行か下を見て
↓↓↓
↓↓↓
↓↓↓
/**
* WordPress データベーステーブルの接頭辞
*
* それぞれにユニーク (一意) な接頭辞を与えることで一つのデータベースに複数の WordPress を
* インストールすることができます。半角英数字と下線のみを使用してください。
*/
$table_prefix = ‘wp_‘; (←確認)
/**
「wp-config.php」をサーバーにアップロードする
書き換えた「wp-config.php」をサーバーにアップロードするのですが、ここでアップロード前に。
このままアップロードしようとしてもエラーが出て出来ないのです。恐らく。
ロリポップでは「wp-config.php」の属性がデフォルトで400になっています。
これはセキュリティ措置で、ありがたいことなのです。
しかし、サイトオーナーも書き込み権限がない状態ですので、アップロードする前に「wp-config.php」の属性を600に書き換えます。
- 属性を600に書き換える
- 保存
- 書き換えたファイルを上書きアップロード
- 保存出来たら、また400に戻しておく
反映には少し時間がかかります。
味が馴染むまで待つ感じ……。
データベースの更新が終わると、かなりサイトスピードが速くなってサクサク表示される感覚を味わえます。やってよかった!と思えますよ。
コメント
コメント一覧 (16件)
こちらの記事で無事に「ロリポップ&ライトプラン」のMySQL「5.1 -> 8.0」バージョンアップ完了できました。
MySQLのバージョンが低くてコンテンツ管理システムのバージョンアップが出来なく、どうしようかと思っていましたが、こちらの丁寧な記事でエラーも対応できました。
ありがとうございました。m(_._)m
noriさん、ありがとうございます!
お役に立てれば幸いです。
インポートエラー#1044が出て青くなっているところ、こちらの説明に助けられました。
どうもありがとうございました。
mktさん、こちらこそ、お役に立てれば幸いです。
私も同じようなサイトヘルスの指摘が来ていたので、すごい参考になりました。
どうやら5系だったものを8系にあげることもできるようで、その情報提供もかねて記事を作ってみました。
ライトプランだったので後戻りできないあたり、すごく緊張しましたが、無事に成功してよかったです。
エンロックさん。
ロリポップでは本年の1月から8.0の対応が始まったようです。
記事がお役に立ち、何よりです。ご報告ありがとうございました。
すいません。
こちら参考になったので、この手順通りやってみたのですがエクスポートしたファイルが重すぎるみたいで(700MB以上)インポートでエラーになってしまい上手くいきません。(512MBまでとのこと)
なにか方法ありますでしょうか。
ロリポップに聞いたらサポート外とのことでした。
よろしければお願いします。
tokiさん、こんにちは。
こちらのお話、もしかしたらデータベースのエクスポートではなくて、All-in-One WP Migration プラグインでダッシュボードから取ったサイトのバックアップのファイルの事ではないでしょうか。だとしたら、こことは少し違うお話になります。(「512MB」という数字を見てそう思ったのですが、違ったらすいません。)
SQLファイルが700MBもあるとしたらかなり大きなサイトなのですね。
もしも、その中に違うテーブル(違うサイトのデータ)がいくつもいくつもあるとしたら、wp1_ wp2_ などテーブルごとに分割してエクスポートすると良いと思います。
テーブルが1つしかないのに700MBもあるという場合は、大変申し訳ありませんが通常はサーバー側に何とかしてもらうしかないと思います。
プラグインではなくデータベースの方に512という数値がありました。700MBはテーブル一つだけの容量です。
だめそうですね。。。
どうもありがとうございました。
tokiさん、こんにちは。
あとは、テーブルを分割してエクスポートし、インポートするという手もあると思います。
例えば、「wp_posts」のみ外してエクスポート、「wp_posts」のみエクスポート。
インポートも別々に実行するという手です。
慎重に作業すれば大丈夫だと思います。
参考になれば幸いです。
ご無沙汰しています。
半年以上経ちましたが「テーブルを分割してエクスポート」というのをヒントに再度チャレンジしました。
現在DBはさらに肥大化して1.5GB以上になっていました。
分割テーブルを個々にエクスポートしようとしましたが、その中に1GB以上のものがあったのでやはり諦めるしかないと思いました。しかしそれが特定プラグイン関係のものということがわかり、そのプラグインを削除してから再度試みたところ容量が軽量化されました。あとは手順通り完了することができました。
どうもありがとうございました。
tokiさん、お返しが遅くなりまして申し訳ありません。
プラグインの削除で解決したとのこと、何よりです。
あの後、Gzip に凍結してエクスポートし(そういうコマンドが存在します)、解凍して編集、また凍結させてインストール という手法を使えばもっと簡単に解決することに気づきました。
もっと早く気づいてお返事できていればと思います。申しわけありません!
またお役に立てれば幸いです。
ありがとうございますm(_ _)m
ロリポップからこの記事を紹介してもらいましたm(_ _)m
コメントありがとうございます。
ロリポップさんの中の人からですか?!
ビックリしました!
ありがとうございます。
古いデータベースは削除して良いのでしょうか?
ご質問ありがとうございます。
はい。
サイトが新しいデータベースで安定していて、エクスポートしたバックアップに自信がありましたら削除しても大丈夫です。