2016-03-28 11 views
0

MySQLサーバーで迷惑メールをセットアップし、localhost DBを使用して問題を実行するPHP Webサイトを取得しようとしています(コードとMySQLはどちらも同じVagrant VMにあります)。しかし、私はSequel Pro経由でセットアップ・アクセスでき、同じユーザーでDBにアクセスして問合せを実行できます。 Webサイトでは、クエリは完了していません。PHP/Vagrant - ホストDBにアクセスするホスト

のMySQL:

mysql> select db,host,user from mysql.db; 
+-----+-----------+------+ 
| db | host  | user | 
+-----+-----------+------+ 
| ojs | localhost | ojs | 
| ojs | localhost | ojs2 | 
| ojs | localhost | root | 
+-----+-----------+------+ 
3 rows in set (0.00 sec) 

だから、3ユーザーがDBに割り当てられている - 人生を容易にするために、私はすべての権限がYたことを確認するrootを使用。私/etc/mysql/my.cnf

私はskip-internal-lockingコメントアウトとbind-addressをコメントアウトするか、私はブラウザ(のようなユーザーを検証)からクエリを実行しようとすると0.0.0.0

に設定するかしようとしました。私は/var/log/mysql/mysql.logに見て、最後のクエリは次のようになります。クエリが実行されていると私は私のmysqlが接続を行っていることを、確認のよう

160328 23:00:32 127 Connect [email protected] on ojs 
      127 Query SELECT `User`.`id`, `User`.`email`, `User`.`fname`, `User`.`lname`, `User`.`default_phone`, `User`.`default_ext`, `User`.`password`, `User`.`datecreated_ts`, `User`.`lastlogin_ts`, `User`.`last_deliveryaddress_id`, `User`.`last_billingaddress_id`, `User`.`auth_level`, `User`.`no_radio_email` FROM `User` WHERE `User`.`email` = '[email protected]' AND `User`.`password` = '5f4dcc3b5aa765d61d8327deb882cf99' 
      127 Quit 

だからそれが見えます。

私は2日間試してきました。私は何か根本的なものを見逃しています。誰かが正しい方向に私を向けることができますか?私は、問題はMySQLやベイグラントに関連しているとは思わない

答えて

0

、それは(あなたは、クエリからの戻りデータをダンプし、死ぬしようとした?)あなたのPHPコードから来るかもしれない

どちらのWebサーバーと同じサーバ上のMySQLサーバでは、 "bind-address"を変更する必要はありません。それは影響しません。

あなたのウェブにMySQLの接続に関する問題がないように、MySQLにクエリのログが送られています。

問題を簡単に検出するには、新しいPHPファイルを作成して、test_db.phpのようなデータベースをテストし、エラー報告とdisplay_errorsをオンにする必要があると思います。そして

は、私はあなたのクエリは、認証のための選択についてです気づく何が起こるか見て、あなたは、認証に問題がある

が、それはあなたを助けるホープなど、あなたのセッション構成、セッション開始、セッション破棄を、確認してくださいかもしれません!

+0

PHPがデータベースの外部にある場合(つまり、プロダクションDBに正常に接続できる場合)、PHPはデータベースに接続します。 PHPのエラーログにはエラーはなく、ダンプクエリはDBを見つけられないかのように 'false'を返し続けます。しかし、私は見ていきます。ありがとう。 – Bardworx

+0

ファイルの書き込みと分割を強くお勧めします。PDOを使用して接続をテストし、テストファイルを渡すクエリに基づいてmysqlのログを確認してください。 クエリの大文字と小文字もチェックしてください。問題があれば、セクション[mysqld]のmy.cnfを修正してください:lower_case_table_names = 2、さらにバインドアドレスを0.0.0.0に設定して 続編proから同じユーザーで同じクエリを実行できるので、権限を与えても問題ありません。 最後に、PHP(dbname、host、port)からの接続を開始する方法を確認してください。がんばろう!私はあなたに多くを助けることができなかったと思います。 –

関連する問題