在Docker中运行的Laravel应用无法从VirtualBox虚拟机上的MySQL数据库获取数据(SQLSTATE [HY000] [2002]连接被拒绝)

时间:2019-05-22 19:23:38

标签: mysql laravel docker

在我的PC上,我正在运行Windows10。我有一台运行Ubuntu 18.04的虚拟机。我有一个在Docker上运行的Laravel项目。我有一个在我的虚拟机上运行的MySQL服务器。我使用docker-compose.yml和Dockerfile构建项目。我没有MySQL数据库容器:MySQL在我的虚拟机上运行。

我的问题是我无法访问名为“ mydatabase”的MySQL数据库。每当我执行php artisan migrate或在localhost:8080转到我的项目时,都会收到错误消息

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `sometable`)                                      

如果我在具有Ubuntu操作系统的计算机上启动该项目,则可以运行该项目。但不适用于虚拟机。我可以使用

从虚拟机访问我的MySQL服务器

mysql --host=127.0.0.1 -u root -p,我的密码也是root

.env文件

DB_HOST=127.0.0.1
HOSTNAME=b2d4219c8143
APP_NAME=myLaravelApp
APP_URL=http://localhost
DB_CONNECTION=mysql
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
DB_DATABASE=mydatabase
_=/usr/bin/env
PWD=/var/www/html
DB_PASSWORD=root
APP_DEBUG=true
APP_KEY=base64:C1IQl08HeaUSPfahtrZLL1lL81n3ELMmJd9Tkli6CtA=
DB_USERNAME=root
SHLVL=6
HOME=/root
LOG_CHANNEL=file

docker-compose.yml

version: '1'
services:
  web:
    build:
      context: ./
    working_dir: /var/www/html
    ports:
      - 8080:80
    volumes:
      - ./:/var/www/html
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
         - DB_HOST=127.0.0.1
         - HOSTNAME=b2d4219c8143
         - DB_DATABASE=mydatabase
         - PWD=/var/www/html
         - DB_PASSWORD=root
         - SHLVL=3
         - HOME=/root
         - DB_USERNAME=root
         - LOG_CHANNEL=file
         - DB_CONNECTION=mysql
         - APP_NAME=fes
         - APP_ENV=local
         - APP_KEY=base64:C1IQl08HeaUSPfahtrZLL1lL81n3ELMmJd9Tkli6CtA=
         - APP_DEBUG=true
         - APP_URL=http://localhost

Dockerfile

FROM nginx:latest

RUN apt-get update && apt-get install -y php-gd
RUN apt-get -y install php7.2-zip

COPY entrypointcust.sh /entrypointcust.sh

RUN chmod +x /entrypointcust.sh

EXPOSE 80

我在虚拟机上的ipv4地址

10.0.2.15

关于为什么我无法连接到数据库的任何建议?

.env文件中的

DB_HOST=localhost也不起作用。

0 个答案:

没有答案