Sqlalchemy Python в Google CLoud SQL - PullRequest
0 голосов
/ 09 ноября 2018

Я пытаюсь подключиться к экземпляру Google Cloud SQL с помощью sqlalchemy, чтобы использовать функцию Pandas to_sql. Мой экземпляр имеет внутренний IP-адрес.

Я получил следующее на работу:

import MySQLdb

def get_con():
    return MySQLdb.connect(host='<IP Address>', user='root')

Однако, когда я использую sqlalchemy:

import sqlalchemy

def get_con():
    s = 'mysql://root@<IP Address>'
    engine = sqlalchemy.create_engine(s)
    return engine.connect()

Я получаю следующую ошибку:

_mysql_exceptions.OperationalError: (2002, 'Can\'t connect to local MySQL server through socket \'/var/run/mysqld/mysqld.sock\' (2 "No such file or directory")')

1 Ответ

0 голосов
/ 11 ноября 2018

Вы не сказали, какой драйвер MySQL вы используете, но я бы предположил, что это mysql-python, который не обновлялся в течение четырех лет. Я бы порекомендовал использовать другой драйвер.

Я пробовал это, используя mysql-connector-python, и это работает как ожидалось:

import sqlalchemy

s = "mysql+mysqlconnector://root@<IP Address>/<DB Name>"
engine = sqlalchemy.create_engine(s)
engine.connect()

То же самое с PyMySQL

import sqlalchemy

s = "mysql+pymysql://root@<IP Address>/<DB Name>"
engine = sqlalchemy.create_engine(s)
engine.connect()

Также убедитесь, что вы указываете здесь имя базы данных, оно отсутствует в вашем примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...