Symfony 5 SQLSTATE [HY000] [2002] 在主机上发送项目后

Posted

技术标签:

【中文标题】Symfony 5 SQLSTATE [HY000] [2002] 在主机上发送项目后【英文标题】:Symfony 5 SQLSTATE[HY000] [2002] after send project on hosting 【发布时间】: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 中不行。

【问题讨论】:

【参考方案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 我更改它并且连接正常!

【讨论】:

那是浪费时间.. 不过我很高兴你解决了这个问题

以上是关于Symfony 5 SQLSTATE [HY000] [2002] 在主机上发送项目后的主要内容,如果未能解决你的问题,请参考以下文章

SQLSTATE[HY000]:在 symfony 中创建表的一般错误

Symfony 错误:[PDOException] SQLSTATE[HY000] [2002] 没有这样的文件或目录

Symfony 2.8(Wamp):[Doctrine\DBAL\Exception\ConnectionException] PDOException:SQLSTATE[HY000] [2002]

Symfony4 / Docker:SQLSTATE [HY000] [2002]连接被拒绝

Symfony 4 |教义 |驱动程序发生异常:SQLSTATE[HY000] [2002] Connection denied

symfony2 中的 MySQL (PDO) 出错:驱动程序中发生异常:SQLSTATE [HY000] [1049]