我无法在Mac OSX上使用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)在许多排列中授予权限,同时将HOST设置为'%' 2)删除并重新创建已安装的卷
主要是我希望能够在开发过程中从交互式shell访问MySQL数据库。
任何指导都会很棒。感谢。
答案 0 :(得分:0)
您应该使用IP地址127.0.0.1或localhost,或外部IP地址而不是0.0.0.0。地址0.0.0.0是special IP address,只有在创建侦听套接字时才有意义,但创建连接套接字没有任何意义。