当前位置: 首页 > article >正文

使用Python3 连接操作 OceanBase数据库

注:使用Python3 连接 OceanBase数据库,可通过安装 PyMySQL驱动包来实现。

本次测试是在一台安装部署OBD的OceanBase 测试linux服务器上,通过python来远程操作OceanBase数据库。

一、Linux服务器通过Python3连接OceanBase数据库

1.1 安装python3.6

[root@obproxy-node ~]# mkdir /usr/local/python3
[root@obproxy-node ~]# cd /usr/local/python3
[root@obproxy-node ~]# wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
[root@obproxy-node ~]# tar -zxf Python-3.6.8.tgz
[root@obproxy-node ~]# cd /usr/local/python3/Python-3.6.8
-- 不加CFLAGS=-fPIC,会在升级3.0的时候遇到编译问题
[root@obproxy-node Python-3.6.8]#  ./configure --prefix=/usr/local/python3 --enable-shared CFLAGS=-fPIC 
[root@obproxy-node Python-3.6.8]#  make && make install
[root@obproxy-node Python-3.6.8]#  ln -s /usr/local/python3/bin/python3 /usr/bin/python3
[root@obproxy-node Python-3.6.8]#  ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
 
-- 设置环境变量
[root@obproxy-node Python-3.6.8]#  cat >>/etc/profile<<EOF
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/python3/bin
EOF
[root@obproxy-node Python-3.6.8]#  source /etc/profile
[root@obproxy-node Python-3.6.8]#  cp /usr/local/python3/Python-3.6.8/libpython3.6m.so.1.0 /usr/lib64  -- 如果不操作该步骤,安装PyMySQL会报如下错误:
[root@obproxy-node ~]#  cd /root/soft/PyMySQL-main
[root@obproxy-node PyMySQL-main]# python3 -m pip install PyMySQL
python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory

1.2 安装PyMySQL

-- 登陆 https://github.com/PyMySQL/PyMySQL 下载 安装包 PyMySQL-main.zip 并上传至服务器
[root@obproxy-node ~]# unzip PyMySQL-main.zip
[root@obproxy-node ~]# cd PyMySQL-main
[root@obproxy-node PyMySQL-main]# python3 -m pip install PyMySQL                                   
Collecting PyMySQL
  Downloading https://files.pythonhosted.org/packages/4f/52/a115fe175028b058df353c5a3d5290b71514a83f67078a6482cff24d6137/PyMySQL-1.0.2-py3-none-any.whl (43kB)
    100% |████████████████████████████████| 51kB 42kB/s
Installing collected packages: PyMySQL
Successfully installed PyMySQL-1.0.2

1.3 编辑python脚本连接OceanBase数据库

[root@obproxy-node PyMySQL-main]# su - admin
Last login: Mon Dec 19 16:43:57 CST 2022 on pts/0
-- 编辑python3ConnOceanBase.py脚本
[admin@obproxy-node python]$ cat python3ConnOceanBase.py
#!/bin/python3
 
import pymysql
 
conn = pymysql.connect(host="10.110.3.xxx", port=2883,
                       user="root@sys#xxx", passwd="ob@Passwd", db="oceanbase")
 
try:
    with conn.cursor() as cur:
        cur.execute('SELECT * FROM mysql.user;')
        ans = cur.fetchall()
        print(ans)

except Exception as err:
    print(err)

finally:
    conn.close()
 

-- 执行python
[admin@obproxy-node python]$ python3 python3ConnOceanBase.py 
(('%', 'root', '*64b5bdb98225656e2771fc9516fc3a178ec6da86', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0, 'ob_native_password', '', '', 'N'), ('%', 'ORAAUDITOR', '*9753e2cf9d2dcd5e13c052f581c310ac70c62723', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'Y', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0, 'ob_native_password', '', '', 'Y'), ('%', 'proxyro', '*64b5bdb98225656e2771fc9516fc3a178ec6da86', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0, 'ob_native_password', '', '', 'N'), ('%', 'obuser1', '*db2baac4701f4e4e3e57d4a596744d7bdda3a7cc', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', '', '', '', '', 0, 0, 0, 0, 'ob_native_password', '', '', 'N'))

-- 可以正常查询OceanBase数据库上的表。

http://www.kler.cn/a/429684.html

相关文章:

  • 【C语言】字符串函数详解
  • 基于微信小程序的智能停车场管理系统设计与实现(LW+源码+讲解)
  • 【AI游戏】基于OpenAI打造自动生成剧情的 Python 游戏
  • type 属性的用途和实现方式(图标,表单,数据可视化,自定义组件)
  • Docker Desktop 构建java8基础镜像jdk安装配置失效解决
  • Android SDK下载安装(图文详解)
  • 碰撞算法8 --直线与圆的碰撞
  • UART+DDR3+HDMI联合图像存储与显示系统
  • git 过滤检出包含windows平台不兼容文件
  • FSC认证是什么?FSC认证费用
  • Elasticsearch一分钟
  • 如何借助 LLM Gateway (LLM网关)同时接入多款 AI 大模型?
  • 2024年深圳杯数学建模C题编译器版本的识别问题解题全过程文档及程序
  • C语言 字符数组/多维数组/函数/作用域
  • 【MySQL 进阶之路】存储引擎和SQL优化技巧分析
  • 力扣刷题TOP101: 24.BM30 二叉搜索树与双向链表
  • STELLA软件入门:应用STELLA软件建立系统动态模型的过程;STELLA软件安装、界面及功能讲解等;在农业、生态及环境等科学领域应用
  • 模拟退火算法
  • 计算机网络练习题
  • Python教程104:生成26个英文字母有哪些方法?
  • LEED认证是什么?LEED认证银级和金级之间的区别在哪里
  • Agent AI: Surveying the Horizons of Multimodal Interaction---医疗保健、视频音频、多模态
  • python学习笔记—4—数据类型与数据类型转换
  • Linux上的C语言编程实践
  • JVM(Java虚拟机)类加载子系统是Java运行时环境的重要组成部分
  • 【opencv入门教程】14. 矩阵乘除运算