安装报错, php_network_getaddresses: getaddrinfo failed: Name or service not known' in

bug问题 · johocn · 于 4年前 发布 · 4257 次阅读

Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known' in /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Connection.php:635 Stack trace: #0 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Connection.php(1015): yii\db\Connection->open() #1 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Connection.php(1002): yii\db\Connection->getMasterPdo() #2 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Command.php(253): yii\db\Connection->getSlavePdo() #3 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Command.php(1153): yii\db\Command->prepare(true) #4 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Command.php(399): yii\db\Command->queryInternal('fetchAll', NULL) #5 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/mysql/Schema.php(319): yii\db\Command->queryAll() #6 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/mysql/Schema.php(125): yii\db\mysql\Schema->findColumns(Object(yii\db\TableSchema)) #7 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Schema.php(754): yii\db\mysql\Schema->loadTableSchema('migration') #8 /data/wwwroot/fecshop/vendor/yiisoft/yii2/db/Schema.php(193): yii\db\Schema->getTableMetadata('{{%migration}}', 'schema', true) #9 /data/wwwroot/fecshop/vendor/yiisoft/yii2/console/controllers/MigrateController.php(211): yii\db\Schema->getTableSchema('{{%migration}}', true) #10 /data/wwwroot/fecshop/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(874): yii\console\controllers\MigrateController->getMigrationHistory(NULL) #11 /data/wwwroot/fecshop/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(167): yii\console\controllers\BaseMigrateController->getNewMigrations() #12 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0) #13 /data/wwwroot/fecshop/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array) #14 /data/wwwroot/fecshop/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array) #15 /data/wwwroot/fecshop/vendor/yiisoft/yii2/console/Controller.php(164): yii\base\Controller->runAction('up', Array) #16 /data/wwwroot/fecshop/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('up', Array) #17 /data/wwwroot/fecshop/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate/up', Array) #18 /data/wwwroot/fecshop/vendor/fancyecommerce/fecshop/app/appinstall/modules/Database/controllers/ConfigController.php(264): yii\console\Application->runAction('migrate/up', Array) #19 /data/wwwroot/fecshop/vendor/fancyecommerce/fecshop/app/appinstall/modules/Database/controllers/ConfigController.php(51): fecshop\app\appinstall\modules\Database\controllers\ConfigController->runMigrate() #20 [internal function]: fecshop\app\appinstall\modules\Database\controllers\ConfigController->actionMigrate() #21 /data/wwwroot/fecshop/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array) #22 /data/wwwroot/fecshop/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array) #23 /data/wwwroot/fecshop/vendor/yiisoft/yii2/base/Module.php(528): yii\base\Controller->runAction('migrate', Array) #24 /data/wwwroot/fecshop/vendor/yiisoft/yii2/web/Application.php(103): yii\base\Module->runAction('database/config...', Array) #25 /data/wwwroot/fecshop/vendor/yiisoft/yii2/base/Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request)) #26 /data/wwwroot/fecshop/appfront/web/install.php(22): yii\base\Application->run() #27 {main}

共收到 23 条回复
OneSmile#14年前 0 个赞

检查你的数据库服务,数据库连接文件等

Fecmall#24年前 0 个赞

论坛搜索帖子: php_network_getaddresses: getaddrinfo

有很多类似帖子的

osos123#33年前 0 个赞

请问下数据库连接文件是哪个

Fecmall#43年前 0 个赞

数据库配置文件: common/config/main-local.php

您可以用mysql的命令行连接试试。

osos123#53年前 0 个赞

...你的意思是安装你这个要手动配置?main-local.php 如果配置了确实能连得上, 那就根本就是你的连接文件写的有问题 而且连上以后一样会有错误. main-local.php 连接的是哪个数据库呢.默认的mysql吗.如果是就有如下:

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mysql.extensions' doesn't exist i

osos123#63年前 0 个赞

fecmall 的连接文件编写绝对有问题 我自己连数据库又没事.

Fecmall#73年前 0 个赞

