Я настраиваю брандмауэр с сервером MySQL и пытаюсь заставить сайт PHP использовать локальную БД и работать в проблемах (Оба, код и MySQL находятся на одной и той же Vagrant VM). Тем не менее, у меня есть установочный доступ через Sequel Pro и вы можете получить доступ к БД с тем же пользователем и выполнить запросы. На веб-сайте запросы не заполняются.PHP/Vagrant - Host Accessing Host Host
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 [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
Так выглядит запрос работает, и я проверил, что мой mysql
делает соединение.
Я пытался в течение двух дней, и я начинаю с того, что мне не хватает чего-то фундаментального. Может кто-нибудь указать мне в правильном направлении, пожалуйста?
PHP будет подключаться к базе данных, если ее вне сервера (т. Е. Я могу подключиться к нашей производственной БД). Ошибок в журнале ошибок на PHP нет, а запросы на сброс данных возвращают 'false', как если бы он не обнаружил БД. Однако я буду продолжать искать. Благодарю. – Bardworx
Очень рекомендую вам писать, а отдельный файл использует PDO для проверки соединения и проверяет журнал mysql на основе вашего запроса, который вы передаете тестовому файлу. Также проверьте верхний и нижний регистр вашего запроса, если это проблема, измените my.cnf в разделе [mysqld], добавьте эту строку: lower_case_table_names = 2, а также верните адрес связывания 0.0.0.0 для проверки Из продолжения pro вы можете запускать один и тот же запрос с одним и тем же пользователем, поэтому предоставление привилегий в порядке. И последний раз проверьте, как вы инициировали соединение с PHP (dbname, host, port). Удачи! Думаю, я не мог вам помочь. –