SQLSTATE [HY000] [2002] Connection拒绝了Laravel 5.6和Laradock

时间:2018-02-16 07:16:56

标签: laravel laradock

我的数据库mysql有问题。我无法访问它,我有一个laravel项目,我添加了Laradock,以便能够使用Docker的容器。我在我的laradock目录中启动了两个输入docker-compose up -d mysql nginx的容器。一旦容器启动,我就可以访问Laravel的主页,但是当我想与我的数据库通信时,我有以下错误:

  

SQLSTATE [HY000] [2002]连接被拒绝。

有人知道我的问题的根源。谢谢。

i am on ubuntu 17.10 

Docker version 17.12.0-ce, build c97c6d6

项目中的.env文件在这里

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=db_authors
DB_USERNAME=root
DB_PASSWORD=root
laradock文件夹上的

.env文件是

MYSQL_VERSION=8.0
MYSQL_DATABASE=db_authors
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

这是我的docker-compose.yml中的mysql容器

mysql:
  build:
    context: ./mysql
    args:
      - MYSQL_VERSION=${MYSQL_VERSION}
  environment:
    - MYSQL_DATABASE=${MYSQL_DATABASE}
    - MYSQL_USER=${MYSQL_USER}
    - MYSQL_PASSWORD=${MYSQL_PASSWORD}
    - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
    - TZ=${WORKSPACE_TIMEZONE}
  volumes:
    - ${DATA_SAVE_PATH}/mysql:/var/lib/mysql
    - ${MYSQL_ENTRYPOINT_INITDB}:/docker-entrypoint-initdb.d
  ports:
    - "${MYSQL_PORT}:3306"
  networks:
    - backend

我的容器在这里很好地启动了我得到的结果

docker-compose up -d mysql nginx


Creating network "laradock_default" with the default driver
Creating laradock_mysql_1        ... done
Creating network "laradock_backend" with driver "bridge"
Creating laradock_workspace_1    ... done
Creating laradock_applications_1 ... 
Creating laradock_php-fpm_1      ... done
Creating laradock_php-fpm_1      ... 
Creating laradock_nginx_1        ... do

1 个答案:

答案 0 :(得分:0)

尝试以下方法: 1 - 输入MySQL容器:docker-compose exec mysql bash。 2 - 输入mysql:mysql -uroot -proot 3 - 查看所有用户:SELECT User FROM mysql.user; 4 - 运行任何命令show databases,show tables,select * from ......

有用吗?你能这样登录MySQL吗?