我正在使用来自 docker hub 的官方 MySQL 映像并公开端口 3333:3306 以从外部连接。
我知道我必须将内部的绑定 IP 更改/etc/mysql/my.cnf
为该容器的 IP,并为以下用户授予权限:GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'container_ip';
所以我可以通过以下方式连接到该容器:
mysql -h container_ip -u root -p
但我收到了这个错误
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
顺便说一句,我也尝试从另一个容器中的 WordPress 连接,但它无法建立连接。这是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
- 我用这个 mysql 容器犯了什么错误?我无法连接到它。
- 容器的IP每次都可能发生变化
docker-compose up
。我该如何配置它?