Jestem nowy w Pythonie. Próbuję dokonać połączenia z bazą danych za pomocą bazy danych Python do MariaDB, który jest hostowany w mojej lokalnej sieci. Używam Sqlalchmemy, aby nawiązać połączenie. Ale w obliczu niektórych błędów to mój kod

from sqlalchemy import create_engine
engine = create_engine('MariaDBDialect://username:password@host:port/databasename')

Błąd, który otrzymuję

`Can't load plugin: sqlalchemy.dialects:MariaDBDialect`

Jeśli ktoś wie, co robię źle, daj mi znać. Z góry dziękuję.

5
shashank 22 luty 2019, 22:43

2 odpowiedzi

Najlepsza odpowiedź

Byłem po prostu zdezorientowany przez ten temat i stworzyłem krótki Post na blogu o ciąży.

Następujące rozwiązanie działa dla Pythona 3:

Wymagania

pip install SQLAlchemy
pip install PyMySQL

Kod

import sqlalchemy

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://user:password@host/dbname'

# Test if it works
engine = sqlalchemy.create_engine(SQLALCHEMY_DATABASE_URI, echo=True)
print(engine.table_names())

Tak, to naprawdę jest "MySQL", a nie "mariadb".

16
Martin Thoma 2 czerwiec 2019, 18:56

Wystarczy użyć MySQL + MySQLDB zamiast silnika MariaDB, pracują prawie podobnie.

create_engine('mysql+mysqldb://username:password@host:port/databasename')

Aktualizacja : Należy również zainstalować MySQL-Python dla Python2

pip install mysql-python

Lub mysqlClient dla Python3:

pip install mysqlclient
4
Vladimir Vishnevskyi 22 luty 2019, 19:59