こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

centos5 phpでmysqlへ接続できない

使用OSはCentos5でvps上でMysqlのインストールを行いました。

1.yum -y install mysql-server mysql-devel

2.vi /etc/my.cnf
文字コード指定

3./etc/rc.d/init.d/mysqld start
Mysqlを初期化

4.mysql_secure_installration
rootパスワードを設定
anonymousユーザを削除・・・ここで下記のようなエラーになって失敗します。
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
.....Failed!

仕方がなかったので、
5.mysql -u root -p
password:*******

でログインし、testデータベースとanonymousユーザを削除しました。

その後、wordpressをインストールし、wp-config.phpに作成したデータベースとユーザ(パスワードも)を指定して、ブラウザからアクセスしましたが、接続できませんとのエラーになってしまいます。

これは、@以下のホストがlocalhostだからでしょうか?

sshでVPSサーバーにログインしているので、@以下のホストを接続元(つまり、自宅のPCのホスト名もしくはグローバルIP)を指定する必要があるのでしょうか?

/var/log/mysqld.logにもそれらしきログは残っていません。

どなたかアドバイス頂けないでしょうか?

[root@HostName]#mysql -V
mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (i686)

[root@HostName]#nmap localhost

Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2011-02-25 13:51 JST
Interesting ports on localhost.localdomain (127.0.0.1):
Not shown: 1675 closed ports
PORT STATE SERVICE
53/tcp open domain
80/tcp open http
443/tcp open https
953/tcp open rndc
3306/tcp open mysql

Nmap finished: 1 IP address (1 host up) scanned in 1.183 seconds

[root@HostName]#rpm -qa|grep mysql
mysql-server-5.0.77-4.el5_5.4
php-mysql-5.1.6-27.el5_5.3
mysql-devel-5.0.77-4.el5_5.4
mysql-5.0.77-4.el5_5.4

自宅pc----sshログイン----vpsサーバー
※自宅pcは、fedora14です。

投稿日時 - 2011-02-25 13:53:40

QNo.6549304

すぐに回答ほしいです

質問者が選んだベストアンサー

こんばんは。

>プログラム、DBともにリモート先のサーバー上で稼働しています。
ですか・・・。

それじゃ、プログラム対MySQLはローカル同士ですね・・・。
SSHからコンソールでMySQLに接続できているのなら、疑うのはプログラムしかないかと・・・。

投稿日時 - 2011-02-25 21:06:55

補足

taka451213さん

こんばんは。
お世話になっております。

先ほど、下記に記載した方法を試してみました。そうしましたら、無事に接続できました。

なぜですかね、よくわかりません。笑


とりあえず、解決しましたこと嬉しく思っています。

この度は、ご回答頂きましてありがとうございました。

投稿日時 - 2011-02-26 00:16:07

お礼

taka451213さん

こんばんは。
お世話になっております。

再度、ご回答頂きありがとうございます。

>プログラム対MySQLはローカル同士ですね・・・。
そうなりますね。
だとしましたら、#1さんの回答にもあります、php側に問題がありそうなのですが...。

なんとなくですが。

先ほどから、ググって調査していたのですが、/etc/my.cnfに記述されているmysqlソケットのパスをphp.iniでも記述する必要があるっていう記事を見つけました。
具体的には、php.iniのデフォルトでは、mysql.default_socketのパラメータがnull値なんですが、そこを明示的に示すと上手くいくようなんですよ。

しばし外出中ですので、帰宅次第ちょっとそちらを試してみます。

投稿日時 - 2011-02-25 21:35:24

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(5)

ANo.4

こんばんは。

プログラムはローカル?
接続先DBがリモート?
ちょっと環境がわかりませんが、DB側のポートは開いてるんですかね?
(iptables)

投稿日時 - 2011-02-25 18:17:41

お礼

iptablesは、動かしていません。
selinuxも入っていないので、ポートでブロックされてはいないと思います。

プログラム、DBともにリモート先のサーバー上で稼働しています。

php.ini上でもポート番号でデフォルト指定になっていたので、他のポートを使用しているとは考えにくいと判断したのですが、よくわかりません。

引き続き、よろしくお願い致します。

投稿日時 - 2011-02-25 20:12:09

ANo.3

あっ、申し訳ない。
php-mysqlは入ってるんですね。

あとは、phpinfoで確認してみるとか。
<?php
phpinfo();
?>

投稿日時 - 2011-02-25 18:02:40

お礼

wingstarさん

ご回答頂きましてありがとうございます。
上記をindex.phpとして作成し、ブラウザで表示してみましたが正常に表示されます。mysqlのモジュールも追加されていることが確認できました。

引き続き、よろしくお願い致します。

投稿日時 - 2011-02-25 20:05:40

ANo.2

php-mysql入ってる?

# rpm -q php-mysql

入って無ければインストール。

# yum -y install php-mysql

投稿日時 - 2011-02-25 17:46:58

ANo.1

php.ini側でMySQL接続のライブラリは有効にしているのか?

投稿日時 - 2011-02-25 17:17:00

お礼

oktubureroさん

ご回答ありがとうございます。

具体的に、ライブラリを有効にするパラメータはphp.iniのどこでしょうか?

教えて頂ければ幸いです。

投稿日時 - 2011-02-25 20:13:46

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-