注意:在安装前确保anaconda环境变量配置好了,相关指令可以正常使用。我的安装环境是anaconda2,windows 64位
python 连接数据库通常要安装第三方模块,连接 MS SQL Server 需要安装 pymssql 。由于 pymsql 依赖于 FreeTDS,对于先于 2.1.3 版本的 pymssql,需要先安装 FreeTDS。由于早期版本的 pymssql 只提供了 windows 下的 wheel 打包,其他平台(如 linux)需要从源码包编译安装,那需要先安装 freetds-dev 包,以提供必要的头文件。
----原文地址:http://www.cnblogs.com/baiyangcao/p/pymssql_basic.html
Python连接SQL Server数据库 - pymssql使用基础:https://www.cnblogs.com/baiyangcao/p/pymssql_basic.html
freetds(http://www.filewatcher.com/m/freetds-0.82.tar.gz.1596755-0.html)
Python 想要和MSSql数据库进行交互,首先要下载名为"pymssql"的包,然后import该包即可。
已解决:pymssql._pymssql.OperationalError: (20009, b’DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\nDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (服务器地址)\nNet-Lib error during Unknown error (10060)\n’)
今天在使用python3.7中的pymssql 连接sqlserver的时候遇到的问题:
前面学完了SQL Server的基本语法,接下来学习如何在程序中使用sql,毕竟不能在程序中使用的话,实用性就不那么大了。
环境 : python3.6 / win10 / vs2017 / sqlserver2017
在进行SQL数据库连接之前,我们需要先了解一下pymssql库。有关pymssql的解释推荐大家去官网学习。网上有关这方面的知识大部分是实例为主,不利于学习。另一方面,经过他人咀嚼过的知识也总是差那么点味道。
python操作sql server,可以使用pymssql,成功安装pymssql后,按照如下的方法,可以连接数据库并执行查询操作:
为什么:因为这是目前能想到的既要满足数据库的表名不冲突,又能够创建很多数据库表的最简便的方法
上一篇文章已经介绍过 airflow ,相信需要的人早已上网搜索相关资料,已经开始动手干了,没错,就是干,喜欢一件事件,请立即付诸行动,不要拖,时间一长,就凉了。
补充知识:python pymssql使用时,使用fetchone获取的值怎么在while里操作多条数据
C:\Users\MACHENIKE\PycharmProjects\untitled9\venv\Scripts\python.exe C:/Users/MACHENIKE/PycharmProjects/untitled11/venv/Online-Bookstore-Management-System-master/v1.0/Book_informationUI.py Traceback (most recent call last): File “src\pymssql.pyx”, line 636, in pymssql.connect File “src_mssql.pyx”, line 1964, in _mssql.connect File “src_mssql.pyx”, line 682, in _mssql.MSSQLConnection.init File “src_mssql.pyx”, line 1690, in _mssql.maybe_raise_MSSQLDatabaseException _mssql.MSSQLDatabaseException: (18456, b”\xe7\x94\xa8\xe6\x88\xb7 ‘SA’ \xe7\x99\xbb\xe5\xbd\x95\xe5\xa4\xb1\xe8\xb4\xa5\xe3\x80\x82DB-Lib error message 20018, severity 14:\nGeneral SQL Server error: Check messages from the SQL Server\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (localhost)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (localhost)\n”)
👋 你好,我是 Lorin 洛林,一位 Java 后端技术开发者!座右铭:Technology has the power to make the world a better place.
1.安装epel源: yum -y install epel-release 2.安装pip: yum -y install python-pip 3.清缓存: yum clean all 4.升级pip: pip install --upgrade pip 5.安装pymssql: pip install pymssql 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import pymssql 5 6 class MSSQL:
linux连接SQL Server,pymssql安装包下载,链接:https://pan.baidu.com/s/1zXyhvatpoaFRpcptmv0reA 密码:y3w1
首先需要安装pymssql模块 配置下freetds #cat /usr/local/freetds/etc/freetds.conf # $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $ # # This file is installed by FreeTDS if no file by the same # name is found in the installation directory. # # For infor
#./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --with-gnu-ld --enable-shared --enable-static
Peewee 默认支持 Sqlite、MySQL、PostgreSQL 三种数据库,如果要使用其他数据库,需要同时安装扩展库。比如 SQL Server,需要安装 peewee-mssql。
在Python中,我们经常需要与各种数据库进行交互,其中MySQL和SQL Server是两个常见的选择。本文将介绍如何使用pymysql和pymssql库进行基本的数据库操作,并通过实际代码示例来展示这些操作。
# coding=gbk import sys import pymssql #尝试数据库连接 try: conn = pymssql.connect(host="192.168.1.43",user="sa",password="sa01!", database="master") except pymssql.OperationalError, msg: print "error: Could not Connection SQL Server!please check your dblink configure!" sys.exit() else: cur = conn.cursor() #查询数据库 query="select name, database_id, recovery_model_desc from sys.databases" cur.execute(query) conn.commit rows = cur.fetchall() print (' ') print ('-----结果返回中------- ') print (' ') for (name,database_id,recovery_model_desc) in rows: database_id=bytes(database_id) #将int转换转换为字符串类型 print ('数据库名:' +str(name)+';') print ( '数据库id:' +database_id ) print ( '数据库恢复模式:'+str(recovery_model_desc) ) print (' ') print ('-----以上是所有结果!------- ') #关闭连接,释放资源 cur.close() conn.close()
在使用 Python 连接 SQL Server 数据库并执行 SQL 查询时,可能会遇到如下错误:
Python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以。如果想链接操作SQL server,需使用第三方包pymssql
SQL Server中涉及到中文的缺省字符集是CP936,所以将charset配置为CP936,就解决了中文乱码的问题。
以前用php连mssqy时也经常出现中文乱码(中文变问号)的问题,那时就明白是编码没设置好导航,现在的Python连mssql数据库也同样出现这问题,问题一样,解决的办法当然也会相似,现在我们来看看解决方法。
只要把python脚本保存为utf-8的格式,那么无论是eclipse还是Python shell都可以正常使用中文了,哈哈,太爽了!!!!通杀所有2.7以上python版本
工具:django-pyodbc-azure django-pyodbc-azure这个工具是目前据我所知最好用的django链接mssql的库 它有很多版本,需要配合你的Django版本,来下载。附上网址:https://pypi.org/project/django-pyodbc-azure/1.11.0.0/ 可以从历史版本里看看说明文档,看是否适合你的django版本,这里看1.11版本的说明文档。
1、./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static
我们的密码破解工具一共分为如下六个部分,前面四个部分我们都有在之前的文章中介绍过了,点击蓝色字体即可跳转查看。
众所周知, pymssql 库并不支持(暂时?)调用存储过程,只能使用原生的sql 语句让其调用。
一)安装前检查(使用securable.exe 或 LeoMoon CPU-V.exe):
(一) 前言 本文说明如何连接Oracle、MySQL、sqlserver,以及执行sql、获取查询结果等。 (二) DB-API DB-API阐明一系列所需对象和数据库访问机制的标准。 Python操作数据库的模块如果遵循DB-API的标准(应该都会遵循这个标准),函数、方法的名称及功能应该是差不多的(下面几张表格列出了部分内容),就是传的参数可能有点区别。
pip在线安装十分方便,有时候某些服务器并没有直接联网,需要下载好安装包上传到服务器上进行安装,不经常用,还是有点小麻烦的。
Python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接MySQL数据库请求时,都是独立的去请求访问,相当浪费资源,而且访问数量达到一定数量时,对mysql的
2 pandas读写数据库 在python连接好数据库后,pandas可以利用read_sql()方法将数据读入DataFrame。这里可以看一下代码。
当数据库为MySQL,PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数。
靠pymssql通路SQL Server时刻,直接地python没有问题的执行。靠mod_wsgi和Apache当部署。所有请求被发现hang然后数据库查询。
哈喽大家好,前段时间,有个读者提了个需求,将excel文件批量存储到sqlserver,不知道大家sqlserver用的多不多,我是毕业后就没用过了,基本都是和mysql打交道。
我是使用pymssql完成的sqlserver,首先下载符合版本的pymssql的whl,然后安装,在pycharm的default setting- project Interpreter中确定项目的Interpreter有pymssql,然后就开始了~
有一个自己的代理ip池,并且经常去维护它的话,自身的ip就没那么容易被封掉, 下面是检测代理ip是否可用的方法, 原理是从我存入数据库的ip中提取出所有的ip逐个去检测,(访问一个稳定的网站,如果返回200就视为可用) 如果可用的话就保留,如果不可用就调用delete方法,从数据库中删除掉。 这就是筛选的方式,挺简单的,那么肯定会有人问,爬取的过程和这个步骤一起做了不行吗? emm答案是肯定行的,因为我爬取西刺代理被封过一次ip,爬取速度太快了,所以我还是分步吧。 封一次ip又要等几天。很烦。。。。。。。。
紧接昨天的文章Windows下载安装配置SQL Server、SSMS,使用Python连接读写数据,我们已经安装和配置好了sqlserver,也成功测试了如何利用Python连接、读写数据到数据库。
默认的各种exporter有时候用起来都不够顺手,特殊情况下,我们还可以自己写sql然后通过python包装下,将metrics发送到pushgateway,进而上报到Prometheus里面。
以上python脚本首先从test002中将数据查询出来,将结果集使用BCP写入tempData.csv文件中,然后再使用BCP将文件中的数据写入表test001中。此时可以看到test001中现在已经有数据了。
为了避免反复的手手工从后台数据库导出某些数据表到Excel文件、高效率到多份离线数据。
############################################################## # Copyright (C), 2009-2010, aliyun # FileName: dbunit.py # Author: elbert.chenh # Version: 0.1 # History: # <Author/Maintainer> <Date> <Modification> # elbert.chenh 10/07/11 Create this file ############################################################# import sys import ConfigParser import datetime,time import binascii import os import types import os import pdb import pymssql class DBUnit: def __init__(self,user=None,passwd=None,host=None,database=None): try: self.connection = pymssql.connect(host=host, user = user, password =passwd, database=database) self.cursor= self.connection.cursor() except: print "Could not connect to DB server." exit(0) def __del__(self): self.cursor.close() self.connection.close() def read(self,Sql,param=None): '''Exec select sql , return type is Tuple,use len fun return select row num use param like this: Sql=select * from table where param=%s and param1=%s param=(value1,valuei2) ''' try: cursor = self.connection.cursor() if param==None: cursor.execute(Sql) rs = cursor.fetchall() cursor.close() else: cursor.execute(Sql,param) rs = cursor.fetchall() cursor.close() except Exception,e: print e rs = () return rs def write(self,sql,param,iscommit=True): try: cursor = self.connection.cursor() print sql n = cursor.executemany(sql,param) if iscommit : self.connection.commit() return n except Exception,e: print e self.connection.rollback() return -1 def writeOneRecord(self,sql): try: cursor = self.connection.cursor() n = cursor.execute(sql) self.connection.commit() return int(cursor.lastrowid) except: self.connection.rollback() return -1 if __name__ == '__main__': a = time.time() db = DBUnit('accelbert08','a1234561','cacelbert01.mysql.alibabalabs.com:3306','elbert08') //不使用默认端口 rs = db.read("select count(*) from t_file") print rs #db.delete(dictinu)
如果有条件可以使用远程连接或者TeamViewer等工具,操作带GUI的数据库管理器,实施起来可以很省心。可以直接查看结果,模板化查询甚至提示语句错误等。
今天刚从老家回来,劳碌了几天了。。。干活是真滴累啊, 回来刚记起来我数据库里还存着上次qiyunip抓下来的代理ip 所以就花了几分钟来写了这个脚本来检测一下代理ip是否可用 因为是在数据库里面的了,这个运行起来比较省事, 因为最开始我写的是单线程的,所以运行起来每一个ip最少要花3s,比较浪费时间 一共是9700多个ip,开始的时候我单线程跑了1000个左右,实在是等不了了 所以我又花了几分钟优化了一下,(加了个多进程,10个进程跑起来还是挺快的) 经过优化后的多进程把剩下的9k多ip跑完共花了37分钟左
领取专属 10元无门槛券
手把手带您无忧上云