Мне нужно перенести большое приложение PHP с базой данных PostgreSQL в Rails. Это OS X Lion Macbook Pro, используя существующую установку Apache + PHP.OS X Lion + PHP + PostgreSQL, pg_connect ничего не возвращает
Я установил PostgreSQL через Homebrew. Предположим, что хост является «localhost», имя пользователя «my_username», база данных по умолчанию - «my_db». Пароль пуст. Вот результат:
я могу получить доступ к базе данных просто отлично из командной строки с
psql -h localhost -U my_username -p 5432 my_db
Нет проблем. Это также работает:
psql -U my_username my_db
И никаких проблем. И я могу легко добраться до базы данных, используя Rails, с этими настройками:
adapter: postgresql
encoding: sql_ascii
template: template0
database: my_db
pool: 5
username: my_username
password:
Это все работает нормально. Но в PHP, когда я делаю
pg_connect("host=localhost port=5432 dbname=my_db user=my_username") or die(pg_last_error());
Я получаю сообщение:
LANG_FATAL_ERROR: LANG_DB_COULD_NOT_CONNECT
Access denied for user 'my_username'@'localhost' (using password: YES)
И если удалить "хост =" от линии, в результате чего:
pg_connect("port=5432 dbname=my_db user=my_username") or die(pg_last_error());
или
pg_connect("dbname=my_db user=my_username") or die(pg_last_error());
Я ничего не понимаю. pg_connect возвращает false, указывая на отсутствие соединения, но ошибок нет! pg_last_error() ничего не возвращает.
Я также попытался добавить пароль = '' в строку соединения, без результатов.
Я очень старался найти ссылку на эту проблему в Stack Overflow, Google и т. Д. И не повезло. Есть несколько вопросов с похожими заголовками в Stack Overflow, но не для этой конкретной проблемы. Все, что я нашел в «Сети», должно было скомпилировать pgsql.so для себя и убедиться, что расширение указано в php.ini. Я сделал это с нулевыми результатами.
Очевидно, что это не проблема с самим PostgreSQL, а что-то связанное с PHP.
Пожалуйста, помогите. Благодарю.
Я знаю, что это похоже на сообщение об ошибке MySQL. Но посмотрите еще раз на PHP: вызываемая функция - pg_connect().Он не имеет ничего общего с MySQL. Тем не менее, я все-таки выяснил это. Спасибо за попытку. –
@ LonnyEachus «В конце концов я все выяснил, хотя ...« Конечно, было бы хорошо, если бы вы поделились с остальными из нас! В конце концов, это то, о чем вы просите нас, верно? –