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]