PyCharm 连接 SQLSever

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

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

目录


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,非常有帮助!!!

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

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年11月27日
下一篇 2023年11月27日

相关推荐