docker安装1.5.0.0,数据库倒入报错:Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [1130]

安装报错 · zxcv · 于 5年前 发布 · 1504 次阅读

docker下安装1.5.0.0,严格按照 https://github.com/fecshop/yii2_fecshop_docker 用的docker-compose.yml.aliyun

./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb

Exception 'yii\db\Exception' with message 'SQLSTATE[HY000] [1130] Host 'yii2fecshopdocker_php_1.yii2fecshopdocker_code-network' is not allowed to connect to this MySQL server'

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)
。。。
共收到 12 条回复
Fecmall#15年前 0 个赞

你应该是没有把修改的文件复制进去,覆盖原来的配置

Fecmall#25年前 0 个赞

docker里面的一部分配置是在example_data 中修改,然后通过cp命令复制到app/fecshop文件夹中,我估计你没有复制进去

看一下 app/fecshop/common/config/main-local.php 和 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',
        ],

上面是mysql的配置,host是mysql,docker会映射到mysql的容器中

Fecmall#35年前 0 个赞

如果不是上面问题导致的,自己搜搜一下 docker mysql is not allowed to connect to this MySQL server

zxcv#45年前 0 个赞

复制进去了,内容和上面的一样

Fecmall#55年前 0 个赞

这个报错的原因是php容器无法链接mysql的容器,你看一下mysql容器的状态

zxcv#65年前 0 个赞

给数据库设置密码、建fecshop,可以了

zxcv#75年前 0 个赞

会不会是以前的文档和1.5.0.0不匹配?后面继续报错:

mysql> use fecshop;
Database changed
mysql> source /var/example_db/mysql_fecshop.sql
Query OK, 0 rows affected, 1 warning (0.17 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.03 sec)

ERROR 1146 (42S02): Table 'fecshop.product_custom_option_qty' doesn't exist
ERROR 1146 (42S02): Table 'fecshop.product_flat_qty' doesn't exist

Fecmall#85年前 0 个赞

https://github.com/fecshop/yii2_fecshop_docker/blob/master/docker-compose.yml

mysql容器里面是有密码的

mysql:  
    image: mysql:5.7 
    volumes:  
      - ./db/mysql/data:/var/lib/mysql 
      - ./db/mysql/example_db:/var/example_db 
      - ./db/mysql/conf.d:/etc/mysql/conf.d      
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=fecshopxfd3ffaads123456
      - MYSQL_DATABASE=fecshop
    networks:
- code-network 

你的意思是,fecshop的common/config/main-local.php文件,你没有设置mysql的密码吧?

Fecmall#95年前 0 个赞

@zxcv [#7楼](#comment7)

./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb

这个步骤执行失败导致的

1.5.0.0 和1.4.6在安装方面没有什么区别,就是更新了一些代码

自己多比对下文档把,很多人都安装成功了。

zxcv#105年前 0 个赞

main-local.php:

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

docker-compose.yml:

mysql:  
    image: registry.cn-hangzhou.aliyuncs.com/fecshopsoft/mysql 
    restart: always
    volumes:  
      - ./db/mysql/data:/var/lib/mysql 
      - ./db/mysql/example_db:/var/example_db 
      - ./db/mysql/conf.d:/etc/mysql/conf.d      
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=fecshopxfd3ffaads123456
      - MYSQL_DATABASE=fecshop
    networks:
      - code-network 

不折腾了,我还是先装旧版本

Fecmall#115年前 0 个赞

@zxcv #10楼

执行

./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb

你这个步骤执行失败导致的,你可以去看看mysql fecshop数据库下面,是否存在这个数据库以及这个表就知道了,这个问题和版本没有关系,新版本并没有更新数据库文件。

zxcv#125年前 0 个赞

您说对了,重新执行./yii migrate --interactive=0 --migrationPath=@fecshop/migrations/mysqldb 后面没问题了。多谢!

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