PyCharm 连接 SQLSever

2023-11-13

        说实在的能遇到的错误差不多都遇到了,学生小白自己搞有点困难(不得不说新的错误一个接一个真的很崩溃qvq),在查阅参考各位大佬的文章及一些知识的相关资料,最终完成连接。

        若有不足之处,望各位大佬指正。

目录

1、数据库无法连接服务器

2、检测自己的SQL Sever是否有打开密码功能

3、建立空数据库并建立一个专属用户

4、打开1433端口

5、在pycharm中测试 

 6、SQL Sever在pycharm中的导入数据 


1、数据库无法连接服务器

        第一步就有问题,使用Windows身份验证连接自己的服务器无法登录。

        解决方法:右击电脑->管理

         

点击服务和应用程序->SQL Server配置管理器->SQL Server服务

         点击SQL Server服务后,双击SQL Server(SQLEXPRESS)把登录身份改为内置账户并选择为Network Service。

       

 再回去登录数据库就能连接上服务器啦! 

        查阅资料时大部分说是需要启动SQL Server所有服务即可,但是我的SQL Server代理无论手动还是自动都无法启动,以为是因为SQL Server代理无法启动的原因,查资料说可能和版本有关(这里的资料蛮少的)等等很复杂,所以这里浪费了一些时间。 后来在看了一堆资料里,有一则说可能是登陆身份的账户问题,试了一试成功啦!(光代理无法启动这里把我难受住了)

2、检测自己的SQL Sever是否有打开密码功能

        右击点击属性

       

属性->安全性->点击SQL Server和Windows身份验证模式,点击确定

3、建立空数据库并建立一个专属用户

       (1)  在sqlserver中建立,首先需要点击新建查询并且执行以下操作

        执行会出现一个smallfish的新数据库(smallfish是我自己起的数据库名称,可以其自己喜欢的名字,后续需要放在pycharm里使用

        (2)右击登录名->新建登录名

         

(3)编辑登录名xiaofish是我自己的用户名,后续需要放在pycharm里

         

(4)选择SQL Server身份验证,自定义密码(我这里是123456,定的简单点就好);

并且把强制实施密码策略(后边括号内为F、X、U)的对号去掉(否则后边会遇到各种登录问题)

        

(5)点击用户映射,将你自己建的数据库打勾(上边自己新建的数据库smallfish,这里也显示了自己编辑的用户名);并且将下边的db_ower对勾选中:

        

(6)(接下来进行验证)点击左上角先断开连接 ,再点击左边的连接对象资源管理器

 

        

(7) 点击SQL Sever 身份验证并输入账号密码,如果成功连接,就会进入数据库,你只能对你用户(xiaofish)对应的数据库(smallfish)进行各种操作:

 

4、打开1433端口

        首先需要检测自身的 1433 端口是否打开(一般都需要自己打开)

1433应该是电脑的一个端口,可以链接电脑的(我也不是非常清楚知道是干什么的,跟着各位大佬的步伐走)

       

(1)点击:win和R,输入cmd点击回车出现如下界面:

   输入telnet localhost  1433并点击回车

    一般会出现错误

    'telnet' 不是内部或外部命令,也不是可运行的程序

   解决办法:

                点击:win和R,输入control点击回车出现如下界面:

                点击程序(小心不要点到卸载程序!!!)

       

  点击红圈的地方 

        

        

点击Telnet客户端 

      

  再次重复win和R,输入cmd点击,输入telnet localhost  1433并点击回车出现错误:正在连接localhost...无法打开到主机的连接。 在端口 1433: 连接失败....。没关系进行下一步!

再回到原地:右击电脑->管理->服务和应用程序->SQL Server配置管理器->SQL Server服务

 禁用所有上述出现的程序(一定要做,我看大佬的内容是要禁用,我自己是把他们都全部暂停也可以完成后续操作)禁用操作是双击其中一个选项,常规中的启动类型选择禁用

 

点击SQL Sever网络配置,然后点击MSSQLSEVER的协议

 

将已启用更改为“是”:

 

点击ip地址将IP1、IP2的已启用改为是 以及 TCP端口更改为1433 ,如图:

 

找到IPAll把TCP动态端口改为1433,然后点击应用不是确定)

 

 完成上述操作后重启电脑,重新打开该软件,然后再将下边的东西改成启动SQL Sever代理启动失败与否都不会影响SQL Sever的使用。(这里的SQL Sever代理启用真的是烦了我好久,看了大佬的文章才知道启不启用都没有关系): 

 

