1

Тема: Не могу создать БД через доктрину

Всем привет)

В симфонии я новичок, поэтому тапками прошу не кидаться default/smile

Имеется:
- PhpStorm 2016.2 с плагином симфонии
- Symfony 2.8
- AMPPS (php 7.0, mysql 5.6)

Проблема: не могу через консоль создать БД. Выполняю doctrine:database:create и получаю

[Doctrine\DBAL\Exception\ConnectionException]                                
An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)                                   
                                                                   
[Doctrine\DBAL\Driver\PDOException]                                          
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
                                                                               
[PDOException]                                                               
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)

При этом, сам phpstorm mysql видит и подключается успешно

config.yml :

doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver:   "%database_driver%"
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8
                server_version: 5.6

parameters.yml :

# This file is auto-generated during the composer install
parameters:
    database_host: 127.0.0.1
    database_port: 3306
    database_name: ~
    database_user: root
    database_password: mysql

    mailer_transport: smtpa
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null

    secret: secretkey
    locale: ru

логин и пароль (root и mysql) стоят по дефолту в AMPPS

ОС Windows

2

Re: Не могу создать БД через доктрину

создайте обычного пользователя с доступом к базе данных. Может не пускать из-за того что под рутом пытаетесь зайти.

PS: Ну и пароль да, жжет....

3

Re: Не могу создать БД через доктрину

Заменил параметр %database_driver% в конфиге на pdo_mysql (параметр не был определен в parameters.yml) и добавил нового пользователя с доступом к БД (admin-admin)

ничего не изменилось, все равно выдает ошибку

[Doctrine\DBAL\Exception\ConnectionException]                                
  An exception occured in driver: SQLSTATE[HY000] [1045] Access denied for us  
  er 'root'@'localhost' (using password: NO)                                   
                                                                               

                                                                               
  [Doctrine\DBAL\Driver\PDOException]                                          
  SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using pas  
  sword: NO)                                                                   
                                                                               

                                                                               
  [PDOException]                                                               
  SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using pas  
  sword: NO) 

при чем как и раньше 'root'@'localhost' ..

4

Re: Не могу создать БД через доктрину

Кеш в Симфони после изменения конфига сбросить не забыли?

5

Re: Не могу создать БД через доктрину

Если вы про app cache:clear то сделал, так же клацнул на синхронизацию в phpstrom

====
Пробовал создать новый проект и с нуля попробовать, но выдает ошибку

cURL error 60: SSL certificate problem: unable to get local issuer certific ate [GuzzleHttp\Ring\Exception\RingException] cURL error 60: SSL certificate problem: unable to get local issuer certific ate new   [ ]

что за..?

6

Re: Не могу создать БД через доктрину

blown пишет:

Если вы про app cache:clear то сделал

Тогда по всему выходит, что конфиг ваш parameters.yml не читает. В самом начале файла конфига есть тег imports, и parameters.yml должен быть в одном из импортов.

Проблему с отсутствием сертификата можно решить например так:
https://laracasts.com/discuss/channels/ … ertificate
(смотреть в середине первой страницы комментарий Sven0188). Еще можно отрубить ssl полностью, например как здесь:
http://stackoverflow.com/questions/2092 … completely
Но идея не самая лучшая, лучше подкинуть сертификат.

7 Отредактировано blown (2016-08-19 08:18:32)

Re: Не могу создать БД через доктрину

С сертификатом проблема решена, спасибо большое!))

В самом начале конфига прописано:

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }

UPD
вот весь конфиг, мб поможет:

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }

framework:
    #esi:             ~
    translator:      { fallbacks: ["%locale%"] }
    secret:          "%secret%"
    router:
        resource: "%kernel.root_dir%/config/routing.yml"
        strict_requirements: ~
    form:            ~
    csrf_protection: ~
    validation:      { enable_annotations: true }
    #serializer:      { enable_annotations: true }
    templating:
        engines: ['twig']
    default_locale:  "%locale%"
    trusted_hosts:   ~
    trusted_proxies: ~
    session:
        # handler_id set to null will use default session handler from php.ini
        handler_id:  ~
    fragments:       ~
    http_method_override: true

# Twig Configuration
twig:
    debug:            "%kernel.debug%"
    strict_variables: "%kernel.debug%"

# Doctrine Configuration
doctrine:
    dbal:
        default_connection: default
        connections:
            default:
                driver:   pdo_mysql
                host:     "%database_host%"
                port:     "%database_port%"
                dbname:   "%database_name%"
                user:     "%database_user%"
                password: "%database_password%"
                charset:  UTF8
                server_version: 5.6.30
        # if using pdo_sqlite as your database driver:
        #   1. add the path in parameters.yml
        #     e.g. database_path: "%kernel.root_dir%/data/data.db3"
        #   2. Uncomment database_path in parameters.yml.dist
        #   3. Uncomment next line:c
        #     path:     "%database_path%"

    orm:
        auto_generate_proxy_classes: "%kernel.debug%"
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true

# Swiftmailer Configuration
#swiftmailer:
#    transport: "%mailer_transport%"
#    host:      "%mailer_host%"
#    username:  "%mailer_user%"
#    password:  "%mailer_password%"
#    spool:     { type: memory }

8

Re: Не могу создать БД через доктрину

так в чем причина, никто не знает? :с

9

Re: Не могу создать БД через доктрину

Причину никто знать не может, она у вас индивидуальная.
В конфигурации никаких проблем не наблюдается.
Судя по тому, что ошибки продолжают сыпаться с указанием 'root'@'localhost', ваш конфиг фреймворк либо не читает, либо где-то «ниже» перекрывается введенная вами в parameters.yml информация.
Гадать, что где и как могло произойти можно долго, и это непродуктивно. Здесь куда эффективнее будет обычная рабочая отладка. Добавьте "-vvv" к консольной команде и получите трейс, возможно он даст вам больше информации, что происходит.
А еще лучше откройте вебморду этого проекта в дев-режиме, она должна встретить вас теми же ошибками про отсутствие коннекта к базе, полноценным трейсом и дев-панелью с профайлером.

10

Re: Не могу создать БД через доктрину

Попробуй указать путь к mysqld.sock. Недавно похожая проблема была.

doctrine:
    dbal:
        unix_socket: /var/run/mysqld/mysqld.sock

11

Re: Не могу создать БД через доктрину

by25 пишет:

Попробуй указать путь к mysqld.sock

На Винде, угу. default/smile

by25 пишет:

Недавно похожая проблема была

Тут нет похожести. «Похожая проблема» обычно связана с путаницей между 127.0.0.1 и localhost и известна, но здесь в принципе игнорируется информация из parameters.yml. При условии, что кеш действительно сбрасывается (а консольные команды выполняются в дев-режиме по-умолчанию, и кеш там после изменений сбрасывается сам), здесь явно какая-то индивидуальная проблема.