Nucleus(JP)フォーラム

NucleusCMS日本語版ユーザーのためのサポートフォーラムです。疑問が生じたらまずは記事検索をご利用ください。

ログインしていません。

#1 2017-04-09 21:43:33

まさ328
メンバー
From: 東京の40おやじ
登録日: 2004-09-15
投稿: 50
ウェブサイト

サーバーバージョンアップに伴うデータベースのエンコード設定が不正

助けてください。

XREAのサーバーバージョンアップに伴い、(PHP5.3から7.0へのバージョンアップ等)
ブログが見えなくなってしまいました。

Ncleusのバージョンは最新に上げましたが、「データベースのエンコード設定が不正です」と出てしまい、XREAのほうで
バックアップのデータをいただきMySQLの復元を試みたのですが、HTTP ERROR 500が出てしまい、「データベースのエンコード設定が不正です」と出ることすら無くなってしまいました(泣)

phpMyAdminというツールでデータベースを確認すると、nucleus_itemやnucleus_commentは文字化けせず、残っていることからうまくやれば復元できるとは思っているのですが、どこから手を付けていいのか全くわかりません。

一度、Ncleusのフォルダーをいったんクリアにして、一から再インストールしてうまくいくでしょうか?
ただ、いろいろなPluginを使わせてもらっていたので、それが使えないとなると困るので、その設定は残したいのです。

質問として、いろいろと不足しているデータがあるとは思いますが、お知恵のほど、よろしくお願いいたします。

(ブログは10年以上溜まっており、復帰させたく、必死です)

オフライン

#2 2017-04-09 23:39:10

nshown
メンバー
登録日: 2008-01-05
投稿: 82

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

本番サーバーで運用しておられたNucleusのバージョンはphp7対応のVer.3.71ですか?
本番サーバーをあれこれ触るのは怖いので、ひとまずお手元でテスト環境を構築して稼働を確認してから、本番サーバーに移植するというルートをご検討されてはいかがでしょうか?

テスト用のWebサーバーソフトとしては、php7.1が使えるxamppの最新版が無料でダウンロードできます。ご参考まで。

また、「データベースのエンコード設定が不正です」でキーワード検索しますと、本フォーラムの記事がヒットするようですが、関連がないでしょうか?

オフライン

#3 2017-04-14 20:47:13

まさ328
メンバー
From: 東京の40おやじ
登録日: 2004-09-15
投稿: 50
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

nshownさん

さっそくコメントいただいたのに返事が遅くなりまして大変申し訳ございません。

実は、プライベート(仕事)で忙しい状態が続いており、本件に関してまだ手をつけられていません。
週末から来週にかけても、出張となっておりますので、その後、アドバイスいただいたことを試してみたいと思っています。

また、しょうがない質問等することと思いますが、よろしくお願いいたします。

オフライン

#4 2017-04-14 21:28:36

ピヨピヨbird
メンバー
登録日: 2015-04-05
投稿: 69

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

PHP5.3に戻すと解決する事案だと思います

おそらく本体だけ更新して、プラグインを最新版に更新していないことが原因です

手間をかけずに、1分で 復旧させるには、PHP5.3に戻すしかありません。
この場合は、動作停止前と同様にプラグインの脆弱性があれば、セキュリティリスクを伴います

PHPの切り替え方は
サーバーのお知らせを読みましょう
https://www.xrea.com/info/brandnew2017.php

PHPを切り替えて、表示されない場合は、
config.phpのデータバースの接続先やパスワードなどがあっているかの確認が必要です

オフライン

#5 2017-04-21 17:35:23

yama
Administrator
登録日: 2005-07-07
投稿: 1,230
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

すいません、こちらチェックが遅くなりました。
使っているプラグインを教えていただけますか?最新の環境で動作しないものがあれば修正します。

オフライン

#6 2017-04-23 17:33:37

まさ328
メンバー
From: 東京の40おやじ
登録日: 2004-09-15
投稿: 50
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

ピヨピヨbirdさん、返事が遅くなって大変もうしわけございませんでした。

PHPを5.3に切り替えましたが、なぜか以下のようなエラーが出てしまって、以前のように表示されません。

mySQL error with query SELECT * FROM nucleus_member WHERE mname='hogehoge': Lost connection to MySQL server during query
mySQL error with query SELECT p.pfile as pfile, e.event as event FROM nucleus_plugin_event as e, nucleus_plugin as p WHERE e.pid=p.pid ORDER BY p.porder ASC: MySQL server has gone away

Page headers already sent

The page headers have already been sent out in /virtual/moto84/public_html/masa.moto84.com/blog/nucleus/libs/sql/mysql.php line 128. This could cause Nucleus not to work in the expected way.

