Я использую ZF2 с DoctrineOrm и недавно установил локальную среду, используя брандмауэр на моем Mac, работающем под управлением OSX (Yasomite).Doctrine PDOException Нет такого файла или каталога
Все работает, как ожидалось, кроме я получаю следующее сообщение об ошибке при попытке использовать Doctrine инструменты производителя:
./vendor/bin/doctrine-module orm:schema-tool:create --dump-sql
Ошибка читает:
неперехваченное исключение «PDOException» с сообщением " SQLSTATE [HY000] [2002] Нет такого файла или каталога 'в example.com/trunk/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
EDIT
Line 43 из класса нарушившего: родительский :: __ конструкта ($ DSn $, $ пользователя, $ пароля, $ вариантов);
class PDOConnection extends PDO implements Connection, ServerInfoAwareConnection
{
public function __construct($dsn, $user = null, $password = null, array $options = null)
{
try {
parent::__construct($dsn, $user, $password, $options);
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, array('Doctrine\DBAL\Driver\PDOStatement', array()));
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (\PDOException $exception) {
throw new PDOException($exception);
}
}
Когда я сбросить переменные из заявления поймать, они, как и ожидалось.
я могу получить доступ к местоположению MySQL через adminer: http://192.168..../adminer/
и веб-сайт нагрузки, хотя и с ошибками, как я не могу создать БД.
Я помню, когда я первоначально настроил свою местную среду MAMP, имеющую подобную проблему и пришлось добавить следующую строку в настройки PDO:
/Applications/MAMP/tmp/mysql/mysql.sock
'connection' => [
'orm_default' => [
'driverClass' =>'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => [
'host' => 'localhost',
'port' => '3306',
'user' => 'games_cloud',
'password' => 'games_cloud',
'dbname' => 'games_cloud',
'unix_socket' => '/Applications/MAMP/tmp/mysql/mysql.sock'
]
]
],
Я не могу не думать, что мне нужно сделать то же самое, однако я не совсем уверен, как это сделать.
EDIT:
SSHing в VBOX я вижу сокет находится здесь: /var/lib/mysql/mysql.sock
Что бы правильные настройки будут подключаться к этому? Не работает:
'connection' => [
'orm_default' => [
'driverClass' =>'Doctrine\DBAL\Driver\PDOMySql\Driver',
'params' => [
'host' => '192.168.56.101/',
'port' => '3306',
'user' => 'games_cloud',
'password' => 'games_cloud',
'dbname' => 'games_cloud',
'unix_socket' => '/var/lib/mysql/mysql.sock' //To use Doctrine Entity Generator
]
]
],
Любая помощь будет оценена!
что делает эту линию следующим образом: example.com/trunk/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection. php: 43 ... какой файл он пытается найти и провалить? Вы уверены, что это UNIX-сокет? – STLMikey
Я обновил вопрос, чтобы включить метод, строка 43: parent :: __ construct ($ dsn, $ user, $ password, $ options); – HappyCoder