在连接数据数据库SQL SERVER时出错,代码如下
import pymysql
import pandas as pd
sql = 'select * from test'
con = pymysql.connect(
host='127.0.0.1',
port=1433,
user='sa',
passwd='123456',
db='test'
,charset='utf8'
)
'''
host 数据库地址
user 用户名
port 端口
password 密码
db 数据库
charset 数据库编码
index_col 行索引,默认从0开始,表示第几列作为索引
header 列索引,默认0开始,表示第几行作为索引
'''
df = pd.read_sql(sql,con)
print(df)
报错原因:
pymysql.err.OperationalError: (2003, “Can’t connect to MySQL server on ‘127.0.0.1’ ([WinError 10061] 由于目标计算机积极拒绝,无法连接。)”)
配置管理工具如果找不到,在开始搜索:
安全性:SQL Server和Windows身份验证模式(右键数据库->属性)
sa账号:允许连接数据库引擎,登录名启用,且状态未锁定(安全性->登录名->sa->右键属性)
SQL SERVER数据库用Microsoft SQL Server Management Studio 工具可以连接,但使用Python一直连接不上
在一度找不到原因的情况下,几乎想要放弃,突然想到这个是SQL SERVER,是不是python导入的模块有区别?因为在使用这个语句连接Mysql是没有问题的。
查了下资料,果然模块pymysql是用来连接mysql的,还有个模块pymssql这个应该是用来连接SQL SERVER的
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
pip install --upgrade pip
pip install --upgrade setuptools
后来在此帖中找到答案:pymssql这个库没有找到对应的python3.8这个版本
https://www.cnblogs.com/xingyunqiu/p/12690143.html
需要自行下载安装,下载地址:
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymssql
找到对应的的包下载后使用指令进行安装:
pip install [目录]/[文件]
安装成功后,再简单更新下代码,连接正常,查询成功!!!
pymssql的数据库名键与pymysql稍有出入
import pymssql
import pandas
connect = pymssql.connect(host='127.0.0.1',port=1433,user='sa',password='123456',database='test',charset='utf8')
#服务器名,端口,账户,密码,数据库名,编码方式
if connect:
print("连接成功!")
else:
print("连接失败!")
sql = 'select * from test'
df = pandas.read_sql(sql,connect)
print(df)