【问题标题】:Symfony 5 SQLSTATE[HY000] [2002] after send project on hostingSymfony 5 SQLSTATE [HY000] [2002] 在主机上发送项目后
【发布时间】:2020-11-21 04:25:50
【问题描述】:

我只是将我的项目发送到 symfony 5 中托管,但出现错误:

An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

或者如果我想执行:

php74-cli bin/console make:migration

In AbstractMySQLDriver.php line 112:

  An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddr
  esses: getaddrinfo failed: Name or service not known


In Exception.php line 18:

  SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name o
  r service not known


In PDOConnection.php line 37:

  SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name o
  r service not known


In PDOConnection.php line 37:

  PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Name or s
  ervice not known

除了更改 .env 文件中的连接数据外,我还需要更改什么?

我制作了一个简单的 php 文件来检查我的数据是否有连接,它可以工作,但在 symfony 中不行。

【问题讨论】:

    标签: symfony


    【解决方案1】:

    最好在服务器上生成 .env.prod 文件/您不会在 git 存储库中提交该文件/与生产数据库的实际连接并在服务器上执行

    composer dump-env prod
    

    【讨论】:

    • 执行这个,我有一些错误:Fatal error: Uncaught TypeError: Return value of Symfony\Component\Dotenv\Dotenv::populate() must be an instance of Symfony\Component\Dotenv\void, none returned in /home/serwer2011270/public_html/portfolio5/vendor/symfony/dotenv/Dotenv.php:222 Stack trace: #0 home/serwer2011270/public_html/portfolio5/vendor/symfony/dotenv/Dotenv.php(568): Symfony\Component\Dotenv\Dotenv->populate(Array, false) #1/home/serwer2011270/public_html/portfolio5/vendor/symfony/dotenv/Dotenv.php(92): Symfony\Component\Dotenv\Dotenv->doLoad(false, Array)
    • #2/home/serwer2011270/public_html/portfolio5/vendor/symfony/dotenv/Dotenv.php(114): Symfony\Component\Dotenv\Dotenv->load('./.env') #3/home/serwer2011270/public_html/portfolio5/vendor/symfony/flex/src/Command/DumpEnvCommand.php(94): Symfony\Component\Dotenv\Dotenv->loadEnv('./.env') #4/home/serwer2011270/public_html/portfolio5/vendor/symfony/flex/src/Command/DumpEnvCommand.php(53): Symfony\Flex\Command\DumpEnvCommand->loadEnv('./.env', 'prod') #5 phar:///usr/bin/composer/vendor/symfony/console in /home/serwer2011270/public_html/portfolio5/vendor/symfony/dotenv/Dotenv.php on line 222
    • 你也需要 .env。 .env.prod 只需要包含 .env 的覆盖
    • 请阅读此处以供参考:symfony.com/doc/current/…
    • 我不明白问题是什么?在 .env 文件中?或者可能有联系?我在本地电脑上生成 .env.local.php 文件并在主机上发送:return array ( 'APP_ENV' => 'dev', 'APP_SECRET' => '#########', 'DATABASE_URL' => 'mysql://myuser:mypass@myhost.home.pl/mydbname', ); Meybe 这里是错误的吗?在我的本地 pc 项目中,我有:?serverVersion=mariadb-10.4.11 这里我也有服务器版本吗?在这个主机上很难执行任何 ssh 命令,所以我不知道一切是否顺利
    【解决方案2】:

    我有解决办法!我的密码中有 # 到 mysql base 我更改它并且连接正常!

    【讨论】:

    • 那是浪费时间.. 不过我很高兴你解决了这个问题
    猜你喜欢
    • 1970-01-01
    • 2021-11-19
    • 2019-04-13
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2021-12-20
    相关资源
    最近更新 更多