因此,我无法将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
答案 0 :(得分:1)
我猜您在dbdata
文件夹中有一些旧数据,它们正在引起问题。如果您不需要旧的数据库,则只需删除该文件夹的内容,然后从头开始启动mysql容器即可。另一个问题是端口。您正在端口33061上发布MySQL,因此应将Laravel配置为DB_PORT=33061
。