サポート » インストール » 4.1へバージョンアップを試みたらデータベース接続確立エラー

  • fujikana

    (@fujimon)


    表題の通りで困っています。管理画面からバージョンアップを試みたのですが、プラグインなどもそのままで、「4.1.1へのバージョンアップ」ボタンを押したところ、画面が真っ白になってしまいました。

    ド素人なりに手動でバージョンアップしてやろうと思い、4.1.1を公式サイトよりダウンロードし、themes、uploads、wp-config.phpを旧バージョンより取り出した後にサーバ内の旧バージョンを全削除。その後4.1.1をアップロードしたのですが、「データベース接続確立エラー」となります。

    wp-config内のDB設定は合っているはずで、サーバ側のDBも正常に動いています。サイトドメインの下位ディレクトリにフォルダを作成し、そこでwpを動かしていたのですが、本サイトの方のDBは正常に稼働しています。wpの方だけが接続エラーとなっています。

    ネット検索して意味も分からないままdefine(‘WP_DEBUG’, true);
    に変更し、ドメインにアクセスすると下記の様なエラーメッセージが・・・

    Warning: mysql_connect() [function.mysql-connect]: Can’t connect to local MySQL server through socket ‘/var/run/mysql/mysql.sock’ (2) in /virtual/www/eccube/html/blog/wp-includes/wp-db.php on line 1416

    さっぱり意味がわからず困っています。
    どなたか御教示をお願い申し上げます。

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • 천궁 메텔

    (@digitmaetel)

    バージョン幾つから、4.1.1 にアップデートしたのでしょう。
    もうすぐ、 4.2 がリリースされます。

    トピック投稿者 fujikana

    (@fujimon)

    맹조さん

    ご回答ありがとうございます。
    3.・・・いくつだったか覚えていないのですが、3シリーズだったはずです。
    なにせ管理画面へはいることも出来ませんし、今は4.1.1のデータをホストにあげた状態です。
    wp-config.phpのデータは合っているはずなのですが・・・。
    through socket ‘/var/run/mysql/mysql.sock’が出ているってことは、
    何らかのデータがどこかで食い違っているんでしょうけど、
    管理画面内から「バージョンアップする」ボタンを押下した後、
    数秒してから何にも動かなくなって画面が真っ白になっちゃいました。

    천궁 메텔

    (@digitmaetel)

    PHPのバージョンはアップさせましたか?

    3.・・・いくつだったか覚えていないのですが、3シリーズだったはずです。

    そうだと。グレードアップの途中で、データベースの更新が不完全に終わっただけだっといえるかもしれません。

    手動でバージョンアップしてやろうと思い

    これが傷口を広げる形になってないといいですが。

    PHPバージョンが 4.1.1 の条件を満たしてなかったと予測されます。

    トピック投稿者 fujikana

    (@fujimon)

    맹조さん

    phpのバージョンは5.2.17p3となっておりますので問題ないかと。
    ソケットエラーがetc・・・という記事を見かけたのですが、
    phpもmysqlも全くわからないので(ToT)

    천궁 메텔

    (@digitmaetel)

    新しいコアやテーマが使用する関数が要求しますので、最低 5.3 以上が必要です。
    WordPress日本語ホームの扉には、

    WordPress 日本語版の動作環境
    PHP バージョン 5.2.4 以上
    MySQL バージョン 5.0 以上

    とありますが 3.2 から直されて無くて当てになりません。

    推奨

    PHP 5.4 or greater
    MySQL 5.5 or greater
    The mod_rewrite Apache module

    トピック投稿者 fujikana

    (@fujimon)

    맹조さん

    確かに3.2からガクンと要件が上がったみたいですが、使っていたのは3.6だか3.9のはずです。
    初めてインストールしたのが3シリーズで、そこから2回程バージョンアップしました。最終的なバージョンは3.6だか3.9だったように思います。ですので要件は問題ないかと思うのです。

    wp-config.phpを削除してドメインへアクセスするとインストールウィザードの画面が立ち上がりますし、これはinstall.phpが動いている証拠ですよね?

    しかし、ウィザード画面で以前のものと同じ接続条件(DB名、パス、ホスト名等)を入力すると、接続エラーとなってしまいます。

    천궁 메텔

    (@digitmaetel)

    5.3 以上に PHP をグレードアップしない状態で、接続エラーに関することというのだと、全部 5.4 以上に変更してしまっているので、わたしには現象の検証を試す術はありません。
    申し訳ないが、一緒に考えてエラー解消のお手伝いとしてできることはこれ以上ありません。

    トピック投稿者 fujikana

    (@fujimon)

    맹조さん

    ご丁寧にご回答下さいましてありがとうございます。
    引き続き頑張ってみたいと思います。

    kjmtsh

    (@kjmtsh)

    wp-config.php の、DB_HOST の値は、どのようになっていますか?

    トピック投稿者 fujikana

    (@fujimon)

    kjmtshさん

    ご回答ありがとうございます!
    wp-config.php のDB_HOSTですが、レンタルサーバから指定されている通りの値です。
    define(‘DB_HOST’, ‘localhost:指定されている数値’);
    となっています。

    それと、管理画面内の「4.1.1にバージョンアップ」のボタン押下後、
    以前のバージョンのファイルがどこまで書きかえられたのか不明ですが、
    それらに原因があるのでしょうか?

    旧バージョンはサーバから削除する前にローカルに落として保存しているのですが、
    4.1.1との差異があまりよくわからないもので・・・。

    どうぞ宜しくお願い申し上げます。

    kjmtsh

    (@kjmtsh)

    ひとつ確認させてください。

    Warning: mysql_connect() [function.mysql-connect]: Can’t connect to local MySQL server through socket ‘/var/run/mysql/mysql.sock’ (2) in /virtual/www/eccube/html/blog/wp-includes/wp-db.php on line 1416

    これは、画面に出力されたものをコピーしたものですか、それともご自分で打ち込んだものですか?

    トピック投稿者 fujikana

    (@fujimon)

    kjmtshさん

    返信ありがとうございます。
    画面に出力されたものをコピペいたしました。
    手打ちによる入力ではございません。

    kjmtsh

    (@kjmtsh)

    了解しました。ありがとうございます。

    この warning でわかることが2つありますので、最初にそれを説明しておきます。

    1. PHP に mysqli ライブラリがないので、かわりに WordPress は mysql ライブラリを使っている
    2. PHP は、Unix ソケットを使って MySQL サーバと通信しようとしているけれども、それを見つけられていない

    1は、WordPress が古い PHP 用でも動作する仕組みを作動させているということを示しますが、これ自体はエラーではありませんし、warning の原因でもありません。load.php の途中までは正常動作をしているとも言えます。wp-config.php を削除した場合の動作とも一致しています。

    2は、そもそも MySQL と通信できていないことを示しているので、WordPress にとっては致命的なエラーです。PHP の構文エラーなどではないので、PHP にとっては「警告」で済んでいますが、WordPress は動きません。動作をシステムに任せたときに、ここでソケットへのパスが間違うというのは通常ありえないので、写し間違えではないかどうかを確認しました。wp-config.php では、たぶん、

    define('DB_HOST', 'localhost:3306');

    となっているのではないかと思いますが (番号は違う可能性もあります)、これを、PHP の mysql ライブラリが、

    localhost:/var/run/mysql/mysql.sock

    と書き換えています。このため、出力では、/var… 以下のパスが出てくるわけです。MySQL サーバが動いていない場合、この mysql.sock は存在しません。あるいは、パスが間違っている場合、mysql.sock が存在しないということで、mysql_connect() 関数が false を返します (エラーにはなりません)。

    サーバの OS が何かわからないので、何とも言えませんが、FreeBSD なら、デフォルトでは、

    /tmp/mysql.sock

    Linux 系統ならば、デフォルトは、

    /var/run/mysqld/mysqld.sock

    となることが多いようです。これらは、設定ファイルの書き換えでどこにでも移動できますし、ファイル名も変更ができますから、サーバ管理者の方針次第でどうとでもなります。

    さて、対策ですが、これだけの情報では何も確実なことは言えないというのが正直なところです。とりあえず…

    1. MySQL サーバを再起動する。
    2. 自前のサーバでないなら、サーバ管理会社に warning を示して、正しいパスを教えてもらう。あるいは、指示を仰ぐ。
    3. 自前のサーバなら、php.ini、my.cnf の設定を確認して、必要なら、修正する。
    4. TCP/IP での接続を試す。

    くらいでしょうか。1は、mysql.sock が何らかの事情で削除されてしまった場合、有効な手段ですが、MySQL デーモンを自分で操作できない場合は無理です。2は、サーバにアクセスできない場合、唯一の手段です。また、最も確実で推奨です。3の場合は、その設定を教えてください。4は WordPress のドキュメントでは触れられていませんが、

    define('DB_HOST', '127.0.0.1:3306');

    とすると、localhost でも TCP/IP で接続を試みます。このポートを LISTEN していなければつながりませんので、サーバの状態が判明するまではお勧めしません。

    トピック投稿者 fujikana

    (@fujimon)

    kjmtshさん

    丁寧極まりないご返信、ありがとうございます。
    無知な私にも何となくですが、warningメッセージの意味が、
    本当に何となく程度ですが理解出来ます。

    サーバはレンタルのもので、ファーストサーバさんにお世話になっています。
    一応ダメ元で、warningメッセージを記述したメールをサポートセンターへ送っておりますが、回答は未だいただいておりません。

    サーバ会社の回答如何ではkjmtshさんの仰る2番の対策を試みてみたいと思います。
    回答結果に基づいて、このフォーラムにて再度ご相談させていただきたいのですが、
    とりあえずはこのまま待機で宜しいでしょうか?

    御面倒おかけして申し訳ございません。

    kjmtsh

    (@kjmtsh)

    本当に何となく程度ですが理解出来ます。

    半分くらいは Google とかで検索してくる人のための情報ですので、わからないとことがあっても問題ありませんです。試しに warning をそのまま入力して検索すると、Yahoo 知恵袋とここが検索上位2つですからね。そちらも fujimon さんかもしれませんが、答えてるのは私じゃありませんので、あしからず。お説教はするのもされるのも好みではありませんので。

    ところで、「ファーストサーバ」というのは、http://www.fsv.jp/ のことですか? 契約形態はどれでしょうか? localhost ということは、専用サーバでしょうか?

    このウェブページでは、MySQL 5.x (x のところは教えてくれないみたいだけど、たぶん0が入る)、PHP 5.3.x って書いてありますけど、5.2.17p3 というのは、どうやって知ったのですか? こちらは、検索すると、OpenBSD のパッケージが引っかかりますが、EC-CUBE のフォーラムへの投稿で、どうやら OS が Linux で、PHP は Apache のモジュールで動いているらいしというところまでわかりました。

    ついでに、

    本サイトの方のDBは正常に稼働しています

    というのは、別アカウントですか? それとも、同じドメインでディレクトリが違うだけですか? 稼働している方の wp-config.php は同じホストを指定していますか?

    とりあえずはこのまま待機で宜しいでしょうか?

    No problem.

15件の返信を表示中 - 1 - 15件目 (全16件中)
  • トピック「4.1へバージョンアップを試みたらデータベース接続確立エラー」には新たに返信することはできません。