Ошибка при доступе к базе данных mysql с движком sqlalchemy - PullRequest
0 голосов
/ 11 ноября 2018

Я создал базу данных в mysql и пытаюсь получить к ней доступ через python, используя sqlalchemy. Пожалуйста, смотрите ниже:

import mysql
from  mysql import connector
from sqlalchemy import create_engine
from sqlalchemy.engine import base
from mysql.connector.connection import MySQLConnectionAbstract
from mysql.connector.connection import MySQLConnection
from mysql.connector.cursor import MySQLCursor

def return_connection_string(database_name, database_user, database_password, database_host, database_port):
    try:
        connection_string = 'mysql+mysqlconnector://' + database_user + ':' + database_password + '@' + database_host + ':' + database_port + '/' + database_name
        print(connection_string)
        return connection_string
    except Exception as e:
        print('Encountered error while generating connection string for MySQL!')
        print(e)

t=return_connection_string('earningsdb','root','MyNewPass','127.0.0.1','3306')

engine = create_engine(t)

print(engine.table_names())

Все работает, кроме последнего оператора, который выдает следующую ошибку

engine.table_names () Traceback (последний вызов был последним):

Файл "", строка 1, в engine.table_names ()

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайта-пакеты \ SQLAlchemy \ двигатель \ base.py", строка 2136, в таблицах с self._optional_conn_ctx_manager (соединение) в качестве conn:

Файл "C: \ Users \ user \ Anaconda3 \ lib \ contextlib.py", строка 81, в введите вернуться далее (self.gen)

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайта-пакеты \ SQLAlchemy \ двигатель \ base.py", строка 1932, в _optional_conn_ctx_manager с self.contextual_connect () в качестве conn:

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайта-пакеты \ SQLAlchemy \ двигатель \ base.py", строка 2123, в contextual_connect self._wrap_pool_connect (self.pool.connect, None),

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайта-пакеты \ SQLAlchemy \ двигатель \ base.py", строка 2158, в _wrap_pool_connect return fn ()

Файл "C: \ Users \ userAnaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", линия 403, в соединении return _ConnectionFairy._checkout (self)

Файл "C: \ Users \ user \ Anaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", строка 788, в _checkout fairy = _ConnectionRecord.checkout (pool)

Файл "C: \ Users \ user \ Anaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", строка 532, в кассе rec = pool._do_get ()

Файл "C: \ Users \ user \ Anaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", строка 1193, в _do_get self._dec_overflow ()

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайт-пакеты \ SQLAlchemy \ Util \ langhelpers.py", линия 66, в выход compat.reraise (exc_type, exc_value, exc_tb)

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайт-пакеты \ SQLAlchemy \ Util \ compat.py", строка 187, в ререйзе повысить значение

Файл "C: \ Users \ user \ Anaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", строка 1190, в _do_get вернуть self._create_connection ()

Файл "C: \ Users \ user \ Anaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", строка 350, в _create_connection return _ConnectionRecord (self)

Файл "C: \ Users \ user \ Anaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", строка 477, в init самостоятельно .__ подключения (first_connect_check = True)

Файл "C: \ Users \ user \ Anaconda3 \ lib \ site-packages \ sqlalchemy \ pool.py", строка 671, в __connect connection = pool._invoke_creator (self)

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайта-пакеты \ SQLAlchemy \ двигатель \ strategies.py", линия 106, в соединении возврат диалект.подключение (* cargs, ** cparams)

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайта-пакеты \ SQLAlchemy \ двигатель \ default.py", линия 410, в соединении вернуть self.dbapi.connect (* cargs, ** cparams)

Файл "C:. \ Users \ пользователь \ Anaconda3 \ Lib \ сайт-пакеты \ MySQL \ connector__init __ ру", линия 173, в соединении вернуть MySQLConnection (* аргументы, ** кварги)

Файл "C: \ Users \ пользователь \ Anaconda3 \ Lib \ сайт-пакеты \ MySQL \ разъем \ connection.py", строка 62 в init super (MySQLConnection, self). init (* args, ** kwargs)

TypeError: super (type, obj): obj должен быть экземпляром или подтипом тип

Я просматривал другие сообщения с похожей ошибкой, но не мог понять, что именно нужно сделать, чтобы решить проблему.

Спасибо

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