2009-02-09 3 views
1

Это конкретный вариант проблемы «не могу подключиться». В моем случае, я просто создать два виртуальных хостов в моей httpd.conf прослушивает порт 80. Заявление выглядит следующим образом:Почему Wordpress неожиданно подключается к серверу базы данных MySQL, когда я обновляю хост от «localhost» до «mydomain.com»?

 
NameVirtualHost *:80 

<VirtualHost *:80> 
    ServerName site1.dev 
    DocumentRoot /www/site1 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName site2.dev 
    DocumentRoot /www/site2 
</VirtualHost> 

Так от моего понимания, http://localhost и http://site1.dev теперь обе карты, чтобы «/ WWW/site1/"и, конечно, http://site2.dev отображает к своей директории.

Это все хорошо и хорошо. У меня есть установка Wordpress, с которой я играю в настоящее время в домене site2.dev. Я пытаюсь настроить его для работы с базой данных MySQL, которую я только что настроил, которая имеет учетную запись «mysql» для «localhost». Поэтому в конфигурации для Wordpress я ввел это имя пользователя и имя хоста как «localhost». Это не работает, поэтому, играя с ним какое-то время, я пытаюсь изменить имя хоста на «site2.dev», и внезапно он работает нормально.

Что здесь происходит? Я понимаю, что мои виртуальные хосты настроены, но я думал, что они слушают порт 80, а не порт 3306, что и использует MySQL, поэтому почему все это имеет значение? Я уверен, что есть простое объяснение, поэтому, надеюсь, кто-то может просветить меня.

ответ

4

Вероятный подозреваемый - это ваша конфигурация контроля доступа MySQL. yourhost.foo и localhost совершенно разные, насколько это известно, и это всегда кусает людей. Если записи таблицы MySQL MySQL существуют для WP с хостом, указанным на yourhost.foo, но не localhost, то в этом проблема.

+0

Можете ли вы подробно остановиться на этом? Что именно вы подразумеваете под конфигурацией контроля доступа MySQL и почему два домена различны, насколько это важно? – Bialecki

+0

Я не думаю, что в таблицах WP есть записи, которые ссылаются на один домен по сравнению с другим, потому что я ничего не менял из резервной копии в реальном времени до тех пор, пока не получил эту работу, но это хороший момент. – Bialecki

+0

Это не о чем-либо в WP. MySQL имеет базу данных, называемую mysql, с таблицами в ней, которые определяют, что пользователи могут подключить к ней и что они могут делать. Об этом говорит весь синтаксис MySQL GRANT PRIVILEGE; вы должны, вероятно, изучить его и на выходе mysqldump mysql. – chaos

0

Вы редактировали файл/etc/hosts как часть настройки виртуальных хостов? Возможно, вы удалили запись «localhost» при аварии.

+0

Не изменил файл hosts на этом этапе. У него есть две строки в нем, отображающие localhost и site2.dev до 127.0.0.1. – Bialecki

0

Поскольку ваша БД не прослушивает интерфейс обратной связи (localhost).