我正在使用 Docker 进行 Laravel 项目。以下是我docker-compose.yml
用于开发环境的文件。
version: '3'
services:
apache:
container_name: pathien_apache
image: webdevops/apache:ubuntu-16.04
environment:
WEB_DOCUMENT_ROOT: /var/www/public
WEB_ALIAS_DOMAIN: pathien.localhost
WEB_PHP_SOCKET: php-fpm:9000
volumes: # Only shared dirs to apache (to be served)
- ./public:/var/www/public:cached
- ./storage:/var/www/storage:cached
networks:
- pathien-network
ports:
- "8081:80"
- "443:443"
php-fpm:
container_name: pathien_php
image: jguyomard/laravel-php:7.3
volumes:
- ./:/var/www/
- ./ci:/var/www/ci:cached
- ./vendor:/var/www/vendor:delegated
- ./storage:/var/www/storage:delegated
- ./node_modules:/var/www/node_modules:cached
- ~/.ssh:/root/.ssh:cached
- ./composer.json:/var/www/composer.json
- ./composer.json:/var/www/composer.lock
- ~/.composer/cache:/root/.composer/cache:delegated
links:
- es01
networks:
- pathien-network
db:
container_name: pathien_db
image: mariadb:10.2
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: pathien
MYSQL_USER: pathien
MYSQL_PASSWORD: secret
volumes:
- pathien-data:/var/lib/mysql
networks:
- pathien-network
ports:
- "33060:3306"
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.6.1
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- cluster.initial_master_nodes=es01
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- es-data:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- pathien-network
kibana:
image: docker.elastic.co/kibana/kibana:7.6.1
container_name: pathien_kibana
environment:
- ./kibana.yml:/usr/share/kibana/config/kibana.yml
ports:
- "5601:5601"
networks:
- pathien-network
networks:
pathien-network:
driver: "bridge"
volumes:
pathien-data:
driver: "local"
es-data:
driver: "local"
如您所见,我有一个容器名称为 的数据库映像pathein_db
。我正在尝试从 Laravel 应用程序连接它,在.env
文件中设置凭据,如下所示。
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=pathein
DB_USERNAME=pathein
DB_PASSWORD=secret
然后我尝试运行迁移命令
$ docker-compose exec php-fpm php artisan migrate
但出现以下错误:
Illuminate\Database\QueryException : SQLSTATE[HY000] [1045] Access denied for user 'pathein'@'172.21.0.6' (using password: YES) (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')
at /var/www/vendor/laravel/framework/src/Illuminate/Database/Connection.php:669
665| // If an exception occurs when attempting to run a query, we'll format the error
666| // message to include the bindings with SQL, which will make this exception a
667| // lot more helpful to the developer instead of just the database's errors.
668| catch (Exception $e) {
> 669| throw new QueryException(
670| $query, $this->prepareBindings($bindings), $e
671| );
672| }
673|
Exception trace:
1 PDOException::("SQLSTATE[HY000] [1045] Access denied for user 'pathein'@'172.21.0.6' (using password: YES)")
/var/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
2 PDO::__construct("mysql:host=db;port=3306;dbname=pathein", "pathein", "secret", [])
/var/www/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70
Please use the argument -v to see more details.
这意味着它实际上无法连接到数据库。
我的配置有什么问题,我该如何解决?
你拼错了pathien。
在你docker-compose.yml
你有:-
MYSQL_DATABASE: pathien
MYSQL_USER: pathien
在.env
你有:
DB_DATABASE=pathein
DB_USERNAME=pathein
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句