我在macosx上的容器外部使用pymysql连接mysql容器时遇到了问题,尽管我可以使用mysql workbench连接到docker mysql。
我使用了以下docker-compose.yaml:
version: '3'
services:
db:
image: mysql:latest
volumes:
- ./data/db:/var/lib/mysql
ports:
- 6603:3306
restart: always
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_USER: testuser
MYSQL_PASSWORD: password
下面是pymysql
import pymysql
conn = pymysql.connect(
host='0.0.0.0',
port=6603,
user='testuser',
password='password',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
并收到以下错误:
OperationalError: (1045, "Access denied for user 'testuser'@'172.18.0.1' (using password: NO)")
当尝试以root身份登录时,同样的情况也适用。
我尝试过:1)在许多排列中授予特权,还将主机设置为“%”;2)删除并重新创建装入的卷
我主要希望在开发过程中能够从交互式shell访问mysql数据库。
任何指导都会很好。谢谢。
1条答案
按热度按时间gwo2fgha1#
您应该使用ip地址127.0.0.1或localhost,或外部ip地址,而不是0.0.0.0。地址0.0.0.0是一个特殊的ip地址,只有在创建侦听套接字时才有意义,但在创建连接套接字时没有意义。