Хост в конфигурации db должен указывать на сервер базы данных.localhost
или 127.0.0.1
- это ссылки на базу данных, находящуюся на том же сервере, что и приложение.В среде хостинга у вас обычно есть сервер на удаленном сервере, поэтому хост должен быть либо IP-адресом, либо DNS-именем хоста.
Проверьте второй вопрос в FAQ .
Обновление
Мой плохой, то есть о DSN, а не DNS.Тем не менее, вот в чем проблема.Директива resources.db.params.host
в конфигурации ожидает ссылку на сервер базы данных, а myprocess.db
не является ни DNS-именем, ни IP-адресом.Вам, вероятно, нужен локальный хост для этого, но тогда вам все равно будет не хватать DSN.В настоящее время я не вижу, как вы устанавливаете DSN в PHP для MySQL и, следовательно, Zend.Подробнее об этом MYSQL DSN .
Обновление 2 Вы правильно указали сокет и это связано.Я думаю, что проблема в адаптере Zend PDO_MYSQL.Zend направляет это непосредственно в PDO ().Это дополнительные параметры конфигурации, о которых я упоминал выше (MYSQL DSN), которых нет в реализации Zend.Хотя адаптер PDO_MYSQL переопределяет метод connect (), он не ищет эти параметры.
Однако есть другой адаптер mysqli
, который подключается напрямую к MySQL и фактически так же, как ваш тест с mysql_connect()
,Вместо этого он использует mysqli_real_connect()
, и это соединение может понимать имя процесса для сокета.Итак, вы можете попробовать следующее в вашей конфигурации:
resources.db.adapter = "mysqli"