Docker MySQL连接因laravel失败

时间:2018-09-29 14:50:33

标签: php mysql laravel docker

因此,我无法将Laravel应用连接到MySQL容器。使用以下docker-compose,我得到了错误:

  

连接被拒绝(SQL:从information_schema.tables中选择*,其中table_schema =宅基地,table_name =迁移)

database:
  image: mysql:5.7
    volumes:
      - dbdata:/var/lib/mysql
     environment:
      - "MYSQL_ROOT_PASSWORD=secret"
      - "MYSQL_DATABASE=homestead"
      - "MYSQL_USER=root"
      - "MYSQL_PASS=secret"
    ports:
      - "33061:3306"

如果我将映像更改为mysql,则会收到错误消息:

  

服务器请求客户端未知的身份验证方法(SQL:从information_schema.tables中选择*,其中table_schema =宅基地,table_name =迁移)

     

服务器请求客户端[caching_sha2_password]未知的身份验证方法

我的laravel .env看起来像这样:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=secret

我也尝试了DB_HOST = database。

任何帮助都会很棒。谢谢!

OS:OSX

1 个答案:

答案 0 :(得分:1)

我猜您在dbdata文件夹中有一些旧数据,它们正在引起问题。如果您不需要旧的数据库,则只需删除该文件夹的内容,然后从头开始启动mysql容器即可。另一个问题是端口。您正在端口33061上发布MySQL,因此应将Laravel配置为DB_PORT=33061