データベースに接続出来ない
-
皆さんこんにちは。昨夜までは正常に起動していたのですが、今朝管理画面にログインしようとすると
データベースを選択できません
データベースサーバーに接続することはできましたが (これはユーザー名とパスワードには問題がないということです)、
pm
データベースは選択できませんでした とエラーが出てしまいます。どうしたらよいか教えてください。環境は下記の通りです。Windows10のマシンにXAMPP V3.3.0 を入れてそこでWordPress6.6.1。phpmyadminにはアクセス出来て、確かにそのデータベースはあります。
WordPressの教科書V6対応版で学習をしています。
よろしくお願いします。
- このトピックはnice-guy7762が2ヶ月前に変更しました。
-
wp-config.php
ファイルを開き、指定されているデータベース名を いま一度ご確認ください。あるいは、
wp-config.php
にdefine('WP_DEBUG', true);
を追加して、詳細なエラーメッセージを確認してみてください。また、サーバーによっては「復元」機能が備わっているので、そちらをお使いになり、無事だった時点のバックアップで復元するのもひとつの方法かなと思います。
Setouchi Kotori(@setouchikotori) さん、レスありがとうございました
define(‘WP_DEBUG’, true); を記述したところ
Access denied for user ‘admin’@’localhost’ to database ‘pm’ のエラーが返ってきました。
XAMPPを利用しているため、ローカル環境です。XAMPPには復元機能はあるのでしょうか?
phpmyadminで見ると、pmデータベースはあり、その中のwp_usersテーブルの中に確かにadminはあります。よろしくお願いします。
- この返信は2ヶ月前にnice-guy7762が編集しました。
- この返信は2ヶ月前にnice-guy7762が編集しました。
ボタンのかけ違いがあります。「ユーザ」というものについて、誤解されています。
データが格納されているMySQLのデータベース「pm」にアクセスする権限を持つユーザは、MySQLで定義されるユーザ(同じMySQLサーバにあるデータベース「mysql」に格納されています。)です。それに対して、pmデータベース内のwp_usersテーブルのユーザは、WordPress内部のユーザです。これらは同じ名前であっても別物です。
たとえば、〇〇県教育委員会に山田さんが勤めていて、県教委の人事データベースの閲覧権限があるとしましょう。〇〇県立〇〇高校に山田先生が勤めていたとして、同じ山田だから同じ人事データベースを見る権限があるかというと、そんなことはないですよね。MySQLユーザーのadminさんと、Wordpressユーザーのadminさんは、単なる同姓同名の別人です。
ちなみに、ではデータベースpmについてアクセスする権限を持っているMySQL上のユーザが誰かを調べるには、phpmyadminでデータベース名mysqlにあるdbテーブルを見てください。なお、dbテーブルでなさそうなら、グローバル権限でアクセスしていることになるので、その場合は同じデータベースmysqlのuserテーブルを見てください。
なお、老婆心ながら、ユーザー名がadminなんて、ハッキングしてください宣言してるようなものなので、練習時点から、そんなユーザー名を使う癖はつけない方がいいですよ。
もう一つ、ボタンをかけちがっているような感じを受けましたので、補足します。
「
Access denied for user ‘admin’@’localhost’ to database ‘pm’ のエラーが返ってきました。
XAMPPを利用しているため、ローカル環境です。
」
このようにお書きですが、user ‘admin’@’localhost’のlocalhostはローカル環境であるかどうかとは全く関係のないものなのです。すでに承知されていることでしたら、失礼の段お許しください。そうでないのなら、、この機会に理解されると幸せになれます。
同じサーバマシンに、WordPressというPHPで書かれたプログラム群とそのバックエンドとなるMySQLがインストールされている場合、WordPressがユーザadminでMySQLにアクセスすると、MySQL側から見ると、同じサーバのadminユーザさんからアクセスが来てると識別されるわけですが、その同じマシンだという意味がlocalhostということです。ですから、グローバルに置いた本番環境であっても、同じマシン内にMySQLを置くのであればlocalhostからのアクセスということになります。
mokkosan(@mokkosan) さん、レスありがとうございました
何となくわかった気がするのですが。まず、admin名は、本番サイトではもちろん変えますが、テストサイトでもそうする様にしますね。
それで、phpmyadminのmysqlにあるdbテーブルには見当たらなかったので、mysqlのuserテーブルを見ると、そこには、adminユーザーがあります。ただ、その画面を出すと「サーバ上でいくつかのエラーが検出されました!このウィンドウの一番下を見てください。」とエラーが出ます。一番下を見ると
string 'SELECT * FROM
db
',
NULL,
)
SqlController.php#211: PhpMyAdmin\Sql->executeQueryAndSendQueryResponse(
array,
boolean true,
string 'mysql',
string 'db',
NULL,
NULL,
NULL,
NULL,
NULL,
string '',
NULL,
NULL,
string 'SELECT * FROMdb
',
NULL,
)
Routing.php#192: PhpMyAdmin\Controllers\Sql\SqlController->__invoke(
,
array,
)
index.php#43: PhpMyAdmin\Routing::callControllerForRoute(
,
string '/sql',
,
,
)と表示されます。この画像をアップロードしたいのですが、alt属性が無いと言われてうまくアップロード出来ませんでした。参考サイトはhttp://niceguy.sakura.ne.jp/ ですが、画像を大きく表示できません。
これが原因と関係ないでしょうか。今回の現象は前の晩までは正常に動作していたのですが、翌日開こうとするとエラーが出ました。PCを切る時に確かXAMMPのApacheとMySQLをSTOPする事無く、WordPressの画面が開いたままシャットダウンしました。これによってDBが壊れてしまったと言うことは考えられないでしょうか。よろしくお願いします。
こんにちは。
横からすみません。PCを切る時に確かXAMMPのApacheとMySQLをSTOPする事無く、WordPressの画面が開いたままシャットダウンしました。これによってDBが壊れてしまったと言うことは考えられないでしょうか。
似たような現象が発生した時の対処策をまとめてくださっている方がおられます。
一度ご確認いただければと思います。二点確認させていただきたいのですが、
- MySQLのポートを変更されていませんか?XAMPPのコントロールパネルでMySQLをStartすると、Port(s)列に数字が表示されるはずです。
wp-confing.php
のDB_HOST
定数には何の値を設定されていますか?
話はそれますが、ローカル/テスト用WordPressサイトを簡単に作成できるツールはたくさんありますので、XAMPPでなければならない理由がないのであれば、他のツールも検討してみてもよいかもしれません。
Aki Hamano(@wildworks) さん、レスありがとうございました。まず、ポートですが、特に変えていません。33006です。
wp-confing.php
のDB_HOST
定数は define( ‘DB_HOST’, ‘localhost’ ) の事でしょうか。XAMPPを使っているのは以前から使っており慣れているからです。特にこだわりはありませんので他のツールも見てみます。でも、英語で難しそう。
Yukinobu Asakawa(@yukinobu) さん、レスありがとうございました。その通りやってみましたが、やはり改善されませんでした。
別のPCで同じ環境を作成しましたので、問題になっているPCの復旧はあきらめて、新しいPCで進めようかなと思っています。
まず、ポートですが、特に変えていません。33006です。
MySQLのデフォルトポートは3306であり、XAMPPでもそうだと思います。デフォルトポートの「3306」ではなく「33006」ということで間違いはないですか?
Aki Hamano(@wildworks) さん、レスありがとうございました。失礼しました。ご指摘の通り3306でした。
ご確認ありがとうございます。
別のPCで同じ環境を作成しましたので、問題になっているPCの復旧はあきらめて、新しいPCで進めようかなと思っています。
なるほどですね。
問題のPCも再インストールすれば起動できるようになるかもしれませんが。
あと、今回のようにローカル環境にエラーが発生することもあるので、WordPress バックアップを実施されることをお勧めします。
バックアップにも色んな方法がありますが、「All-in-One WP Migration」というプラグインを使った方法が比較的簡単な方法です。Yukinobu Asakawa(@yukinobu) さん、レスありがとうございました。
「All-in-One WP Migration」は有償版も買って大変重宝し使っております。
- このトピックに返信するにはログインが必要です。