在本地 docker 容器上连接到 MySQL 时出错:错误 2002 (HY000):无法连接到 '127.0.0.1' 上的 MySQL 服务器 (115)



我尝试连接到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

最新更新