与数据库Doctrine PDO连接

时间:2013-12-21 21:52:07

标签: php pdo doctrine-orm zend-framework2

我正在使用Zend框架和Doctrine,我正在从localhost转移到我的服务器,但我收到了这个错误。一切都运作良好localy。

Warning: PDO::__construct() [pdo.--construct]: [2002] No such file or directory 
(trying to connect via unix:///tmp/mysql.sock) in /www/webvol19/94/yi8ghefpta7q527/
mywebsite.com/vendor/doctrine/Doctrine/DBAL/Driver/PDOConnection.php on line 36

我的连接设置如下:

// pdo connection definition

'db' => array(
    'driver'         => 'Pdo',
    'dsn'            => 'mysql:dbname=dbname123;host=mysql410.ddd.com',
    'username' => 'user',
    'password' => 'pass121512',
    'driver_options' => array(
        PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
    ),
),

// doctrine connection definition
'doctrine_config' => array (
    'proxy_directory' => APP_PATH 
                         . DIRECTORY_SEPARATOR 
                         . 'data'
                         . DIRECTORY_SEPARATOR
                         . 'Doctrineproxy',
    'proxy_namespace' => 'Doctrineproxy',
    'doctrine_db_conn_params' => array (
        'driver'   => 'pdo_mysql',
        'user'     => 'user',
        'password' => 'pass121512',
        'dbname'   => 'dbname123',
    ),
    'is_dev_mode' => true,
),

我不确定在我的网站名称之前是什么

/www/webvol19/94/yi8ghefpta7q527/

1 个答案:

答案 0 :(得分:1)

您说您从localhost转移到服务器但应用程序仍然连接到localhost。

Doctrine配置包含自己的数据库参数,独立于外部预定义的数据库配置。在您的情况下,您必须指向'doctrine_config'内的主机和(可选)端口:

'doctrine_config' => array (
    ...
    'doctrine_db_conn_params' => array (
        'driver'   => 'pdo_mysql',
        'user'     => 'user',
        'password' => 'pass121512',
        'dbname'   => 'dbname123',
        /* add this */
        'host' => 'mysql410.ddd.com',
        //'port' => 3306
    ),
    ...
),