Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Docker部署laravel项目时获取mysql错误_Mysql_Laravel_Docker - Fatal编程技术网

使用Docker部署laravel项目时获取mysql错误

使用Docker部署laravel项目时获取mysql错误,mysql,laravel,docker,Mysql,Laravel,Docker,我想用和远程服务器一样的inviroment测试我的laravel项目。所以我尝试使用Docker(以前从未知道)。我安装了docker,并按照project中的说明使用docker部署它。 设置 将文件.env.example复制到.env,将docker-compose.yml.example复制到docker-compose.yml 修改.env配置文件(可选)。如果修改.env文件中的mysql、mongo和redis配置,请记住也要修改docker-compose.yml文件中的配置。

我想用和远程服务器一样的inviroment测试我的laravel项目。所以我尝试使用Docker(以前从未知道)。我安装了docker,并按照project中的说明使用docker部署它。 设置

将文件.env.example复制到.env,将docker-compose.yml.example复制到docker-compose.yml

修改.env配置文件(可选)。如果修改.env文件中的mysql、mongo和redis配置,请记住也要修改docker-compose.yml文件中的配置。 安装或运行Docker

docker-compose up -d
//停止

docker-compose stop
chmod缓存文件夹

chmod -R 777 storage

chmod -R 777 bootstrap/cache
部署

sh deploy.sh
运行
sh doploy.sh
后,我出现以下错误:

   [Illuminate\Database\QueryException]                                                              
  SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = awesome_teacher and table_name = migrations)
 [Doctrine\DBAL\Driver\PDOException]               
  SQLSTATE[HY000] [2002] No such file or directory  

  [PDOException]                                    
  SQLSTATE[HY000] [2002] No such file or directory  

  [Illuminate\Database\QueryException]                                                              
  SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables w  
  here table_schema = homestead_test and table_name = migrations)                                                               
  [Doctrine\DBAL\Driver\PDOException]               
  SQLSTATE[HY000] [2002] No such file or directory
[PDOException]                                    
    SQLSTATE[HY000] [2002] No such file or directory  
文件“docker compose.yml”:

文件“.env”:


对于一个简单的laravel应用程序,您的设置相当复杂。问题是,您的laravel应用程序试图连接到自己容器中的
MySQL
服务器实例


DB\u HOST=localhost
更改为
DB\u HOST=mysql
以连接到
mysql
容器。

DB\u HOST应该是您的mysql服务名称,它是
mysql
,而不是
localhost
,我找到了答案,谢谢
version: '2'

### Change the `teacher` with your own teacher name ###
services:
    application:
        container_name: teacher_application
        image: debian
        volumes:
            - ./:/var/www/laravel
    workspace:
        container_name: teacher_workspace
        restart: always
        image: my_company/laravel-workspace
        volumes_from:
            - application
        tty: true
    php-fpm:
        container_name: teacher_php-fpm
        restart: always
        image: my_company/laravel-php-fpm
        volumes_from:
            - application
        expose:
            - "9000"
        links:
            - workspace
    nginx:
        container_name: teacher_nginx
        restart: always
        image: my_company/laravel-nginx
        volumes_from:
            - data
            - logs
            - application
        ports:
            - "8000:80"
        links:
            - php-fpm
    data:
        container_name: teacher_data
        image: debian
        volumes:
            - .docker/mysql:/var/lib/mysql
            - .docker/data:/data
    data_test:
        container_name: teacher_data_test
        image: debian
        volumes:
            - .docker/mysql_test:/var/lib/mysql
            - .docker/data_test:/data
    logs:
        container_name: teacher_logs
        image: debian
        volumes:
            - .docker/logs/nginx:/var/log/nginx
            - .docker/logs/mongodb:/var/log/mongodb
    mysql:
        container_name: teacher_mysql
        restart: always
        image: mysql
        volumes_from:
            - data
            - logs
        expose:
            - "3306"
        environment:
            MYSQL_DATABASE: awesome_teacher
            MYSQL_USER: root
            MYSQL_PASSWORD: blablabla
            MYSQL_ROOT_PASSWORD: blablabla
    mysql_test:
        container_name: teacher_mysql_test
        restart: always
        image: mysql
        volumes_from:
            - data_test
        expose:
            - "3306"
        environment:
            MYSQL_DATABASE: homestead_test
            MYSQL_USER: homestead_test
            MYSQL_PASSWORD: secret
            MYSQL_ROOT_PASSWORD: root
APP_ENV=local
APP_KEY=base64:hl4qkfCdHiJrCG4sGfYfMU8faq3WywMHkH+mr/FiDu9PM=
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=awesome-teacher.local
APP_DOMAIN='awesome-teacher.local'


DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=awesome_teacher
DB_USERNAME=root
DB_PASSWORD=blablabla

DB_TEST_CONNECTION=mysql_test
DB_TEST_HOST=localhost
DB_TEST_PORT=3308
DB_TEST_DATABASE=homestead_test
DB_TEST_USERNAME=homestead_test
DB_TEST_PASSWORD=secret

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

PUSHER_APP_ID=
PUSHER_KEY=
PUSHER_SECRET=