PHP / Vagrant - 主机访问主机数据库

时间:2016-03-28 23:04:57

标签: php mysql vagrant

我使用MySQL服务器设置vagrant并尝试让PHP网站使用localhost数据库并运行问题(两者,代码和MySQL都在同一个Vagrant VM上)。但是,我通过Sequel Pro进行设置访问,可以使用相同的用户访问数据库并运行查询。在网站上,查询尚未完成。

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位用户分配给数据库 - 为了简化生活,我使用root确保所有权限均为Y

在我的/etc/mysql/my.cnf我评论了skip-internal-locking并尝试发表评论bind-address或将其设为0.0.0.0

当我尝试从浏览器运行查询时(比如验证用户)。我查看/var/log/mysql/mysql.log,最后一个查询是:

160328 23:00:32   127 Connect   root@localhost 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` = 'something@gmail.com' AND `User`.`password` = '5f4dcc3b5aa765d61d8327deb882cf99'
          127 Quit  

所以看起来查询正在运行并且我检查了我的mysql正在建立连接。

我已经尝试了两天而且我开始缺少一些基本的东西。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我不认为问题与MySQL或Vagrant有关,它可能来自您的PHP代码(您是否尝试转储并从查询中删除返回数据?)

您的Web服务器和MySQL服务器都在同一台服务器上,因此" bind-address"不需要改变。它不会影响。

您有一个发送到MySQL的查询日志,因此您的Web和MySQL之间的连接没有问题。

为了更容易地检测问题,我认为您应该创建一个新的PHP文件来测试您的数据库,例如test_db.php,打开错误报告和display_errors。看看会发生什么

我注意到您的查询是关于身份验证的选择,因此您可能遇到身份验证问题,检查会话配置,会话启动,会话破坏等。

希望对你有所帮助!