2015-04-28 2 views
1

Я использую 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 
       ] 
      ] 
     ], 

Любая помощь будет оценена!

+0

что делает эту линию следующим образом: example.com/trunk/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection. php: 43 ... какой файл он пытается найти и провалить? Вы уверены, что это UNIX-сокет? – STLMikey

+0

Я обновил вопрос, чтобы включить метод, строка 43: parent :: __ construct ($ dsn, $ user, $ password, $ options); – HappyCoder

ответ

0

Успели получить эту работу, это была установка:

'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' => '/var/lib/mysql/mysql.sock' 
       ] 
      ] 
     ], 
Смежные вопросы