我第一次在Docker和WSL 2上使用Laravel 8、Tenancy For Laravel开发多租户应用程序。当我尝试创建租户时出现问题。我想为每个租户创建一个新数据库,但创建数据库时出现以下错误:
SQLSTATE[42000]:
Syntax error or access violation:
1044 Access denied for user 'sail'@'%' to database 'tenant-a6d0813b-a546-428d-859a-15095724fb73'
(SQL: CREATE DATABASE `tenant-a6d0813b-a546-428d-859a-15095724fb73` CHARACTER SET `utf8mb4` COLLATE `utf8mb4_unicode_ci`)
我甚至不知道我应该从哪里开始,因为我对Docker,WLS和Laravel Sail还很陌生。在我将这个项目转移到Docker之前,我可以在Xammp上创建数据库,但现在不行了。
docker-compose.yml文件是因为它的Laravel exept的一部分,phpmyadmin是包括:
phpmyadmin:
image: phpmyadmin
restart: always
ports:
- 8080:80
environment:
- PMA_HOST=mysql
depends_on:
- mysql
networks:
- sail
4条答案
按热度按时间lb3vh1jj1#
我今天遇到了同样的问题。
问题似乎出在.env文件中设置的db用户'sail'。它没有创建数据库所需的权限。
使用
sail mysql
命令打开mysql控制台,并尝试使用CREATE DATABASE test;
创建数据库,会导致相同的错误。将.env文件中的参数更改为:
并且重建Docker容器导致Docker创建日志中的错误,因此MySQL根本不运行。
以root用户身份登录docker mysql并尝试为“sail”用户设置新权限也无济于事。
最后对我起作用的是用标准构建应用程序
使用
sail up -d
启动应用程序,然后将.env文件更改为之后,我用
sail artisan config:clear
重置配置。pokxtpni2#
遇到了同样的问题,我的工作是创建一个init.sql文件
并将以下内容添加到mysql条目中:
myzjeezk3#
对我有效的方法:
我有PhpMyAdmin安装在我的容器,我可以登录到它使用,
成功登录后,我导航到
User Accounts
页面,选择sail
并授予所有适合我的工作和保存的权限。这将解决
SQLSTATE[HY000] [1045] Access denied
的问题mutmk8jj4#
很久以前我就问过这个问题。我已经停止了那个项目。现在,我开始了一个新的项目,面临着同样的问题。我在寻找解决方案的过程中遇到了我自己的问题。我找到了它,它是:
您应该在终端上执行以下命令: