是否可以与MySQL docker容器建立pymysql连接?

时间:2018-06-16 02:03:26

标签: python mysql docker pymysql docker-for-mac

我无法在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数据库。

任何指导都会很棒。感谢。

1 个答案:

答案 0 :(得分:0)

您应该使用IP地址127.0.0.1或localhost,或外部IP地址而不是0.0.0.0。地址0.0.0.0是special IP address,只有在创建侦听套接字时才有意义,但创建连接套接字没有任何意义。