python—是否可以将pymysql连接到mysql docker容器?

c9x0cxw0  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(550)

我在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数据库。
任何指导都会很好。谢谢。

gwo2fgha

gwo2fgha1#

您应该使用ip地址127.0.0.1或localhost,或外部ip地址,而不是0.0.0.0。地址0.0.0.0是一个特殊的ip地址,只有在创建侦听套接字时才有意义,但在创建连接套接字时没有意义。

相关问题