要旨
我有一个应用程序希望通过tcp端口连接到mysql数据库。我正在构建一个docker容器,它将对云sql实例进行连接(数据库包含从其他地方导入的测试用例)。我希望能够从docker容器内部转发mysql端口,并从容器外部连接,但我得到了一个错误。
我试过的
数据库在容器中,这是可行的。
当我在本地容器中有一个数据库时,我可以这样连接:
# run in background, listening on port 13306
❯ docker run -p 13306:3306 -e MYSQL_ROOT_PASSWORD=test -d percona:5.7.26-centos
我正在尝试将我的django文件容器化,但我总是遇到这个问题:(2006, ’Can\‘t connect to local MySQL server through socket \‘/var/run/mysqld/mysqld.sock\’ (2 “No such file or directory”)
后来我发现docker在这个位置:/tmp/mysql.sock而不是/var/run/mysqld/mysqld.sock,我如何更改mysql.sock的位置才能看到/tmp/mysql.sock
这是我的docker-composr.yml:
version: '3&
在公司中,我们将一些应用程序迁移到Docker,但是应用程序已经连接到MySQL数据库。
我坚持的任务是应用程序在Docker上运行,以及应用程序I使用的MySQL数据库。但问题是数据库是空的。我需要连接到已经存在的DB,它是独立的服务器,或者将数据迁移到新创建的conternized。因此,我不知道哪一种方法最好,以及如何将已存在的db连接到已被篡改的应用程序中。
我想问一下什么是最好的方法?
a) Dockerize MySQL from official image and migrate all data from host.(but data is very big to migra