Usually, this is caused by spaces or newlines at the end of the config.php file, at the end of the language file or at the end of a plugin file. Please check this and try again.

If you don't want to see this error message again, without solving the problem, set $CONF['alertOnHeadersSent'] in globalfunctions.php to 0

何が起こっているのでしょうか?
アドバイスお願いいたします。


ピヨピヨbird さんの発言:

PHP5.3に戻すと解決する事案だと思います

おそらく本体だけ更新して、プラグインを最新版に更新していないことが原因です

手間をかけずに、1分で 復旧させるには、PHP5.3に戻すしかありません。
この場合は、動作停止前と同様にプラグインの脆弱性があれば、セキュリティリスクを伴います

PHPの切り替え方は
サーバーのお知らせを読みましょう
https://www.xrea.com/info/brandnew2017.php

PHPを切り替えて、表示されない場合は、
config.phpのデータバースの接続先やパスワードなどがあっているかの確認が必要です

オフライン

#7 2017-04-23 22:39:10

ピヨピヨbird
メンバー
登録日: 2015-04-05
投稿: 69

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

データベースのテーブルが破損
もしくは、MySQLのテーブル構造がアップグレードされていない可能性があります

Lost connection to MySQL server during query
というのは、いろいろな原因があって特定が難しいそうです

・MySQL に接続したまま何もせず一定時間経過した為
・他のユーザーにプロセスを強制的に終了させられた為
・MySQL をアップグレードした際に一部のテーブルが破損した為
・MySQL をアップグレードした際に MySQL の mysql_upgradeコマンドの実行を忘れているとき
  該当する場合は、ユーザーで実行できるコマンドではないので、XREAのサポートに実行してもらうしかないです。
・未定義変数をmysql関数にいれて呼んだとき(クエリが表示されているので,今回は該当しない)
・その他
などがあります。

nucleus_member までたどり着いていますので、
config.phpの設定で
データベースへの接続は確立していると考えてよさそうです。

Nucleusでは、この位置でのデータベースの切断は通常ありませんので
MySQLが原因の以下の2個が疑われます

(1) データベースのテーブルが壊れている または、アップグレードに伴うアップグレードコマンドが管理者権限で実行されていない
(2) 実行中のまま終了できていないデータベースプロセスがたくさんあり同時アクセス制限にかかっている

手順
SQLのテキストデータでのフルバックアップファイルがあればリストアしなおすことで直ると思いますが
とりあえず持っていない場合は
(1) phpMyAdmin でデータベースの管理画面を表示する

(2) テーブルを「すべてチェックする」をクリックして、「テーブルをチェックする」
   で異常がないか確認する。

   「テーブルを修復する」を選ぶとチェックと修復をしてくれる。
   破損している場合はデータがなくなったり、文字化けしたりすることがあるそうなので、
   バックアップがないなら先にバックアップをしておく。
   なにか修復されたようなら、もう一度データベースをエクスポートしてバックアップしておく。

(3)実行中のまま終了できていないデータベースプロセスがないかチェックし、あれば停止する
「状態」「プロセス」をクリックする
1個は、phpMyAdmin なので、
2個以上表示されて ハングアップしてそうなら 左隅の「停止」をクリックする
(「時間」で判断できる)

(4)アップグレードファイルの中の
nucleus/upgrades/convert.php
を実行してみる。

上記が該当しないようなら
Nucleusのドライバ設定を変更して PDO接続し
なにかヒントになるような違うエラーが表示されないか試してみてください。

config.phpの
$MYSQL_HANDLER = array('mysql','');
を探してその下に
$MYSQL_HANDLER = array('pdo','mysql');
を追加して 値を上書きします

エラーなどの表示の確認がおわりましたら
必ずもとの設定
$MYSQL_HANDLER = array('mysql','');
が有効になるようにしてください。

編集者 ピヨピヨbird (2017-04-23 22:47:51)

オフライン

#8 2017-04-24 22:47:34

まさ328
メンバー
From: 東京の40おやじ
登録日: 2004-09-15
投稿: 50
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

コメントありがとうございます。
とりあえず、アドバイスいただいた【手順】に沿ってやってみました。

>(1) phpMyAdmin でデータベースの管理画面を表示する
>(2) テーブルを「すべてチェックする」をクリックして、「テーブルをチェックする」
>  で異常がないか確認する。

すべてOKと表示されました。

>(3)実行中のまま終了できていないデータベースプロセスがないかチェックし、あれば停止する
>「状態」「プロセス」をクリックする

すいません。この「状態」「プロセス」がどうしたらいいのかわかりません。
「構造」タブから進むのでしょうか?

