Docker内的django无法连接到宿主机的MySQL数据库

  1. 首先django程序需要修改setting.py中的数据库配置的HOST

    IP通过在宿主机上通过ifconfig指令查看到docker0的IP地址,通常为172.17.0.1,宿主机访问docker的ip则是最后一位改为2,即172.17.0.2,宿主机和docker容器就是通过这个docker0网桥进行通信的。

  2. 配置mysql允许远程访问

编辑cnf文件,bind-address = 127.0.0.1改为bind-address = 0.0.0.0

1
vim /etc/mysql/mysql.conf.d/mysqld.cnf

进入mysql

1
2
3
> grant all on *.* to root@'%' identified by '你的密码' with grant option;
> flush privileges; # 刷新权限
> exit

再重启mysql,即可以从外部计算机通过root用户连接到此mysql数据库

1
2
/etc/init.d/mysql stop
/etc/init.d/mysql start