python连接sql server方法总结

前几天想把爬取的招聘数据存到sql server数据库中,但是python程序一直连不上sql server,也想上网找博客来解决问题,但是千篇一律,讲得太简单并不能解决问题,最后自己仔细从sql server的登录设置、配置管理器、端口来着手考虑自己解决问题。现在总结一下方法。

1. 配置管理器

python连接sql server方法总结_第1张图片
首先需要登录启动相应的数据库实例,一开始的弹窗在还未启动服务器实例的时候是无法登录连接到对象资源管理器的,所以需要关闭一开始的弹窗,手动在本地服务器组中选择安装好的实例,右键点击“服务控制”启动,然后才可以登录连接其对象资源管理器。python连接sql server方法总结_第2张图片
已连接的数据库实例也要确保能使用sql server角色的方式登录
python连接sql server方法总结_第3张图片
在安全性查看数据库的用户,给用户设置好密码,确保你所用到的用户能登陆数据库。可以使用这个用户点击“连接”输入用户名和密码测试一下你所用的的用户是否真的能登上数据库

2. 配置管理器

python连接sql server方法总结_第4张图片
在配置管理器的SQL Server网络配置中要启用相应数据库实例的TCP/IP。

3. 使用pymssql或pyodbc连接sql server

我还是比较推荐使用pyodbc的,因为pyodbc的文档更为丰富,异常报错信息也要比pymssql明确,更有利于debug。

pymssql
conn = mssql.connect(host='localhost',
                     server=r'DESKTOP-3F568LV\MSSQL_INSTANCE',
                     user='你的登录名',
                     password='你的密码',
                     database='你创建好的数据库',
                    charset='utf8')

user\password\database,都比较容易,关键是host,server怎么赋值。server就是在sql server连接登录好对象资源管理器的服务器实例(安装时就已经创建好的),host的赋值具体看sql server 的tcp/ip的属性。

python连接sql server方法总结_第5张图片
其实许多人没连上sql server主要还是网络端口的问题,1433是sql server默认端口,要确保1433端口开放才能连上,方便连接最好在ipall把的TCP动态端口留空,设置一个1433固定端口。手动启用127.0.0.1/0.0.0.0/localhost的ip地址和设置好端口。

python连接sql server方法总结_第6张图片
最好修改后,还要重启相应的服务才能生效。然后在cmd使用netstat -an命令查看相应ip的1433端口是否开放(一般由应用程序来自动开放端口,无法手动开放)。最后根据tcp/ip属性的ip地址赋值host就好了。

如果还是不能连上,则很有可能是防火墙屏蔽了该端口。需要在防火墙新建端口的入站出站规则。

pyodbc
command = 'DRIVER={用户数据源名称};server=localhost;DATABASE=jobinfo;UID=用户名;PWD=密码'
conn = pyodbc.connect(command)

因为pyodbc依赖于ODB数据源管理程序来连上sql server,所以需要手动添加sql server为用户数据源。driver赋值为用户数据源中相应的名称。server类似于pymssql的host,不在此赘述

python连接sql server方法总结_第7张图片
在“你想连接哪一个sql server”那里选择你创建好的服务器实例,最后一步向导测试一下是否能连接成功。

THE END

你可能感兴趣的:(数据库)