>(4)アップグレードファイルの中の
>nucleus/upgrades/convert.php
>を実行してみる。

以下のようなメッセージで終了します
mySQL error with query SELECT * FROM nucleus_member WHERE mname='hogehoge': Lost connection to MySQL server during query
mySQL error with query SELECT p.pfile as pfile, e.event as event FROM nucleus_plugin_event as e, nucleus_plugin as p WHERE e.pid=p.pid ORDER BY p.porder ASC: MySQL server has gone away

mySQL error with query SHOW FULL COLUMNS FROM `nucleus_config` LIKE 'name': MySQL server has gone away

mySQL error with query SHOW TABLES LIKE 'nucleus_%': MySQL server has gone away

Nucleusのtableがありません。何もせずに終了します。

>上記が該当しないようなら
>Nucleusのドライバ設定を変更して PDO接続し
>なにかヒントになるような違うエラーが表示されないか試してみてください。

PDO接続とは何でしょうか?どのようにすればよろしいでしょうか?

お手数おかけしますがよろしくお願いいたします。



ピヨピヨbird さんの発言:

データベースのテーブルが破損
もしくは、MySQLのテーブル構造がアップグレードされていない可能性があります

Lost connection to MySQL server during query
というのは、いろいろな原因があって特定が難しいそうです

・MySQL に接続したまま何もせず一定時間経過した為
・他のユーザーにプロセスを強制的に終了させられた為
・MySQL をアップグレードした際に一部のテーブルが破損した為
・MySQL をアップグレードした際に MySQL の mysql_upgradeコマンドの実行を忘れているとき
  該当する場合は、ユーザーで実行できるコマンドではないので、XREAのサポートに実行してもらうしかないです。
・未定義変数をmysql関数にいれて呼んだとき(クエリが表示されているので,今回は該当しない)
・その他
などがあります。

nucleus_member までたどり着いていますので、
config.phpの設定で
データベースへの接続は確立していると考えてよさそうです。

Nucleusでは、この位置でのデータベースの切断は通常ありませんので
MySQLが原因の以下の2個が疑われます

(1) データベースのテーブルが壊れている または、アップグレードに伴うアップグレードコマンドが管理者権限で実行されていない
(2) 実行中のまま終了できていないデータベースプロセスがたくさんあり同時アクセス制限にかかっている

手順
SQLのテキストデータでのフルバックアップファイルがあればリストアしなおすことで直ると思いますが
とりあえず持っていない場合は
(1) phpMyAdmin でデータベースの管理画面を表示する

(2) テーブルを「すべてチェックする」をクリックして、「テーブルをチェックする」
   で異常がないか確認する。

   「テーブルを修復する」を選ぶとチェックと修復をしてくれる。
   破損している場合はデータがなくなったり、文字化けしたりすることがあるそうなので、
   バックアップがないなら先にバックアップをしておく。
   なにか修復されたようなら、もう一度データベースをエクスポートしてバックアップしておく。

(3)実行中のまま終了できていないデータベースプロセスがないかチェックし、あれば停止する
「状態」「プロセス」をクリックする
1個は、phpMyAdmin なので、
2個以上表示されて ハングアップしてそうなら 左隅の「停止」をクリックする
(「時間」で判断できる)

(4)アップグレードファイルの中の
nucleus/upgrades/convert.php
を実行してみる。

上記が該当しないようなら
Nucleusのドライバ設定を変更して PDO接続し
なにかヒントになるような違うエラーが表示されないか試してみてください。

config.phpの
$MYSQL_HANDLER = array('mysql','');
を探してその下に
$MYSQL_HANDLER = array('pdo','mysql');
を追加して 値を上書きします

エラーなどの表示の確認がおわりましたら
必ずもとの設定
$MYSQL_HANDLER = array('mysql','');
が有効になるようにしてください。

オフライン

#9 2017-04-25 21:52:33

yama
Administrator
登録日: 2005-07-07
投稿: 1,230
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

SELECT * FROM nucleus_member WHERE mname='hogehoge'

特にクセのない普通のselect文ですね。phpMyAdminでnucleus_memberテーブルのバックアップ(エクスポート)をとることはできますか?できる場合はNucleus側に何らかの問題がある可能性もありますが、エラーメッセージの性質としてはやはりサーバ側の問題っぽい気がします。

オフライン

#10 2017-04-25 22:08:40

まさ328
メンバー
From: 東京の40おやじ
登録日: 2004-09-15
投稿: 50
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

yamaさん

phpMyAdminでnucleus_memberテーブルのエクスポートをしてみましたが、実行後、白い画面(?)になります。このエスクポートデータはどこに作られるのでしょう?それを確認する手段が、お恥ずかしいながらわかりません。