启动win和R,输入cmd点击回车,并在其中输入telnet localhost  1433  出现下边的页面说明1433配置成功: 

 

 

5、在pycharm中测试 

首先安装pymssql库:

        pymssql库的安装:

        1.在Pycharm中,依次点击File(文件)—>Settings(设置)–>Project(项目)–>Project Interpreter (项目解释器)点击右侧“+”号,输入自己需要导入包的名称,在下面列表中可以看到自己需要的包

 

2.点击 install package 安装完成就ok了。 

 

 

 pymssql库安装成功后:

              在pycharm中 建立新文件并输入以下代码并执行

import pymssql

connect = pymssql.connect(host='localhost',server='LAPTOP-P4HI651C',port='1433',user='xiaofish',password='123456',database='smallfish')
#host不需要改变参数,server改成自己的服务器名称,port不改变参数,user自己的用户名,password自己的密码,database你自己的数据库名称
if connect:
    print("数据库连接成功!")
else:
    print("数据库连接失败!")

连接成功下方会给出提示 :恭喜你的pycharm和SQL Sever链接成功啦!!!

 

6、SQL Sever在pycharm中的导入数据 

如果大量导入数据导入数据前需要在sql sever里建立好表格),使用bulk函数,(这里是借鉴大佬的代码,后续需要自己学习bulk函数):

bulk insert soft2110 #txt插入到soft2110表格中
from 'd:2104.txt'   #txt在D盘而且需要把编码更改为ANSI
with(fieldterminator = '\t',rowterminator = '\n')         
#\t是每行以空格分割,\n是根据换行将表格导入。

 

需要更改登录名的权限,打开方式如下:点击登录名->自己设置的用户名(我的是xiaofish)->点击sysadmin

        

这里可能会出现如图“sysadmin”添加成员失败,这是因为用了SQL Server和Windows身份验证模式登录的原因,需要登录Windows身份验证模式的进行上一步操作就可以啦!

在sql sever里建立表格时需要以下注意:(我自己解释不清楚,直接引用CSDN博主「٩( 'ω' )و 君莫笑」大佬的内容,原文链接:https://blog.csdn.net/m0_66722981/article/details/129792945 )

声明表格变量时不要用nvarchar,varchar,因为这两个声名的字符串编码是GBK编码,如果在pycharm里插入数据时会因为pycharm执行过程使用utf-8编码导致插入后乱码。所以在声明table时字符串尽量用nchar(20),这种方式是utf-8编码,其中的数字20是字符串的大小,一个汉字大概能占用2个位置,所以声明的大小不能太大,更不能过小。

use smallfish
drop table soft2110
create table soft2110(xh int,
dp nchar(20),
pr nchar(20),
id nchar(30),
nm nchar(20))
 
bulk insert soft2110 --txt text
from 'd:2104.txt'
with
(fieldterminator='\t',
rowterminator='\n'
)--\t是空格
delete from soft2110 where xh=71

这里我出现了一些错误:大容量插入: 在数据文件中遇到意外的文件结尾 (EOF),查阅资料以及其他大佬的博客,了解到可能是:是分隔符的问题 ,看看是不是文本中哪里的空格出了问题。可能是换行/结束符有隐藏的未知符号。我自己是把文本中不同信息之间换成“Tab”键隔开,就没有问题了

示例需要在D盘建立2104.txt文件(不同信息用Tab键隔开),示例数据是:

1    计算机学院    物联网2102    1212123    小白鱼
2    计算机学院    物联网2102    1213122    小炸鱼

注意,保存后需要另存为D盘的2104.txt文件进行替换,编码变成ANSI ,操作如下:

        双击2104.txt文件->点击左上角文件->另存为->改变编码为ANSI(如下图)

在连接成功后的pycharm里加入以下代码,实现对上述的表格实现查找(这里也是看大佬的博客学习到的): 

cur = connect.cursor()
sqlstr = "select * from soft2110"
cur.execute(sqlstr)
data = cur.fetchall()
cur.close()
for i in range(len(data)):
    for t in range(len(data[i])):
        print(str(data[i][t]).strip(), end='  ')
    print('\r')
connect.close()

得到如图下方输出,注意执行之后关闭了游标和连接如果是带循环的操作可以将connect.close()放在退出循环操作执行,最后再断开与sql sever的连接;断开游标: cur.close()   游标用的时候打开,不用的时候随即关闭): (这里直接引用CSDN博主「٩( 'ω' )و 君莫笑」大佬的解释)

