如何使用Doctrine为Symfony2建立数据库


How do I set up a database for Symfony2 using Doctrine?

我正在学习Symfony的书,并学习了关于处理数据库的章节。我有几个问题,似乎找不到答案。

我只是遵循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时出现的吗

经过长时间的搜索,我找到了它。正如评论中所指出的,它与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`

数据库真的创建了。

Symfony没有安装mysql,我假设您在灯堆栈中工作。

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