我正在使用来自docker hub的official MySQL image并公开端口3333:3306以从外部进行连接。
我知道我必须将import unittest
import re
def isDigit(s):
return re.match(r'[\d.]+', s)
def stringParse(input):
input = [i.strip() for i in input.split()]
input = filter(lambda x: isDigit(x), input)
input = map(lambda x: float(x), input)
return sum(input)
class TestIntegerMethods(unittest.TestCase):
def test_inches(self):
self.assertEqual(stringParse("12 inches makes 1 foot"), 13.0)
def test_pi(self):
self.assertTrue(stringParse('pi is 3.14'), 3.14)
if __name__ == '__main__':
unittest.main()
内的绑定IP更改为此容器的IP并为用户授予权限,例如:/etc/mysql/my.cnf
,以便我可以通过以下方式连接到此容器:
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'container_ip';
但我收到了这个错误
mysql -h container_ip -u root -p
顺便说一句,我也尝试从另一个容器中的WordPress连接,但它无法建立连接。这是ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
docker-compose.yml
version: '2'
services:
mysqldb:
image: mysql:5.6
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
- ./mysql-data:/var/lib/mysql
- ./mysql-import-data:/import-data
ports:
- "3333:3306"
blog:
image: webdevops/php-nginx:ubuntu-14.04
environment:
WEB_DOCUMENT_ROOT: /usr/share/nginx/html
volumes:
- ./blog:/usr/share/nginx/html
ports:
- "8080:80"
depends_on:
- mysqldb
时,容器的IP都可能会更改。我该如何配置?答案 0 :(得分:0)
另外,您需要使用IP地址,否则mysql客户端将尝试连接unix套接字。
mysql -h 127.0.0.1 --port 3333 -u root -p
如果您尝试从博客容器内部进行连接,则可以使用mysqldb作为3306端口的主机。