yii导入数据库,连接被拒绝

安装报错 · wzi90921 · 于 6年前 发布 · 4947 次阅读

数据库密码是项目中默认的; 我用Navicat从本机可以连接到服务器的数据库。

[root@iZwz9d8w93w30eiokzks1fZ yii2_fecshop_docker]# docker-compose exec php bash root@5b12795777ee:/var/www/html# cd /www/web/fecshop root@5b12795777ee:/www/web/fecshop# ./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb Yii Migration Tool (based on Yii v2.0.15.1)

Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [2002] Connection refused'

in /www/web/fecshop/vendor/yiisoft/yii2/db/Connection.php:624

Stack trace: #0 /www/web/fecshop/vendor/yiisoft/yii2/db/Connection.php(996): yii\db\Connection->open() #1 /www/web/fecshop/vendor/yiisoft/yii2/db/Connection.php(983): yii\db\Connection->getMasterPdo() #2 /www/web/fecshop/vendor/yiisoft/yii2/db/Command.php(253): yii\db\Connection->getSlavePdo() #3 /www/web/fecshop/vendor/yiisoft/yii2/db/Command.php(1143): yii\db\Command->prepare(true) #4 /www/web/fecshop/vendor/yiisoft/yii2/db/Command.php(399): yii\db\Command->queryInternal('fetchAll', NULL) #5 /www/web/fecshop/vendor/yiisoft/yii2/db/mysql/Schema.php(312): yii\db\Command->queryAll() #6 /www/web/fecshop/vendor/yiisoft/yii2/db/mysql/Schema.php(125): yii\db\mysql\Schema->findColumns(Object(yii\db\TableSchema)) #7 /www/web/fecshop/vendor/yiisoft/yii2/db/Schema.php(744): yii\db\mysql\Schema->loadTableSchema('migration') #8 /www/web/fecshop/vendor/yiisoft/yii2/db/Schema.php(194): yii\db\Schema->getTableMetadata('{{%migration}}', 'schema', true) #9 /www/web/fecshop/vendor/yiisoft/yii2/console/controllers/MigrateController.php(210): yii\db\Schema->getTableSchema('{{%migration}}', true) #10 /www/web/fecshop/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(875): yii\console\controllers\MigrateController->getMigrationHistory(NULL) #11 /www/web/fecshop/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(166): yii\console\controllers\BaseMigrateController->getNewMigrations() #12 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0) #13 /www/web/fecshop/vendor/yiisoft/yii2/base/InlineAction.php(57): call_user_func_array(Array, Array) #14 /www/web/fecshop/vendor/yiisoft/yii2/base/Controller.php(157): yii\base\InlineAction->runWithParams(Array) #15 /www/web/fecshop/vendor/yiisoft/yii2/console/Controller.php(148): yii\base\Controller->runAction('', Array) #16 /www/web/fecshop/vendor/yiisoft/yii2/base/Module.php(528): yii\console\Controller->runAction('', Array) #17 /www/web/fecshop/vendor/yiisoft/yii2/console/Application.php(180): yii\base\Module->runAction('migrate', Array) #18 /www/web/fecshop/vendor/yiisoft/yii2/console/Application.php(147): yii\console\Application->runAction('migrate', Array) #19 /www/web/fecshop/vendor/yiisoft/yii2/base/Application.php(386): yii\console\Application->handleRequest(Object(yii\console\Request)) #20 /www/web/fecshop/yii(82): yii\base\Application->run() #21 {main}

共收到 9 条回复
Terry#16年前 0 个赞

报错信息很明显:connection refused

翻译过来就是mysql无法连接,检查一下

1.yii db组件的mysql账户 密码 Ip 等数据库配置是否正确,Fecshop的配置mysql:http://www.fecshop.com/doc/fecshop-guide/develop/cn-1.0/guide-fecshop-about-config.html 第一部分,查看 @common/config/main-local.php中db组件的配置是否正确。

2.如果不是localhost,而是远程连接mysql,查看一下mysql的账户是否有远程连接权限。

Terry#26年前 0 个赞

学习一下markdown标签:http://www.fecshop.com/markdown

帖子的内容农的整洁一些。语法很简单,掌握6个标签就够用。

wzi90921#36年前 0 个赞

@Terry #1楼

        // Mysql部分的配置
        'db' => [
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=127.0.0.1;dbname=fecshop',
            'username' => 'root',
            'password' => 'fecshopxfd3ffaads123456',
            'charset' => 'utf8',
        ],
        // Mongodb部分的配置
                'mongodb' => [
            'class' => 'yii\mongodb\Connection',
                        # 有账户的配置
            //'dsn' => 'mongodb://username:password@localhost:27017/datebase',
                        # 无账户的配置
                        'dsn' => 'mongodb://127.0.0.1:27017/fecshop',
                        # 复制集
                        //'dsn' => 'mongodb://10.10.10.252:10001/erp,mongodb://10.10.10.252:10002/erp,mongodb://10.10.10.252:10004/erp?replicaSet=terry&readPreference=primaryPreferred',
        ],

wzi90921#46年前 0 个赞

连接到本地,居然不成功;连接到另外服务器的数据库就可以了

Terry#56年前 0 个赞

@wzi90921 #4楼 本地mysql没有启动吧?或者账号填写错了,肯定是你哪里配置错了,要么是fecshop填写的账户等信息不一致,要么你的本地mysql设置有问题。

zeicool#65年前 1 个赞

'dsn' => 'mysql:host=127.0.0.1;dbname=fecshop', 这里改成: 'dsn' => 'mysql:host=mysql;dbname=fecshop', 就可以了,不过会提示未知数据库fecshop,要手动创建才行

Terry#75年前 0 个赞

@zeicool [#6楼](#comment6) 嗯,使用docker compose 安装,你说的是正确的

https://github.com/fecshop/yii2_fecshop_docker/blob/master/example_data/fecshop/common/config/main-local.php

这个文件里面已经配置了

'db' => [ 
            'class' => 'yii\db\Connection',
            'dsn' => 'mysql:host=mysql;dbname=fecshop',
            'username' => 'root',
            'password' => 'fecshopxfd3ffaads123456',
            'charset' => 'utf8',
        ],

只需要更改 usernamepassword ,这个对应docker mysql的配置:https://github.com/fecshop/yii2_fecshop_docker/blob/master/docker-compose.yml 在docker compose 的yml的配置文件可以看到如下(配置mysql root账户的密码):

environment:
      - MYSQL_ROOT_PASSWORD=fecshopxfd3ffaads123456

对于数据库:fecshop,在安装文档中有操作步骤,也就是如图,会创建fecshop数据库:

zeicool#85年前 0 个赞

不过我也遇到问题了,mongodb容器,一直在 Restarting ,不知道什么原因

Terry#95年前 0 个赞

@zeicool #8楼 看一下这个:http://www.fecshop.com/topic/931

解决后回馈下

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