(查阅资料一位大佬的评论感觉很精炼)

***.connect是python 连接MySQL数据库的方法,在Python中 import MySQLdb即可使用,至于connect中的参数很简单:
host:MySQL服务器名
user:数据库使用者
password:用户登录密码
db:操作的数据库名
charset:使用的字符集(一般是gb2312)
cursor = ***.cursor() 其实就是用来获得python执行Mysql命令的方法,也就是
我们所说的操作游标
下面***.execute则是真正执行MySQL语句,即查询TABLE_PARAMS表的数据。
至于fetchall()则是接收全部的返回结果行 row就是在python中定义的一个变量,用来接收返回结果行的每行数据。同样后面的r也是一个变量,用来接收row中的每个字符,如果写成C的形式就更好理解了
for(string row = ''; row<= ***.fetchall(): row++)
for(char r = ''; r<= row; r++)
printf("%c", r);

总结:

        真的自己完成 Pycharm和SQL Sever连接全程下来,对自己这个学生小白真的有困难,一步步下来会遇到不同的错误,这个过程真的有崩溃,直面面对遇到的困难真的收获很大,而且回过头来看也并不是不能解决的困难,真的超级超级超级感谢各位前辈大佬留下来博客文章和官方的资料,才能一步步艰辛的完成整个连接过程以及这篇博客。

        超级感谢CSDN博主@٩( 'ω' )و 君莫笑大佬的内容,原文链接:https://blog.csdn.net/m0_66722981/article/details/129792945,非常有帮助!!!

        写的并不是很好,还有许多地方需要进步,希望各位大佬指正!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PyCharm 连接 SQLSever 的相关文章

