#方式一 直接連線
#!/usr/bin/python3
#a sample to use mysql-connector for python3
#see details from
import
pymysql
#設定sql
sql = '
select mobile,email,cust_short_name,cust_id,create_time from db_cust.t_cust_info where cust_id in ("cb0000031509","cp0000003520")and institution_type = "common" and record_status = 1 and `status` = "enable" order by id asc;
'def
mysql_test():
#建立資料庫連線
db = pymysql.connect(host='
192.168.3.15',
port=3306,
user='
tester',
passwd='
aa123456',
database='
db_cust',
)cursors =db.cursor()
#執行sql
cursors.execute(sql)
#接收查詢的資料
info =cursors.fetchall()
#列印查詢的二維陣列資料
for i in
range(len(info)):
for j in
range(len(info[0])):
(info[i][j])
#關閉連線
cursors.close()
db.close()
if__name__ == "
__main__":
mysql_test() #
方式二 跳板機ssh連線
import
pymysql
from sshtunnel import
sshtunnelforwarder
#傳入例項名和sql,返回查詢結果
defsshmysql(db, sql):
#配置ssh連線
server =sshtunnelforwarder(
ssh_address_or_host=('
140.130.74.54
', 4888), #
指定ssh登入的跳轉機的address
ssh_username='
***', #
跳轉機的使用者
ssh_password='
***', #
跳轉機的密碼
local_bind_address=('
127.0.0.1
', 1268), #
對映到本機的位址和埠
remote_bind_address=('
16.1.24.201
', 61113)) #
資料庫的位址和埠
server.start() #
啟用ssh
#資料庫賬戶資訊設定
db =pymysql.connect(
host="
127.0.0.1
", #
對映位址local_bind_address ip
port=1268, #
對映位址local_bind_address埠
user="
*****",
passwd="
*****",
database='
db_cust
', #
需要連線的例項名
charset='
utf8')
cursor =db.cursor()
cursor.execute(sql.encode(
'utf8
')) #
執行sql
data = cursor.fetchall() #
獲取查詢結果
#關閉資料庫連線
cursor.close()
return
data
if__name__ == "
__main__":
sql="
select * from t_cust_batch;
"selectresult = sshmysql('
db_cust
', sql)
importpymysql
class
condb():
defopenclose(fun):
def run(self,sql=none):
#建立資料庫連線
db=pymysql.connect(host='
localhost
',port=3306 ,user='
root
',password='
root
',db='
ljj',charset='
utf8')
#建立游標
cursor =db.cursor()
try:
#執行sql語句
cursor.execute(fun(self,sql))
#得到返回值
li=cursor.fetchall()
#提交事務
db.commit()
except
exception as e:
#如果出現錯誤,回滾事務
db.rollback()
#列印報錯資訊
print('
執行',str(fun),'
方法時出現錯誤,錯誤**:
',e)
finally
:
#關閉游標和資料庫連線
cursor.close()
db.close()
try:
#返回sql執行資訊
return
li
except
:
print('
沒有得到返回值,請檢查**,該資訊出現在condb類中的裝飾器方法')
return
run
@openclose
def runsql(self,sql=none):
if sql is
none:
sql='
select * from batch
'return
sql
@openclose
def runsql1(self,sql=none):
return sql
python運算元據庫
資料庫的操作在現在的python裡面已經變得十分的好用,有了一套api標準.下面的就是講講如何的去使用這套框架定義.此框架包含以下部分 connect parameters.其中的引數格式如下 dsn 資料來源名稱 user 使用者名稱 可選 password 密碼 可選 host 主機名 可選 d...
python 運算元據庫
目的 通過excel定義檢查指標項,然後通過python讀取指標,通過oracle sqlplus工具去執行獲取具體巡檢結果。unicode utf 8 coding utf 8 import os import sys import xlrd import paramiko reload sys ...
python運算元據庫
python運算元據庫都是通過資料庫驅動取操作的。現在主要有兩張,一種是通過pymysql,還有一種是通過sqlalchemy。在這裡可能還會有人說還有mysqldb模組也可以操作。確實是的,但是mysqldb對python3已經不支援了,所以這裡我就不討論了。第一種pymysql pymysql幫...