mysql - 如何使用没有数据库名称的引擎对象查询数据库
问题描述
_CFG = {
'user': os.getenv("MYSQL_USER"),
'password': os.getenv("MYSQL_PASSWORD"),
'host': os.getenv("MYSQL_SERVER"),
'database': os.getenv("SENSOR_DB"),
'raise_on_warnings': True
}
早些时候我写了一个函数,它需要_CFG
.
connection = mysql.connector.connect(**_CFG)
这将返回连接对象或连接引擎!
但后来我意识到对于某些表我有不同的数据库,然后我决定创建没有连接引擎对象 ,'database': os.getenv("SENSOR_DB")
但这意味着我必须稍后指定数据库名称才能连接!
但是在我的工作场所,我们没有指定数据库名称,它给了我们查询结果。现在我没有查看 API,因为我无权访问它。所以我想知道我应该如何处理这个问题,我应该通过访问每个表查询的数据库对象吗?或其他一些方法。
其次,我最初尝试使用 SQLAlchemy ORM,但由于这个原因,我无法安装MySQLDb
. 我暂时只是坚持使用 mysql 连接器,因为这是我的家庭物联网基础设施项目。
解决方案
您可以在查询中使用dbname.tablename
而不是。tablename
MySQL 协议在连接期间仍然需要数据库名称,但只需使用您拥有的任何数据库,例如information_schema。(它是一个始终存在的虚拟数据库)
推荐阅读
- excel - HRESULT 异常:0x800A03EC(尝试通过 PowerShell 修改 Excel 中的单元格)
- android - 如何简单地将字符串从 android studio (kotlin) 传递到 arduino 串行蓝牙模块 (HC-05)?
- bash - Correct test for values in if statement in Bash
- swift - 知道平移手势何时通过视图边界
- excel - 如何使 VBA 命令按钮搜索提供的输入并更改状态(如果存在)?
- d3.js - 格式化日期后尝试在热图上排序日期
- python - 比较分组变量中的两个日期
- maven - 我可以从命令行引用 POM 属性吗?
- bitbucket - Bitbucket Cloud 拉取请求的代码覆盖率
- java - 如何计算像素位置?