ユーザ名・パスワードの問題以外に考えられる原因はないでしょうか?
考えられるのは以下の理由でしょうか。特に、ユーザーを作っていない可能性が大ですね。
- そもそもMySQL上でユーザー/データベースを作っていない。
- ホスト名が間違っている (localhost では繋がらないようになっているとか)。
あと、サーバーを新規設営されたのであれば、PHP 4.4.7 というのはやめた方がいいでしょう。PHP 5.2.6 にするべきです。
lilyfanさま
返信ありがとうございます。
ユーザ名とデータベースですか。
MySQLビギナーなので理解が足りないのかもしれません。
mysql> show databases;
+———–+
| Database |
+———–+
| dbname |
| mysql |
| test |
+———–+
mysql> select user();
+—————-+
| user() |
+—————-+
| root@localhost |
+—————-+
mysql> use dbname;
Database changed
mysql> select * from user;
ERROR 1146 (42S02): Table ‘dbname.user’ doesn’t exist
上記のようなエラーが出ます。
ユーザが追加されていない、ということでしょうか?
grant all privileges on dbname.* to dbname@localhost identified by ‘password’;
でユーザを追加したつもりになっていましたが・・・
※PHPバージョンに関する助言、ありがとうございます。
かなり前から既に動いているサーバではありますが、検討したいと思います。
mysql> select user();
+—————-+
| user() |
+—————-+
| root@localhost |
+—————-+
これは現在のユーザーを表示しているだけです。root ユーザーで接続しているわけですね 😉
mysql> select * from user;
ERROR 1146 (42S02): Table ‘dbname.user’ doesn’t exist
これは dbname データベースの user テーブルを表示させているだけですよね。dbname データベースがどういう構造をしているのかは知りませんが、少なくとも MySQL のユーザーを管理しているものではありません。
grant all privileges on dbname.* to dbname@localhost identified by ‘password’;
ユーザーの追加はこれでよいはずです。all privileges というのはちょっと危ない気もしますが、まあいいでしょう。
mysql コマンドラインにて、dbname ユーザーでのログインを試してみるとどうでしょう??
返信が遅くなりました。
申し訳ありません。
mysql コマンドラインにて、dbname ユーザーでのログインも試してみました。
下記のように表示されます。
[root@server ~]# /usr/local/mysql/bin/mysql -u dbname -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 101 to server version: 4.1.22-log
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql> select user();
+———————+
| user() |
+———————+
| dbname@localhost |
+———————+
1 row in set (0.00 sec)
mysql> use dbname;
Database changed
mysql> show tables;
+———————+
| Tables_in_dbname |
+———————+
| addrbook |
+———————+
1 row in set (0.00 sec)
以上のように表示されます。
一応dbnameというユーザとデータベースは存在しているようです。
PHPでもデータベースとの接続に失敗するので、何か別の問題でしょうか。
エラー内容:
Warning: mysql_connect() [function.mysql-connect]: Client does not support authentication protocol requested by server; consider upgrading MySQL client in /home/*****/dbtest.php on line 14
データベースの接続でエラーが発生しました
PHPの該当行:
$db = mysql_connect(“$host”, “$user”, “$passwd”);
phpinfoの内容:
Configure Command ‘./configure’ ‘–with-apxs’ ‘–with-mod_charset’ ‘–with-config-file-path=/etc/httpd/conf’ ‘–enable-safe-mode’ ‘–enable-memory-limit’ ‘–enable-zend-multibyte’ ‘–with-zlib’ ‘–enable-mbstring’ ‘–enable-sysvmsg’ ‘–enable-sysvsem’ ‘–enable-sysvshm’ ‘–with-ibm-db2=/opt/IBM/db2/V8.1’ ‘–with-xmlrpc’ ‘–with-gd’ ‘–with-jpeg-dir’ ‘–with-png-dir’ ‘–with-xpm-dir’ ‘–with-mysql’
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version 3.23.49
MYSQL_MODULE_TYPE builtin
MYSQL_SOCKET /tmp/mysql.sock
MYSQL_INCLUDE no value
MYSQL_LIBS no value
お世話様です。
インストールが出来ました。
SET PASSWORD FOR dbname@localhost = OLD_PASSWORD(‘パスワード’)
上記コマンドを入力したら、データベースに接続可能になりました。
lilyfanさまには助けていただき、大変感謝しております。
どうもありがとうございました。
WordPressインストールのための環境を構築し
MacOS10.6の自社サーバにインストール開始すると下記のメッセージがでます。
>データベース接続確立のエラー
>これは wp-config.php ファイルのユーザー名とパスワードが間違っているか、
>localhost のデータベースサーバーに接続できないかのどちらかを意味します。
>ホストのデータベースサーバーがダウンしているのかもしれません。
wp-config.phpを何回も確認しましたが結果は同じ何が原因しているのかまったく分からず
ネットをググルとMacにWordPressインストール紹介サイトが見つかりましたので
ApacheからMySQL,PHPの設定を再設定していると
socketの設定というのがありこれお設定するとWordPressがインストールできるようになりました。
これはWordPressインストールの際にでるエラーメッセージとはまったく関係無いことがはじめてわかりましたので初心者の方は参考にしてください。
インストールエラーのときにコードとかでもう少し解決につながる具体的なメッセージを要望します。