P粉787820396 2023-08-07 16:24:22 0 2 261
我在Docker中运行Laravel 5.4。这是我的码头作曲。yml文件:
version: '2' services: app: container_name: laravel_app image: webdevops/php-apache-dev:ubuntu-16.04 links: - mysql depends_on: - mysql ports: - 8888:80 volumes: - .:/app environment: docker: 'true' WEB_DOCUMENT_ROOT: '/app/public' WEB_NO_CACHE_PATTERN: '.(.*)$$' working_dir: '/app' mysql: image: mariadb:latest ports: - 8889:80 environment: MYSQL_ROOT_PASSWORD: 'dev' MYSQL_DATABASE: 'dev' MYSQL_USER: 'dev' MYSQL_PASSWORD: 'dev'
This is the relevant part of my .env
file:
DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=8889 DB_DATABASE=dev DB_USERNAME=dev DB_PASSWORD=dev
我可以看到Laravel的欢迎页面——这方面的工作。但是当我运行php artisan migrate时,我得到了这个错误:
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = dev and table_name = migrations)
我试过修改.env文件中的主机和端口参数。
P粉295728625 2023-08-08 13:47:57 2楼
把我的mysql容器的名字而不是127.0.0.1
赞 +0 添加回复
P粉225961749 已被采纳 2023-08-08 12:59:00 1楼
首先,编辑您的docker-compose.yml文件
然后,在.env文件中设置正确的数据库端口
你的数据库端口是错误的。你正在尝试通过docker内运行的数据库实例连接暴露的端口。在这种情况下,你应该在.env文件中使用DB_PORT=3306
赞 +0 添加回复