我正在用laravel对一个docker项目做一些调整,但我遇到了以下问题:SQLSTATE[HY 000] [1049] Unknown database 'ead'。这很奇怪,因为我已经创建了数据库,每次我使用命令:php artisan migrate我都会得到这个错误。请查看我的.env文件:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=ead
DB_USERNAME=root
DB_PASSWORD=root
字符串
docker-compose.yml
mysql:
image: mysql:5.7.22
restart: unless-stopped
environment:
MYSQL_DATABASE: ${DB_DATABASE}
MYSQL_ROOT_PASSWORD: ${DB_PASSWORD}
MYSQL_PASSWORD: ${DB_PASSWORD}
MYSQL_USER: ${DB_USERNAME}
volumes:
- ./.docker/mysql/dbdata:/var/lib/mysql
ports:
- 3388:3306
networks:
- laravel-eti
型
我开始使用sail,但问题仍然存在。出现了一个新的问题:“SQLSTATE[HY 000] [1049] Unknown database 'laravel_ead'(SQL:select * from information_schema.tables where table_schema = laravel_ead and table_name = migrations and table_type = 'BASE TABLE')”
但是当我访问phpmyadmin时,如果我使用命令:“docker exec -it laravel-api-ead-mysql-1 mysql -u root -p”,然后显示数据库;我的手指银行是:
数据库|+--+|信息模式||MySQL||you_db||性能模式|
| sys我的银行在phpmyadmin不出现
我的mysql docker不工作:x1c 0d1x
我在这里寻找一些答案的帮助,但没有帮助
1条答案
按热度按时间bfnvny8b1#
在没有看到Docker配置的情况下,很难给予一个明确的答案,但一个建议是确保
DB_HOST
的值与包含数据库的Docker服务的名称匹配。例如,如果您的docker-compose.yml
看起来像这样:字符串
然后在我的
.env
中,我将使用DB_HOST=database
。这是可能的,因为Docker使所有相关容器的服务名称都可以作为彼此之间的主机名。一种验证方法是,假设你的Docker结构是类似的,你可以对运行PHP的服务容器启动一个bash shell,并尝试直接建立数据库连接。
型
我的建议是在黑暗中拍摄,但希望这里的东西会让你更接近找到你的答案。