2014-09-03 3 views
0

Я следую книге Symfony и прибыл в the chapter on dealing with the database. У меня есть несколько вопросов, и я не могу найти ответ.Как создать базу данных для Symfony2 с помощью Doctrine?

Я просто следую файл 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 

I появляется следующее сообщение об ошибке:

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

у меня есть несколько вопросов:

  • Как исправить это
  • Где находится сервер базы данных? Пришло ли это, когда я установил Symfony2 вместе с Composer?
+0

установлена ​​mysql? – dave

+0

@dave У меня установлен MAMP, протестирован MySQL-сервер, и он работает. – Veltar

ответ

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 линия не там, просто добавьте его. Затем попытался выполнить ту же команду в терминале, которая дала этот результат:

Created database for connection named `myproject` 

И база данных была действительно создана.

+0

Для тех, кто до сих пор не может решить эту проблему, попробуйте включить параметр «Разрешить доступ к сети MySQL» в настройках MAMP. – Boykodev

1

Symfony не устанавливает mysql Предполагаю, что вы работаете в стеке лампы.

Если я хорошо помню, это случилось со мной однажды, и я изменил database_host: 127.0.0.1 на localhost, и с тех пор все сработало.

+0

У меня есть рабочая MAMP-установка. Просто обновил database_host до localhost. Ошибка изменилась на: Не удалось создать базу данных для соединения с именем 'myproject' SQLSTATE [HY000] [2002] Нет такого файла или каталога – Veltar

+0

Используете ли вы стандартный порт mysql 3306 в MAMP? Если нет, вы должны изменить database_port: нуль в любой порт, который вы используете в MAMP –

+0

Настройки в MAMP являются следующие: Хост \t локальный Порт Пользователь \t корень Пароль \t корень И это в параметры.YML database_driver: PDO_MySQL database_host: локальный database_port: 3306 database_name: MyProject database_user: корень database_password: корень – Veltar

Смежные вопросы