Python 驱动连接 OceanBase 数据库
本文介绍如何通过 Python 驱动连接和使用 OceanBase 数据库。不同版本的 Python 环境需要使用不同的驱动,Python 3.x 系列需要使用 PyMySQL 驱动,Python 2.x 系列需要使用 MySQL-python 驱动。
前提条件
确保本地已部署 Python 语言运行环境。
Python 3.x 连接 OceanBase 数据库
Python 3.x 需要 PyMySQL 驱动进行 OceanBase 数据库连接及使用。
步骤一:获取数据库连接参数
参考 获取连接参数 文档,获取相应的租户连接参数,例如:
$ obclient -hxxx.xxx.xxx.xxx -P3306 -u a**** -p****** -Dtest
数据库连接参数包含了访问数据库所需的参数信息,在验证示例代码前,可通过数据库连接参数验证登录数据库,保证信息正确。
参数说明:
-h:OceanBase 数据库连接的域名。
-P:OceanBase 数据库连接端口,MySQL 模式租户默认是 3306。
-u:租户的连接账号。
-p:账号密码。
-D:数据库名称。
步骤二:安装 PyMySQL 驱动
PyMySQL 是在 Python 3.x 版本中用于连接 MySQL 服务器的一个库。PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。
有关 PyMySQL 的详细信息,请参考 PyMySQL 官网 和 相关 API 参考文档。
PyMySQL 有以下两种安装方式:
使用命令行安装
$ python3 -m pip install PyMySQL
源码编译安装
克隆源码。
$ git clone https://github.com/PyMySQL/PyMySQL
切换到 PyMySQL 目录。
$ cd PyMySQL/
编译安装。
$ python3 setup.py install
步骤三:编写示例代码
编辑运行示例test.py
,代码如下:
#!/usr/bin/python3
import pymysql
conn = pymysql.connect(host="xxx.xxx.xxx.xxx", port=3306,
user="a****", passwd="******", db="test")
cur = conn.cursor()
try:
#创建表 cities
sql = 'create table cities (id int, name varchar(24))'
cur.execute(sql)
#往 cities 表中插入两组数据
sql = "insert into cities values(1,'hangzhou'),(2,'shanghai')"
cur.execute(sql)
#查询 cities 表中的所有数据
sql = 'select * from cities'
cur.execute(sql)
ans = cur.fetchall()
print(ans)
#删除表 cities
sql = 'drop table cities'
cur.execute(sql)
finally:
cur.close()
conn.close()
修改代码中的数据库连接参数。参考如下字段,对应的值,则取自步骤一获取的数据库连接参数。
user:取自
-u
参数,租户的连接账号。password:取自
-p
参数,账号密码。host:取自
-h
参数,OceanBase 数据库连接的域名。port:取自
-P
参数,OceanBase 数据库连接端口,MySQL 模式租户默认是 3306。db:取自
-D
参数,数据库名称。
步骤四:运行示例代码
代码编辑完成后,运行 test.py
。
$ python3 test.py
返回以下结果,说明数据库连接成功,示例语句正确执行。
((1, 'hangzhou'), (2, 'shanghai'))
Python 2.x 连接 OceanBase 数据库
Python 2.x 需要 MySQL-python 驱动进行 OceanBase 数据库连接及使用。MySQL-python 是 Python2.x 版本中用于连接数据库的一个库。
步骤一:获取数据库连接参数
参考 获取连接参数 文档,获取相应的租户连接参数,例如:
$ obclient -hxxx.xxx.xxx.xxx -P3306 -u a**** -p****** -Dtest
数据库连接参数包含了访问数据库所需的参数信息,在验证示例代码前,可通过数据库连接参数验证登录数据库,保证信息正确。
参数说明:
-h:OceanBase 数据库连接的域名。
-P:OceanBase 数据库连接端口,MySQL 模式租户默认是 3306。
-u:租户的连接账号。
-p:账号密码。
-D:数据库名称。
步骤二:安装 MySQL-python 驱动
MySQL-python 是 Python 连接 MySQL 数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 建立。
有关 MySQL-python 的详细信息,您可参考 MySQL-python 官网 和 Github 文档。
MySQL-python 驱动可以通过 yum 安装,命令如下:
$ yum install MySQL-python
步骤三:编写示例代码
编辑运行示例test2.py
,代码如下:
#!/usr/bin/python2
import MySQLdb
conn= MySQLdb.connect(
host='xxx.xxx.xxx.xxx',
port = 3306,
user='a****',
passwd='******',
db ='test'
)
cur = conn.cursor()
try:
#创建表 cities
sql = 'create table cities (id int, name varchar(24))'
cur.execute(sql)
#往 cities 表中插入两组数据
sql = "insert into cities values(1,'hangzhou'),(2,'shanghai')"
cur.execute(sql)
#查询 cities 表中的所有数据
sql = 'select * from cities'
cur.execute(sql)
ans = cur.fetchall()
print(ans)
#删除表 cities
sql = 'drop table cities'
cur.execute(sql)
finally:
cur.close()
conn.close()
修改代码中的数据库连接参数。参考如下字段,对应的值,则取自步骤一获取的数据库连接参数。
host:取自
-h
参数,OceanBase 数据库连接的域名。user:取自
-u
参数,租户的连接账号。passwd:取自
-p
参数,账号密码。port:取自
-P
参数,OceanBase 数据库连接端口,MySQL 模式租户默认是 3306。db:取自
-D
参数,数据库名称。
步骤四:运行示例
代码编辑完成后,运行test.py
。
$ python test.py
返回以下结果,说明数据库连接成功,示例语句正确执行
((1L, 'hangzhou'), (2L, 'shanghai'))