@osos123 [#5楼](#comment5)

1.安装步骤,已经把数据库信息写入main-local.php,不需要手动配置, 至于你的为什么写不进去,不清楚具体原因,自行debug

2.对于报错

Fatal error: Uncaught PDOException: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mysql.extensions' doesn't exist i

这个是另外一个问题,是你的nginx配置有问题,你的nginx配置,执行任何文件(安装文件是install.php)都执行index.php导致的问题,新问题看新帖子

官方安装文档有nginx和apache的配置例子,自行查阅:http://www.fecmall.com/doc/fecshop-guide/develop/cn-2.0/guide-fecshop-2-graphical-install.html

关于这个报错,帖子也有很多,自行查阅

3.在不了解之前,少用绝对字眼.

4.第一次安装,可以先用宝塔一键部署起来,很多人安装失败,都是配置问题,要么是nginx apache不会配置或者配置有问题,要么是php环境问题,要么是网络连接问题。

fecfan#83年前 0 个赞

今天用wampserver3.1.9_x64.exe在win7下重装了一遍Fecmall,在进入界面安装后(我配置的地址是 http://www.fecmall.lan/install ),未点“开始Fecmall安装之旅”前,网页最下方出现类似报错信息(大概是安装页面加载后1秒出现) 如下图: 点击“开始Fecmall安装之旅”之后,输入MySQL密码,下一步正常安装,最后也能显示安装成功。

个人感觉这个报错出现的时间点不对。 @Terry有空看下吧,这个报错应该能够重现,wampserver均为默认设置,除了改vhost。

Fecmall#93年前 0 个赞

你的问题,在于报错位置不对,而不是报错本身,对不?

也就是说第一步还没有填写数据库信息,就开始报错了,这里不应该报错

如果填写数据库信息后,还继续处这个报错,才正常,是这个意思?

fecfan#103年前 0 个赞

是的。“开始安装之旅”前报错有点莫名其妙。 如果数据库信息填写不对,才应该报错。对于好的UI来说,报错最好做成弹出框,比如显示“数据库连接失败,请检查密码等信息是否正确...”,而不是报一堆英文代码。

Fecmall#113年前 0 个赞

@fecfan #10楼

1.英文详细报错,更容易定位问题,一点问题也没有

2.好的UI,你可以搞一个贡献出来,开源项目不缺类似的建议,缺的是行动

本人后端程序员,UI不擅长,也没有银子请人来搞UI,会的也不贡献,不符合目前现状。

3.这个问题,本人环境并没有这个问题,你可以debug找找原因,参与贡献一下,具体是什么导致的,开源项目靠大家一起完善。

fecfan#123年前 0 个赞

@T大,本人纯用户,非coder,也不会debug,仅仅是functional user。开源社区参与者并不是仅有coder,会debug的才行,需要更多的用户基础参与才能兴旺啊,程序员撸代码是搞基建,文档、前端UI、UX体验好才有市场,参考国外wordpress、drupal、odoo社区。当然国内环境使然,这种比较也没意义,像fecmall这种完全商用开源的更是凤毛麟角,想象中的开源帝国一切才刚刚开始。 刚改用Laragon环境重试了一下,还是相同报错。Laragon集成composer感觉更方便,近期准备写个Laragon安装fecmall的文档,如果这个报错解决了(看来只能靠自己慢慢摸索了),就完美了。

Fecmall#133年前 0 个赞

@fecfan #12楼 嗯,fecmall的初衷是很多人参与进来,贡献一些东西,大家都可以用

参与的人也能维持生活,当然包括我也能赚点收入维持生活,但,参与的太少了。

如果技能偏小白,就按照fecmall的文档,使用宝塔部署吧:http://www.fecmall.com/topic/4262 ,这是今天刚录了一个视频。

fecfan#143年前 0 个赞

phpstudy_x64_8.1.0.6, 安装环境下,开始Fecmall安装之旅前报错,记录如下,以便后查。注:此报错不阻止后续成功安装!

Fatal error: Uncaught PDOException: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: ��֪������������ in D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Connection.php:705 Stack trace: #0 D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Connection.php(705): PDO->__construct('mysql:host={mys...', '{mysql_user}', '{mysql_password...', NULL) #1 D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Connection.php(626): yii\db\Connection->createPdoInstance() #2 D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Connection.php(1022): yii\db\Connection->open() #3 D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Connection.php(1009): yii\db\Connection->getMasterPdo() #4 D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Command.php(255): yii\db\Connection->getSlavePdo() #5 D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Command.php(1154): yii\db\Command->prepare(true) #6 D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\C in D:\phpstudy_pro\WWW\www.fecmall.cc\vendor\yiisoft\yii2\db\Connection.php on line 637
Fecmall#153年前 0 个赞

@fecfan #14楼 你的环境很诡异,初始安装页面,代码就没有执行db的代码,为什么会执行yii db组件

本人测试了,本地win wamp , linux环境,宝塔环境,都没有这个

你自己排查一下吧

fecfan#163年前 0 个赞

[#14楼](#comment14) 使用Apache2.4.39, 切换为Nginx1.15.11后,不再报错。

fecfan#173年前 2 个赞

原因基本确定:当访问http://www.fecmall.cc/install/ 时,Apache会根据rewrite规则尝试访问当前路径下的其它可执行文件路径,比如下一步的数据库访问路径 http://www.fecmall.cc/install/index.php/database/config/index?database=1 ,而此时用户仍未提交数据库信息,便报错。

如果使用Apache,则把.htaccess(PhpStudy的路径——D:\phpstudy_pro\WWW\www.fecmall.cc\appfront\web.htaccess )里的Rewrite规则注释掉,便不会报错(其它影响暂且未知)

<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_FILENAME} !-f  
#RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]          #将这一行删除或注释掉
</IfModule>

如果使用Nginx,则确保Nginx的站点配置文件不要出现类似下面的规则(PhpStudy默认不含此规则,Laragon则有)

    location / {
        ...
        try_files $uri $uri/ /index.php$is_args$args;  #如果有类似此行,则注释掉,原因和Apache的类似
        ...
    }

以上如有不当,烦请指正。

osos123#182年前 0 个赞

@fecfan #17楼 666 我都说他代码有问题他还不信. 不过那个报错不影响正常使用,只是第一次接触的用户会懵逼

Fecmall#192年前 0 个赞

@osos123 #18楼

这不是信不信的问题,而是能不能复现这个报错的问题

如果是本地复现肯定会处理这个,现在的问题是,本地无法复现你们说的报错。

Fecmall#202年前 0 个赞

@fecfan #17楼 @osos123 #18楼

按照你的nginx方式,没出这个报错。

您可以贴一下您的php版本,以及nginx配置,我看看本地是否可以重现这个报错。

Fecmall#212年前 0 个赞

解决:请使用fecmall-2.17.3+ 版本, 这里进行了处理。

lxj4943#221年前 0 个赞

@fecfan #17楼 确实是nagix配置问题 把try_files注释掉就好了

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics