python如何连接sql server数据库,ssh远程执行python本地脚本
本文主要介绍基于ssh的Python远程连接Mysql数据库的详细说明。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010后台安装支持库连接Mysql自定义查询功能
目录
如果你需要访问远程服务器的Mysql数据库,但是在Mysql数据库的安全期内,安全措施设置为只允许本地连接(即需要登录服务器才能使用),其他远程连接不能直接访问,并且相应的端口已经被修改,那么你需要基于ssh连接数据库。以这种方式连接数据库与Navicat中基于ssh的接口连接是一样的。
Navicat
连接数据库
背景
如果要连接Mysql,首先需要安装pymysqlpip install pymysql。
安装sshTUNELPIP,这个基于SSH的库,安装SSH Tunnel #,最新版本0.3.1。
建议安装最新的sshtunnel库。老版本库有一些bug。
安装支持库
基于ssh连接Mysql。可以查看sshtunnel的文档,里面有一些案例。
使用SSHTunnelForwarder(
(192.168.1.1, 2222),
ssh_password=123456 ,
ssh_username=root ,
远程绑定地址=(127.0.0.1 ,3306))作为服务器:
打印(“SSH连接成功”)
conn=pymysql . connect(host= 127 . 0 . 0 . 1 ,
port=server.local_bind_port
user=root ,
database=data ,
charset=utf8 )
打印(“mysql数据库连接成功”)
cursor=conn.cursor()
.#获取数据操作,此处省略。
cursor.close()
conn.close()
连接Mysql
上面的连接可以封装成一个函数,方便其他地方使用。
def mysql_ssh(sql,args=None):
使用SSHTunnelForwarder(
(192.168.1.1, 2222),
ssh_password=123456 ,
ssh_username=root ,
远程绑定地址=(127.0.0.1 ,3306))作为服务器:
打印(“SSH连接成功”)
conn=pymysql . connect(host= 127 . 0 . 0 . 1 ,
port=server.local_bind_port
user=root ,
database=data ,
charset=utf8 )
打印(“mysql数据库连接成功”)
cursor=conn.cursor()
打印(“光标获取成功”)
尝试:
Print(f 执行查询语句:{sql}参数:{args} )
游标. execute(sql,args)
打印(“数据查询成功”)
conn.commit()
打印(“交易提交成功”)
datas=cursor.fetchall()
成功=真
例外:
打印(“数据查询失败”)
数据=无
成功=假
打印(“关闭数据库连接”)
cursor.close()
conn.close()
返回数据,成功
注意点:
使用数据库时,必须以标准化的方式使用conn.commit()、cursor.close()和conn.close()。在防止参数引入不必要的bug时,建议使用该方法cursor.execute(sql,args),以防止sql注入的风险。相关参考:
Python txt数据加载乱码问题的升级解决方案
Python文件打包成exe可执行程序。
以上是Python基于ssh远程连接Mysql数据库的细节。关于Python的SSH远程连接Mysql的更多信息,请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。