Docker 内 访问宿主机 MySQL

485 阅读1分钟

安装 MySQL

sudo apt update
sudo apt install mysql-server
mysql -u hayley -p

参考: www.digitalocean.com/community/t…

创建 MySQL用户

进入mysql:

CREATE USER 'hayley'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'hayley'@'localhost' WITH GRANT OPTION;

创建表

进入mysql:

CREATE TABLE ImageInfo(     img_id INT PRIMARY KEY,     img_path VARCHAR(255),     img_quality TINYINT,     img_style VARCHAR(100),     img_roomtype VARCHAR(100))  ENGINE=INNODB;

Docker内配置

  1. requirements.txt中添加pymysql
  2. 重新docker build ./docker-run.sh -b prod

Docker内连接MySQL的端口配置[重点]

查看IP

在宿主机ifconfig可以看到docker0的ip,一般是 172.17.0.1,在docker内使用该IP

配置MySQL监听端口

sudo vim /etc/mysql/mysql.conf.d
把binding行注释掉
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql start

参考:www.cnblogs.com/gaidy/p/113…

赋予docker0 IP权限

 mysql>GRANT ALL PRIVILEGES ON *.* TO 'hayley'@'%' IDENTIFIED BY 'PASSWD' WITH GRANT OPTION;
 mysql>flush privileges;

其他

#查看最近的Docker Log
sudo docker logs -f -t --tail 10 s12