如何使用Doctrine为Symfony2设置数据库?

时间:2014-09-03 16:54:00

标签: php symfony doctrine-orm doctrine

我正在关注Symfony的书,并于the chapter on dealing with the database到达。我有几个问题,似乎无法找到答案。

我只是关注我看起来像这样的(自动生成的)

的parameters.yml文件
parameters:
    database_driver: pdo_mysql
    database_host: 127.0.0.1
    database_port: null
    database_name: myproject
    database_user: root
    database_password: null
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    locale: en
    secret: ThisTokenIsNotSoSecretChangeIt
    debug_toolbar: true
    debug_redirects: false
    use_assetic_controller: true

然后我前往终点站并输入:

php app/console doctrine:database:create

我收到以下错误:

Could not create database for connection named `myproject`
SQLSTATE[HY000] [2002] Connection refused

我有几个问题:

  • 如何解决此问题
  • 数据库服务器在哪里?当我用Composer安装Symfony2时,它出现了吗?

2 个答案:

答案 0 :(得分:3)

经过长时间的搜索,我发现了它。它与mysql.default_socket有关,正如评论中所指出的那样。

MAMP向我展示了插座

':/Applications/MAMP/tmp/mysql/mysql.sock'

在做了一些搜索之后,我发现套接字可以在config.yml中设置,这里:

doctrine:
  dbal:
    driver:   "%database_driver%"
    [...]
    unix_socket: "/Applications/MAMP/tmp/mysql/mysql.sock"
    [...]

如果没有unix_socket行,只需添加即可。然后尝试在Terminal中执行相同的命令,结果为:

Created database for connection named `myproject`

真正创建了数据库。

答案 1 :(得分:1)

Symfony没有安装mysql我假设您正在使用灯堆。

如果我记得很清楚它发生在我身上,我将database_host:127.0.0.1更改为localhost,从那以后效果很好。