Symfony 4.2 не подключается к Microsoft SQL Server - PullRequest
0 голосов
/ 04 января 2019

Я настраиваю новый проект на Symfony 4.2 и пытаюсь подключиться к Microsoft SQL Server в качестве базы данных, поэтому у меня есть следующие файлы:

/ config / packages /doctrine.yaml:

parameters:
    # Adds a fallback DATABASE_URL if the env var is not set.
    # This allows you to run cache:warmup even if your
    # environment variables are not available yet.
    # You should not need to change this value.
    env(DATABASE_URL): ''

doctrine:
    dbal:
        # configure these for your database server
        driver: 'pdo_sqlsrv'
        #server_version: '5.7'
        default_table_options:
            charset: utf8mb4
            collate: utf8mb4_unicode_ci

        url: '%env(resolve:DATABASE_URL)%'
    orm:
        auto_generate_proxy_classes: true
        naming_strategy: doctrine.orm.naming_strategy.underscore
        auto_mapping: true
        mappings:
            App:
                is_bundle: false
                type: annotation
                dir: '%kernel.project_dir%/src/Entity'
                prefix: 'App\Entity'
                alias: App

/. env part:

###> doctrine/doctrine-bundle ###
# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
# For an SQLite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
# Configure your db driver and server_version in config/packages/doctrine.yaml
DATABASE_URL=mssql://sa:root@DESKTOP-A9GIM4A\ISTANZA:1433/linkontro
###< doctrine/doctrine-bundle ###

Служба MSSQL работает правильно, но при попытке запустить на CLI: php bin/console doctrine:schema:validate возвращает эту ошибку:

Mapping
-------


 [OK] The mapping files are correct.


Database
--------


In PDOConnection.php line 31:

  SQLSTATE[08001]: [Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: No connection could be made because the target machine actively refused it.


In PDOConnection.php line 27:

  SQLSTATE[08001]: [Microsoft][ODBC Driver 13 for SQL Server]TCP Provider: No connection could be made because the target machine actively refused it.


doctrine:schema:validate [--skip-mapping] [--skip-sync] [--em [EM]] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>

Есть какие-либо подсказки о том, что происходит?Я попытался написать простой PHP-скрипт для проверки соединения, и это сработало.Таким образом, учетные данные верны, служба MSSQL включена, но единственный, кто не может подключиться, это Symfony.

1 Ответ

0 голосов
/ 04 января 2019

Из описания ошибки: соединение, инициированное php, отклонено сервером MS SQL.Это может означать:

  1. сервер не прослушивает адрес / порт, к которому вы пытаетесь подключиться.Возможно, DATABASE_URL настроен неправильно, и доктрина пытается подключиться к драйверу по умолчанию (т. Е. Localhost: 1433)
  2. сервер, к которому вы подключаетесь (или какой-то межсетевой экран между вами и сервером), отказывает в подключении- но это менее вероятно.

Попробуйте добавить -v или -vv к команде для большей детализации.

...