随机推荐

  • 神经网络优化(二) - 激活函数和损失函数

    1 神经网络中的激活函数activation function 1 1 引入激活函数概念 神经网络的基本构成单元是神经元 在搭建神经网络一文中使用的神经元模型为 这个神经元模型是较为简化的基本神经元模型 还有一种理论模型包含有激活函数和偏置
  • live555学习之二RTSP协议说明

    RTSP协议 是一种基于C S架构的并用于双方通信约定的流媒体协议 全称实时流协议 Real Time Streaming Protocol 集成了网络实时控制 数据传输接收功能 客户端遵循协议发送指令控制多媒体的资源的功能如播放 暂停 停
  • row format delimited fields terminated by ','

    row format delimited fields terminated by 以 结尾的行格式分隔字段
  • base64图片编码大小与原图文件大小之间的联系

    base64图片编码大小与原图文件大小之间的联系 有时候我们需要把canvas画布的图画转换成图片输出页面 而用canvas生成的图片就是base64编码的 它是由数字 字母等一大串的字符组成的 但是我们需要获取它的文件流大小该怎么办呢 B
  • 题解-equation 8*x^4 + 7*x^3 + 2*x^2 + 3*x + 6 == Y;

    Problem Description Now given the equation 8 x 4 7 x 3 2 x 2 3 x 6 Y can you find its solution between 0 and 100 br Now
  • Docker 容器安全风险和防御综述

    摘要 Docker是目前最具代表性的容器平台之一 它的安全问题引起了产业界和学术界的广泛关注 首先 对Docker架构以及基本安全特性进行介绍 分析了Docker面临的安全威胁 其次 对Docker增强 安全检测 瘦身等方面的安全技术进行了
  • JSONArray操作汇总,排序,筛选,分组

    JSONArray操作汇总 一 排序 1 根据集合对象中某一对象属性进行排序 返回新的集合 2 List进行排序 返回新的List 注意 并没有改变原始list的顺序 二 筛选 1 获取集合对象中某一属性值 2 获取集合对象中某一属性值并去
  • JavaWeb基础7——会话技术Cookie&Session

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud SpringCloudAlibaba 黑马旅游 谷粒商城 目录 一 会话技术 1 1 会话和跟踪技术介绍 1 2
  • 【华为OD机试 2023】 查找单入口空闲区域(C++ Java JavaScript Python)

    华为od机试题库 华为OD机试2022 2023 C Java JS Py https blog csdn net banxia frontend category 12225173 html 华为OD机试2023最新题库 更新中 C Ja
  • npm安装依赖至指定版本的方法

    简介 本文介绍npm安装依赖至指定版本的方法 依赖的版本可以在淘宝镜像或官方查询到 三种方法 方法一 先在package json里修改好指定版本号 然后输入 npm update webpack 方法二 npm update webpac
  • 【从推理出发】

    赌上爷爷之名 2021年暑假 和现在一样 也是很佛 不想好好学习的时间 8月的天气太过炎热 有时却又暴雨倾盆 很不讨喜 只得在家闲着看电视 动漫打发时间 按照以前的习惯 一般是悠闲地躺在沙发上吹着空调 看着长达900多集的柯南 然后在剧情中
  • spring cloud gateway 自定义负载均衡

    spring cloud gateway 自定义负载均衡 相关类及接口 LoadbalancerClientFilter 使用ribbon负载均衡 默认使用该类 已不推荐使用 deprecated Deprecated public cla
  • 伙计,Go项目怎么使用枚举?

    前言 哈喽 大家好 我是asong 枚举是一种很重要的数据类型 在java C语言等主流编程语言中都支持了枚举类型 但是在Go语言中却没有枚举类型 那有什么替代方案吗 本文我们来聊一聊这个事情 为什么要有枚举 我们以java语言为例子 在J
  • R语言实现可理解的随机森林模型(Random Forest)——iml包

    Random Forest 解释模型 1 介绍 2 理解随机森林运行机理 2 1导入需要的包 2 2 构建随机森林模型 2 3 RF特征重要性 2 4 特征对预测结果的影响 2 5 交互作用 2 6 替代模型 Decision tree s
  • 微信小程序View视图容器组件

    完整微信小程序 Java后端 技术贴目录清单页面 必看 微信小程序框架为开发者提供了一系列完备的UI组件 方便开发者快速构建小程序UI界面 借助这些UI组件开发者可以像搭积木一样快速地拼装出一栋房子的样子 这非常类似于当下建筑行业比较流行的
  • 华为ERP思考:国产自研迈出第一步

    华为的进入会刺激用友 金蝶 浪潮等国产厂商加快技术革新 以及伴随着华为自身技术自研全栈的布局和不断测试 国产ERP的兼容性和标准性都将上一个新的台阶 作者 斗斗 编辑 皮爷 出品 产业家 15小时完成全球88家子公司Meta ERP系统的切
  • java正则表达式 工具类_java正则表达式工具类详解

    主要功能有 boolean find 是否能匹配到至少一个 boolean match 匹配整个字符串 这个方法其实可以用 做到 int size 匹配的字符串个数 String getAll 获取所有匹配到的字符串 String get
  • 浏览器滚动到底部页面加载问题

    问题描述 页面在m端展示的时候 滚动到底部应该自动加载下一页 但是却没有 解决办法 在有些浏览器滚动下滚动时 滚动到底部仍然不会触发一般的底部加载事件的条件 可以在距离底部有一定距离时进行滚动加载事件的触发 if windowHeight
  • 教你们怎么找到已失效的百度网盘资源

    这是飓风在暴走吧友的分享链接 已经失效了 在这条链接的最后我们可以看到一行数字 304927434 接下来就是最重要的一步了 pan baidu com share home uk 上面那个链接的等于号后加上我们刚才上面那个链接的数字 打开
  • PyCharm 连接 SQLSever

    说实在的能遇到的错误差不多都遇到了 学生小白自己搞有点困难 不得不说新的错误一个接一个真的很崩溃qvq 在查阅参考各位大佬的文章及一些知识的相关资料 最终完成连接 若有不足之处 望各位大佬指正 目录 1 数据库无法连接服务器 2 检测自己的