もうしばらくお付き合いください。


yama さんの発言:
SELECT * FROM nucleus_member WHERE mname='hogehoge'

特にクセのない普通のselect文ですね。phpMyAdminでnucleus_memberテーブルのバックアップ(エクスポート)をとることはできますか?できる場合はNucleus側に何らかの問題がある可能性もありますが、エラーメッセージの性質としてはやはりサーバ側の問題っぽい気がします。

オフライン

#11 2017-04-26 08:14:01

yama
Administrator
登録日: 2005-07-07
投稿: 1,230
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

https://www.google.co.jp/search?q=phpMy … C%E3%83%88
phpMyAdminの操作は詳しく説明しているサイトがいくつかあるので、いちおう確認してみてください。
エクスポートデータは基本的にはそのままブラウザに表示されるかダウンロードファイルとして出力するかのどちらかなので、白紙状態に遷移するということは、やっぱり変ですね。CMS側の問題ではなさそうな気がします。

オフライン

#12 2017-04-26 23:12:12

ピヨピヨbird
メンバー
登録日: 2015-04-05
投稿: 69

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

一番初めに

まさ328 さんの発言:

XREAのほうで
バックアップのデータをいただきMySQLの復元を試みた

とありますが

エクスポートを知らないことからするとインポートを知っているとは思えないのですが
この

バックアップのデータをいただき

のバックアップのデータはどのようなものですか?

・自分でバックアップのデータをもとにmysqlサーバーに復元したのでしたら
  なんらかの「作業手順が間違っている」か「バックアップデータが破損している」かのどちらかです。

・もしmysqlサーバーにxrea側で全部データを復元したものをバックアップのデータとお呼びの場合は、
以前書いたように、新しいmysql用にテーブルの内部構造をアップグレードしていない可能性がありますので
xreaサポートに 問い合わせる必要があります。 (mysql_upgradeコマンド)

編集者 ピヨピヨbird (2017-04-26 23:22:01)

オフライン

#13 2017-04-27 21:02:07

まさ328
メンバー
From: 東京の40おやじ
登録日: 2004-09-15
投稿: 50
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

yamaさん

xrea側でphpMyAdminを新規にインストールしていただき(ついでにバージョンもあがったようです)バックアップを取ることはできました。なにかヒントになりますでしょうか。

まさ328 さんの発言:

yamaさん

phpMyAdminでnucleus_memberテーブルのエクスポートをしてみましたが、実行後、白い画面(?)になります。このエスクポートデータはどこに作られるのでしょう?それを確認する手段が、お恥ずかしいながらわかりません。

もうしばらくお付き合いください。


yama さんの発言:
SELECT * FROM nucleus_member WHERE mname='hogehoge'

特にクセのない普通のselect文ですね。phpMyAdminでnucleus_memberテーブルのバックアップ(エクスポート)をとることはできますか?できる場合はNucleus側に何らかの問題がある可能性もありますが、エラーメッセージの性質としてはやはりサーバ側の問題っぽい気がします。

オフライン

#14 2017-04-27 21:15:18

まさ328
メンバー
From: 東京の40おやじ
登録日: 2004-09-15
投稿: 50
ウェブサイト

Re: サーバーバージョンアップに伴うデータベースのエンコード設定が不正

ピヨピヨbirdさん

説明が足らずにすいません。
復元したとあるのは、カスタマーサポートの方で作ってもらったdumpファイルをphpMyAdminからインポートしました。
ただ、その前にいろいろいじった(?)こともあり、サポートから

>ディレクトリ構成を元にもどさせていただいて、
>メンテナンス前の状態と同じにさせていただいていて

とあったので、データを含むデータはphpがバージョンアップされる前の状態に戻してもらっています。

そのうえで、phpを5.3に戻したのですが、前術のようなエラーが出ている次第です。

ピヨピヨbird さんの発言:

一番初めに

まさ328 さんの発言:

XREAのほうで
バックアップのデータをいただきMySQLの復元を試みた

とありますが

エクスポートを知らないことからするとインポートを知っているとは思えないのですが
この

バックアップのデータをいただき

のバックアップのデータはどのようなものですか?

・自分でバックアップのデータをもとにmysqlサーバーに復元したのでしたら
  なんらかの「作業手順が間違っている」か「バックアップデータが破損している」かのどちらかです。

・もしmysqlサーバーにxrea側で全部データを復元したものをバックアップのデータとお呼びの場合は、
以前書いたように、新しいmysql用にテーブルの内部構造をアップグレードしていない可能性がありますので
xreaサポートに 問い合わせる必要があります。 (mysql_upgradeコマンド)

オフライン

Board footer