python连接数据库

前言

目前使用了python去连接过一部分数据库,在这里做个总结,在这里简单表述下,说的不清楚的或不对的地方请各位帮忙指正。

连接MySQL

先使用pip install pymysql安装第三方库(后面的也是一样),导入模块,填写数据库配置信息。

import pymysql
conn = pymysql.connect(host='IP地址', port=3306, user='用户名', password='密码',database='数据库名', charset='字符集')
cursor = conn.cursor()
sql=" select now()"
cursor.execute(sql)

通过ssh连接MySQL

在我们通过ssh远程连接数据库时,包括我们使用navicat、pl/sql等工具同样时要配置ssh的,在python中需要导入SSHTunnelForwarder模块,通过本地端口ssh到跳板机,再通过跳板机来连接远程数据库。

import pymysql
from sshtunnel import SSHTunnelForwarder
server = SSHTunnelForwarder(ssh_address_or_host=('20.0.0.1', 22),  # 指定SSH中间登录地址和端口号
                            ssh_username='root',  # 指定地址B的SSH登录用户名
                            ssh_password='123',  # 指定地址B的SSH登录密码
                            local_bind_address=('127.0.0.1',8080),  # 绑定本地地址A(默认127.0.0.1)及与B相通的端口(根据网络策略配置,若端口全放,则此行无需配置,使用默认即可)
                            remote_bind_address=('10.0.0.1', 3306)  # 指定最终目标C地址,端口号为mysql默认端口号3306
                            )
server.start() 
#conn中的user和password是目标地址c的用户名和密码
conn = pymysql.connect(host="127.0.0.1", port=server.local_bind_port, user="test", password="123", database=test, charset="utf8mb4")

连接oracle

orcle的连接大同小异,使用下面两种方法都可以实现。

import cx_Oracle as cx
conn = cx.connect('用户名','密码', 'IP地址:1521/orcl')
##conn = cx.connect('用户名/密码@IP地址:1521/orcl')

通过ssh连接oracle

同样我们使用上面mysql连接ssh的方法,把对应的信息改成oracle数据库的信息即可。

import cx_Oracle as cx
from sshtunnel import SSHTunnelForwarder
server = SSHTunnelForwarder(ssh_address_or_host=('20.0.0.1', 22),  # 指定SSH中间登录地址和端口号
                              ssh_username='root',  # 指定地址B的SSH登录用户名
                              ssh_password='123',  # 指定地址B的SSH登录密码
                              local_bind_address=('127.0.0.1',8080),  # 绑定本地地址A(默认127.0.0.1)及与B相通的端口(根据网络策略配置,若端口全放,则此行无需配置,使用默认即可)
                              remote_bind_address=('10.0.0.1',1521)  # 指定最终目标C地址,端口号为mysql默认端口号3306
                              )

server.start()
#conn中的user和password是目标地址c的用户名和密码
conn = cx.connect('test', '123','127.0.0.1:8080/orcl')

连接mongodb

使用地址和端口号就可以连接。

import pymongo
#建立数据库连接,指定ip和端口号
client = pymongo.MongoClient("127.0.0.1",27017)
#指定数据库
test = client.test
#指定数据库集合
collection= test.te

连接redis

使用连接池连接,在创建多个数据库连接时可将连接保存在连接池中,需要访问数据库时直接进行连接无需创建新的连接。

pool = redis.ConnectionPool(host='127.0.0.1',password='')   #实现一个连接池,没有密码时不填
r = redis.Redis(connection_pool=pool)
r.set('name','帅哥')
print(r.get('name').decode('utf8'))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值