我尝试连接到MySQL数据库,该数据库在我的本地docker上作为docker服务(从MySQL:5.7image创建(运行。当我尝试时:
mysql -u myuser -p mydb -h 127.0.0.1
我得到以下错误:ERROR 2002 (HY000): Can't connect to MySQL server on '127.0.0.1' (115)
MySQL服务的docker设置如下:
networks:
front-tier:
name: front-tier
attachable: true
ipam:
config:
- subnet: 70.28.0.0/16
back-tier:
name: back-tier
attachable: true
services:
mysql:
image: mysql
hostname: mysql
deploy:
restart_policy:
condition: on-failure
placement:
replicas: 1
labels:
com.dgyar.description: "Data node"
com.dgyar.department: "IT"
command: --sql_mode=""
environment:
MYSQL_ROOT_PASSWORD: ******
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: ******
MYSQL_ROOT_HOST: '%'
networks:
- back-tier
volumes:
- "/mnt/mysql:/var/lib/mysql"
您需要将MySQL容器中的端口映射到主机上,以便通过命令访问它。
例如
networks:
front-tier:
name: front-tier
attachable: true
ipam:
config:
- subnet: 70.28.0.0/16
back-tier:
name: back-tier
attachable: true
services:
mysql:
image: mysql
hostname: mysql
deploy:
restart_policy:
condition: on-failure
placement:
replicas: 1
labels:
com.dgyar.description: "Data node"
com.dgyar.department: "IT"
command: --sql_mode=""
environment:
MYSQL_ROOT_PASSWORD: ******
MYSQL_DATABASE: mydb
MYSQL_USER: myuser
MYSQL_PASSWORD: ******
MYSQL_ROOT_HOST: '%'
networks:
- back-tier
volumes:
- "/mnt/mysql:/var/lib/mysql"
ports:
- "5000:3306"
mysql -u myuser -p mydb -h 127.0.0.1 -P 5000