Модуль python mysql.connector использует неправильный IP-адрес - PullRequest
0 голосов
/ 28 февраля 2019

У меня проблема при использовании модуля python mysql.connector в скрипте.Когда я запускаю, чтобы подключиться к Docker-контейнеру под управлением mysql v8 из моего скрипта, он пытается подключиться к неправильному IP-адресу.Ниже приведен пример функции:

import mysql.connector
def connect():
    db =  mysql.connector.connect(
        host="172.17.0.2",
        user="user",
        passwd="password",
        auth_plugin='mysql_native_password')

При запуске запускается следующая ошибка: mysql.connector.errors.ProgrammingError: 1045 (28000): доступ запрещен для пользователя 'user'@'172.17.0,1 '(используя пароль: ДА)

Вот IP-адрес контейнера подключения, к которому я пытаюсь подключиться

IP-адрес ":" 172.17.0.2 "

Чтодействительно интересным является то, что я могу нормально подключиться к базе данных с помощью mysql.connector при использовании в интерактивном сеансе Python. См. ниже

Python 3.7.2 (default, Jan 16 2019, 19:49:22) 
[GCC 8.2.1 20181215 (Red Hat 8.2.1-6)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import mysql.connector
>>> db =  mysql.connector.connect(
... host="172.17.0.2",
... user="user",
... passwd="passwd",
... auth_plugin='mysql_native_password')
>>> mycursor =  db.cursor()
>>> mycursor.execute("show databases")
>>> for x in mycursor: print(x)
... 
('food',)
('information_schema',) 

Вот версия MySQL-коннектора, которую я используюна Fedora 29

pip list |grep mysql-connector
mysql-connector-python 8.0.15       

Здесь также есть информация о версии докера

Client:
 Version:           18.09.2
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        6247962
 Built:             Sun Feb 10 04:13:54 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.2
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       6247962
  Built:            Sun Feb 10 03:47:25 2019
  OS/Arch:          linux/amd64
  Experimental:     false

Есть мысли о том, что может вызвать сбой при запуске этого скрипта?

1 Ответ

0 голосов
/ 28 февраля 2019

Скрипт не пытается подключиться к неправильному IP.Сообщение об ошибке

mysql.connector.errors.ProgrammingError: 1045 (28000): Access denied for user 'user'@'172.17.0.1' (using password: YES)

Означает, что этот пользователь user, проходящий через этот хост 172.17.0.1, не сможет подключиться к базе данных, к которой вы пытаетесь получить доступ на 172.17.0.2.Вам нужно разрешить удаленное соединение MySQL с хоста 172.17.0.1 для этого пользователя user, что позволит сценарию работать должным образом.

Обновление: Не уверен, что это связано, но скрипт python показывает, что пароль password, а консоль показывает, что пароль passwd.если удаленный доступ уже разрешен, убедитесь, что вы правильно ввели пароль

...