背景:
由于docker中localhost&127.0.0.1代表docker自己,而非宿主机,因此不能通过127.0.0.1:3306访问
解决
修改mysql配置,将绑定配置注释
vim /usr/local/etc/mysql
#bind-address = 127.0.0.1
mysql允许用户从远处ip访问
update user set host = '%' where user ='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;(可以指定某个ip)
flush privileges;
重启mysql
mysql.service restart
这样Telnet 就能连通
$ telnet 192.168.1.1 3306
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
J
&a�!NBGGPqky`%lmysql_native_password
laravel修改配置文件:
DB_HOST=192.168.1.1
这个ip是宿主机的ip
可能存在问题:
访问不同可尝试将防火墙关闭