laradock 数据库连接问题
前言
最近用上了laradock来搭建环境和学习laravel5.5,也顺带学习使用docker。
真的是太好用了
遇到的问题
今天碰上了数据库连接的问题,写篇文章以作记录,欢迎大家指正交流
当我在 .env
使用一下配置时
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=root
链接数据库的会出这样的错:SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from `users` where `email` = 342174066@qq.com limit 1)
将DB_HOST改成:
DB_HOST=127.0.0.1
错误就变成了 SQLSTATE[HY000] [2002] Connection refused (SQL: select * from `users` where `email` = 342174066@qq.com limit 1)
正确的应该是:
DB_HOST=mysql
貌似这个坑文档都有提过,我在github上也找到了相关的Issues https://github.com/laradock/laradock/issues/178
假装会敲代码
本作品采用《CC 协议》,转载必须注明作者和本文链接
DB_HOST=mysql
用 127.0.0.1 访问的是php容器,php容器里没有mysql 。
https://docs.notadd.com/laradock/
主机3306端口占用的原因
@依剑听雨 原来是这样,http://laradock.io/getting-started/#usage laradock这里也有提到。我后面才发现
@xushaobo 3306 占用的话 dock 会直接报错的
@依剑听雨 嗯,是的,没看清问题,谢谢
刚踩了这个坑
那么你本机可以用Sequel Pro链接数据库吗?
@HectorChan Sequel Pro 没用过,用 navicat 的时候 host 是 127.0.0.1 或者 localhost
@lol173 不知道为什么我连不上···
终于找到问题了,谢谢
PHP7.2+laravel5.6+laravel-admin1.5 运行php artisan admin:install 出现以下错误:
laravel的.env数据库配置如下:
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=paysystem56
DB_USERNAME=root
DB_PASSWORD=root
请问这是什么原因?
感谢,成功解决了我的问题!谢谢!
@beck 您好你的问题解决了嘛?我也是这个问题…………
@beck 你的这个我也遇到了过了,你是用了lavadock的话
你在本机执行 php artisan migrate,使用的是你电脑的 php 环境,所以你在 .env 的 DB_HOST 可填 127.0.0.1
如果你使用命令
docker-compose exec workspace bash
进入容器内,执行php artisan migrate
, 就没有问题了,原因在于容器内运行代码的时候配置 DB_HOST=mysql, 到了容器外也就是我们的本机就不可用了
@lol173
你好,我是在
workspace
容器中执行数据迁移命令的,但也还是不行,还有其他什么原因导致这个问题吗?@lol173
打扰了,上个问题可能和
mysql
版本有关,我换成了5.7
之后是可以执行的设置成DB_HOST=mysql以后,又报错这个。
---mysql
php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution