Doctrine PDOException 没有这样的文件或目录
Doctrine PDOException No such file or directory
我正在使用带 DoctrineOrm 的 ZF2,并且最近在我的 mac 运行 OSX (Yasomite) 上使用 vagrant 安装了一个本地环境。
除了我在尝试使用 Doctrine 供应商工具时出现以下错误外,一切都按预期进行:
./vendor/bin/doctrine-module orm:schema-tool:create --dump-sql
错误为:
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
No such file or directory' in
example.com/trunk/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
编辑
来自违规 class 的第 43 行:parent::__construct($dsn, $user, $password, $options);
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);
}
}
当我从 catch 语句中转储变量时,它们符合预期。
我可以通过管理员访问 mysql 位置: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'
]
]
],
我忍不住认为我需要做同样的事情,但我真的不确定该怎么做。
编辑:
通过 SSH 连接到 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
]
]
],
如有任何帮助,我们将不胜感激!
设法让它工作,这是一个设置:
'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'
]
]
],
我正在使用带 DoctrineOrm 的 ZF2,并且最近在我的 mac 运行 OSX (Yasomite) 上使用 vagrant 安装了一个本地环境。
除了我在尝试使用 Doctrine 供应商工具时出现以下错误外,一切都按预期进行:
./vendor/bin/doctrine-module orm:schema-tool:create --dump-sql
错误为:
Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] No such file or directory' in example.com/trunk/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:43
编辑
来自违规 class 的第 43 行:parent::__construct($dsn, $user, $password, $options);
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);
}
}
当我从 catch 语句中转储变量时,它们符合预期。
我可以通过管理员访问 mysql 位置: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'
]
]
],
我忍不住认为我需要做同样的事情,但我真的不确定该怎么做。
编辑:
通过 SSH 连接到 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
]
]
],
如有任何帮助,我们将不胜感激!
设法让它工作,这是一个设置:
'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'
]
]
],