Трудность подключения к SQLAlchemy с использованием SSHTunneLForwarding, хотя py mysql работает - PullRequest
0 голосов
/ 28 апреля 2020
import pandas as pd
from sshtunnel import SSHTunnelForwarder
import numpy as np
import datetime
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
#from snowflake.sqlalchemy import URL
import pymysql
import mysql.connector

server = SSHTunnelForwarder(
                            'xxx.xxx.xxx.xxx',
                            ssh_username='david',
                            ssh_password='PASSWD',
                            remote_bind_address=('127.0.0.1', 3306)
                            )
server.start()

db = pymysql.connections.Connection(
        host='127.0.0.1',
        user='david',
        passwd='PASSWD',
        database='SentimentProject',
        port=server.local_bind_port,
)


cursor = db.cursor()

engine = create_engine('mysql+pymysql://[david]:[PASSWD]@[127.0.0.1]/[SentimentProject]', echo=False)

print(db)
print(cursor)
print(engine)

Возвращает

<pymysql.connections.Connection object at 0x11b95c450>
<pymysql.cursors.Cursor object at 0x11b60fc90>
Engine(mysql+pymysql://[david]:***@127.0.0.1/[SentimentProject])

И затем, когда я запускаю это:

df = pd.read_csv("PostContents1-999.csv", index_col='post_id').fillna('')
df['post_timestamp'] = pd.to_datetime(df['post_timestamp'], unit='s')
df.head()

Возвращает фрейм данных, как и ожидалось.

Однако при запуске это

df.to_sql(name = 'BitcoinSubreddit', con = engine, if_exists = 'append', index = False)

Я получаю сообщение об ошибке OperationalError: (pymysql.err.OperationalError) (1045, "Access denied for user '[david]'@'localhost' (using password: YES)")

При запуске SHOW GRANTS FOR 'david'; внутри моей базы данных на моем сервере он возвращает следующее:

+--------------------------------------------------------------+
| Grants for david@%                                           |
+--------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'david'@'%' WITH GRANT OPTION |
+--------------------------------------------------------------+

Я нахожусь на утрата. У кого-нибудь есть предложения?

...