连接到远程Symfony数据库:SQLSTATE[HY000] [2002] php_network_getaddresses

k2fxgqgv  于 2023-10-15  发布在  PHP
关注(0)|答案(1)|浏览(121)

我最近尝试将我的Symfony应用程序部署到Ionos托管的服务器上。我已经在.env文件和doctrin.yaml文件中配置了数据库参数,但在尝试连接到数据库时遇到错误。
下面是我的配置的详细信息:

.env:

DATABASE_URL="mysql://dbu53*****:password@db50146*****.hosting-data.io:3306/dbs121*****"

doctrine.yaml文件:

doctrine:
    dbal:
        driver: 'pdo_mysql'
        server_version: '8.0'
        charset: utf8mb4
        host: 'db50146*****.hosting-data.io'
        port: 3306
        user: 'dbu53*****'
        password: 'password'
        dbname: 'dbs121*****'
        url: '%env(DATABASE_URL)%'

但是,当我尝试连接到数据库时,我得到以下错误:
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Unknown host.
我怀疑这个问题可能与我如何配置数据库连接参数有关,但我不确定这个错误的来源。我的配置中是否有任何明显的错误?有什么具体的东西我应该检查吗?
我感谢任何帮助,可以在解决这个问题与Symfony的远程数据库连接提供。

ttcibm8c

ttcibm8c1#

这个错误意味着你的主机没有被dns解析。有时这是因为您的用户名或密码包含@符号,需要先进行转义。在某些情况下,'"也需要转义。
如果你使用一个doctrine url,你不必指定所有其他属性,如driverserver_versioncharsethostportuserpassworddbname。这些都可以从URL中导出。并不是所有的环境都是一样的,所以你可以在一个url中配置这些。
范例:

[driver]://[user]:[password]@[host]:[port]/[dbname]?charset=[charset]&server_version=[server_version]

mysql://root:root@localhost:3306/my_db?chartset=utf8_mb4&server_version=8.0

相关问题