フォーラム

データベース接続確立のエラー (6 件の投稿)

  1. hshindo
    メンバー
    3 years前の投稿 #

    index.phpからwp-config.phpを作成するウィザードで進むと、

    >データベース接続確立のエラー
    >これは wp-config.php ファイルのユーザー名とパスワードが間違っているか、
    >localhost のデータベースサーバーに接続できないかのどちらかを意味します。
    >ホストのデータベースサーバーがダウンしているのかもしれません。

    >ユーザー名とパスワードに間違いはありませんか ?
    >ホスト名に間違いはありませんか ?
    >データベースサーバーは動いていますか ?

    というエラーにてインストールができません。

    wp-config.phpを手動作成してアップロード後、接続しても、
    「エラー:データベースに接続できません」
    という内容で先に進めません。

    ユーザ名・パスワードの問題以外に考えられる原因はないでしょうか?

    環境は以下のとおりです:
    Redhat8
    PHP Version 4.4.7
    MySQL4.1.22

    ターミナル上ではmysqlは起動しているようですが・・・。
    ps ax | grep mysql
    14094 pts/0 S 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/www2.*****.gr.jp.pid
    14121 pts/0 Sl 0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/www2.*****.gr.jp.pid --skip-external-locking --port=3306 --socket=/tmp/mysql.sock

  2. IKEDA Yuriko
    常連回答者
    3 years前の投稿 #

    ユーザ名・パスワードの問題以外に考えられる原因はないでしょうか?

    考えられるのは以下の理由でしょうか。特に、ユーザーを作っていない可能性が大ですね。

    • そもそもMySQL上でユーザー/データベースを作っていない。
    • ホスト名が間違っている (localhost では繋がらないようになっているとか)。

    あと、サーバーを新規設営されたのであれば、PHP 4.4.7 というのはやめた方がいいでしょう。PHP 5.2.6 にするべきです。

  3. hshindo
    メンバー
    3 years前の投稿 #

    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バージョンに関する助言、ありがとうございます。
    かなり前から既に動いているサーバではありますが、検討したいと思います。

  4. IKEDA Yuriko
    常連回答者
    3 years前の投稿 #

    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 ユーザーでのログインを試してみるとどうでしょう??

  5. hshindo
    メンバー
    3 years前の投稿 #

    返信が遅くなりました。
    申し訳ありません。

    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

  6. hshindo
    メンバー
    3 years前の投稿 #

    お世話様です。
    インストールが出来ました。

    SET PASSWORD FOR dbname@localhost = OLD_PASSWORD('パスワード')

    上記コマンドを入力したら、データベースに接続可能になりました。
    lilyfanさまには助けていただき、大変感謝しております。

    どうもありがとうございました。

返信

ログイン しなければ投稿できません。

About this Topic