使用sqlalchemy的mariadb Python数据库连接

时间:2019-02-22 19:43:27

标签: python sqlalchemy mariadb

我是python的新手。我正在尝试使用python与本地网络上托管的mariadb数据库建立数据库连接。我正在使用sqlalchmemy建立连接。 但是面临一些错误 这是我的代码

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

我得到的错误是

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

如果有人知道我在做什么错,请告诉我。预先感谢。

4 个答案:

答案 0 :(得分:2)

仅使用mysql + mysqldb代替MariaDB引擎,它们的工作原理非常相似。

asyncSupported

更新: 您还应该为python2安装mysql-python

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

或python3的mysqlclient:

pip install mysql-python

答案 1 :(得分:1)

我只是对这个话题感到困惑,并创建了一个简短的blog post about connector strings

以下解决方案适用于Python 3:

要求

pip install SQLAlchemy
pip install PyMySQL

代码

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())

是的,它确实是“ mysql”而不是“ mariadb”。

答案 2 :(得分:1)

从SQLAlchemy 1.4.0b1开始,您可以使用mariadb方言和本机mariadb连接器。使用以下网址方案:'mariadb+mariadbconnector://'

先决条件:

  • SQLAlchemy 1.4.0b1可以通过 pip install --pre sqlalchemy
  • 安装
  • 还应安装MariaDB Connector / Python。它具有自己的系统依赖性,MariaDB Connector / C。

答案 3 :(得分:0)

正如 Stepan 所提到的,SQLAlchemy 现在直接支持 MariaDB 方言,这允许您使用官方的 MariaDB Python 连接器。

例如:

import sqlalchemy

# Define the MariaDB engine using MariaDB Connector/Python
engine = sqlalchemy.create_engine("mariadb+mariadbconnector://app_user:Password123!@127.0.0.1:3306/database_name")

有关这方面的更多详细信息,您可以在此处查看有关该主题的官方 MariaDB 博客文章 -> https://mariadb.com/resources/blog/using-sqlalchemy-with-mariadb-connector-python-part-1/

以及在第 2 部分中更深入地设置对象关系 -> https://mariadb.com/resources/blog/using-sqlalchemy-with-mariadb-connector-python-part-2/