一.配置SQL Server

这部分网上已有很多详细的教程,挑选了一篇较为详细的供大家参考

【笔记】win10远程连接SQL Server - 简书 (jianshu.com)

为了读者的阅读体验,请务必按以上链接的过程先配置一遍再继续阅读


以下为配置的注意事项:

务必要将SQL Server 的验证方式设置为windows身份验证 + SQL Server 身份验证

        务必根据【教程】将配置过程中设置的port在防火墙中添加对应的规则

在所有配置完成后,务必重启SQL server服务

可在【SQL server Configuration Manager】中进行重启

可在【SQL Server Management Studio】中进行重启


二.测试连通性

在根据【教程】配置完后,进行连通性测试,本次选用SQL Server Management Studio(以下简称SSMS)测试

SSMS的“连接到服务器”窗口如下:

服务器名称一栏在网上检索的时候都没有看到通俗易懂的答案,自己记录一下踩坑过程。

1.“服务器名称”填本机名称

默认情况下,服务器名称应该为本机的名称+SQL server实例名,例如我的为LAPTOP-XXXX\SQL Server实例名

身份验证”的“登录名”和“密码”参考自己在【教程】中的设置

如图所示:

填写后 点击【连接】,SQL Server 连接成功

2.“服务器名称”填IPv4地址

若想在程序中远程连接数据库,用本机名称显然是不合理的。"服务器名称"一栏是支持用ip地址 + 登录名/密码 连接的。操作方法如下

①.查看现有的SQL Server实例可供连接用的IP和对应的Port

步骤如下:

1.打开SQL Server Configuration Manager

2.点击网络配置

3.点击TCP/IP 打开属性

4.点击IP地址

        5.IP地址列表如下

列表中有很多的IP地址,重点关注IPV4的地址

确认IPv4地址【IP Address】下的【TCP Dynamic Ports】为之前配置的防火墙规则准入的port,以下以我配置的8877端口为例

防火墙的配置规则如下

②.查看本机ip的快捷方式

在确保网络配置的ip地址与端口的绑定关系无误后,就不必每次都根据①中步骤查看ip,用CMD快捷命令查看即可。

步骤如下:

1. win键 + R 并输入CMD唤起cmd.exe

2.在cmd框中输入“ipconfig”,打印Windows IP 配置

3.检索“以太网适配器 VMare Network”且子网掩码为“255.255.255.0”的IPv4地址

如下图所示:

根据②步骤3中的条件检索到符合条件(子网掩码:255.255.255.0)ipv4地址,本次共找到两条符合要求的ipv4,如下图所示

③.填写ip地址 + port端口号 进行连接

经过以上步骤,我们已经得到了用于连接的本机IP(②中获取)端口号(自己配置的),现在我们将这两个数据填到SSMS的“服务器名称”一栏中。

【错误填写方式】

在这一栏踩坑了,记录一下

按习惯,填写方式应该是 192.168.XX.XX:8877 (前端开发写习惯了- -)

填完以后发现怎么也连不上,如图:

提示连接字符串无效    - -"

【正确填写方式】

想起之前远程连mysql的时候遇到了同样的问题,应该是格式错误了。

格式应该为:192.168.XX.XX,8877

即 IPv4地址 , 端口号

中间是英文逗号,不是分号!

中间是英文逗号,不是分号!

中间是英文逗号,不是分号!

-还有一个问题,之前检索出多个符合要求的ipv4地址,该填哪个?

-答:经测试,无论填哪个都能连接成功,任选即可

连接结果如下图:


三.使用Navicat连接

Navicat自带代码提示,快捷注释,写SQL还是比较爽的,所以尝试用Navicat远程连接一下。

点击Navicat的连接,似曾相识的界面又出现了,按要求填写连接参数

连接名:任取一个即可

       主机: 同上一节中的“服务器名称”,填写ip地址 + 端口号 ,仍然用英文逗号分割

如下图所示:

点击确定,连接成功


四.使用sequelize(NodeJS)连接

1.理论部分

之前都是在数据管理工具里连接。既然有了ip地址和端口号配合TCP/IP协议,那么用程序连接也自然可以实现。

本次选用nodeJS(v16.15.1)环境 + sequelize ORM 为例实现连接,只需简单几行代码即可实现

本地环境要求:

       node环境

        npm包管理 

node和npm的环境配置网上随便都能搜索到,这里不过多赘述了。

代码编写逻辑如下:

①.创建一个名为index.js的文件

②.初始化npm仓库 命令:npm init

        ③.安装依赖:

                npm install sequelize  

                npm install tedious  【安装后支持连接sqlserver】

④.导入Sequelize包(CJS规范导入)

⑤.配置连接数据库的参数db(host,port,username,password等..)

⑥.根据上一步的配置参数创建一个sequelize实例

⑦.测试连通性

⑧.进行简单的SQL语句查询

⑨.由于sequelize是promise风格的,最终结果需要用.then + callback获取结果(不了解promise的也没事,已经在源码中写好了)

特别说明

  ①.IPv4地址有时会发生变化。我写了一个【getIPAddress】让程序自己获取当前电脑的ipv4地址,这样就不用每次都手动修改了。同时每次可能获取到多个符合的ip地址,取数组中的第一个。

②.配置参数db里的"database"一项该填什么?

答:看你连接的server下有什么数据库就填什么,没有可以新建一个

2.程序源码

const Sequelize = require("sequelize");
const os = require("os");// 动态获取本机当前可用的ipv4地址
/*** @return {Array}  ipv4 address Array*/
const getIPAddress = function () {var ifaces = os.networkInterfaces();var ip = [];for (var dev in ifaces) {ifaces[dev].forEach((details) => {if (details.family === "IPv4" && // ipv4过滤!details.internal &&  // 去除127.0.0.1 details.netmask === "255.255.255.0" // 子网掩码过滤) {ip.push(details.address);}});}return ip || false;
};
var ip = getIPAddress()[0];const db = {database: "wlw2020",  // 连接的数据库名称,需根据当前SQL server中已有的数据库填写username: "sa",  // 登录用户名password: "", //登录密码host: ip,  // 动态获取的ipport: "8877",  // 配置的端口dialect: "mssql",  // 标识为sql server// close loglogging: false,// "timestamps: false" fixed Unknown column 'createdAt' in 'field list'timestamps: false,dialectOptions: {multipleStatements: true,},
};const sequelize = new Sequelize(db);sequelize.sync();
// 连通性检测
sequelize.authenticate().then(() => {console.log("Connection has been established successfully.");}).catch((err) => {console.error("Unable to connect to the database:", err);});// 进行简单的SQL语句查询测试
//query里换成自己的SQL语句
const query = sequelize.query("SELECT * FROM STUDENT"); // 返回一个promise
query.then((value) => {console.log("value", value);},(err) => {console.log("err", err);}
);

3.运行结果

终于到了最后一步,在终端输入node index.js,终于在终端看到了期待的结果

①.输入node index.js

②.看到下图②中的log代表连接成功

③.程序返回了SQL语句执行的结果(以SELECT * FROM STUDENT为例)

此次只演示了简单的SQL查询,sequelize官方提供了很多强大的功能,感兴趣的同学可自己尝试。放一个sequelize的官网

sequelize官网地址

写在最后:

开了这么多应用,终于把问题解决了

若在操作过程中遇到问题欢迎与我取得联系进行交流,共同学习。

远程连接SQL Server数据库(基于Sequelize / Navicat)相关推荐

  1. 【SQL Server】无需公网IP,就可以远程连接SQL Server数据库

    目录 1.前言 2.本地安装和设置SQL Server 2.1 SQL Server下载 2.2 SQL Server本地连接测试 2.3 Cpolar内网穿透的下载和安装 2.3 Cpolar内网穿 ...

  2. 远程连接SQL Server数据库

    解决SQL Server管理器无法连接远程数据库的问题 许多初学者在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,大致的错 ...

  3. python数据库编程:Python基于Pymssql模块实现连接SQL Server数据库的方法详解

    本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载 ...

  4. heidisql连接远程数据库_Heidisql如何连接sql server数据库并做增删改操作?

    Heidisql工具是一个功能强大的数据库连接工具,功能齐全.操作简单.用heidisql很容易完成sql server数据库的建表.删除表.更新表操作等等操作.接下来小编就给大家带来Heidisql ...

  5. 帆软连接mysql失败_帆软FineReport连接SQL Server数据库不成功:通过端口1433连接到主机localhost的 TCP/IP 连接失败...

    安装FineReport连接SQL Server数据库时,通过端口1433连接到本机一直失败,在FineReport官方网站帮助文档一直没找到解决办法.后在网上搜索了许久,终于找到问题所在" ...

  6. python连接sql数据库_python连接sql server数据库实现增删改查

    简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...

  7. C#实现ODBC驱动代码连接Sql Server数据库

    ODBC连接Sql Server数据库-C#实现 利用ODBC驱动程序,可以以一种相同的语法来存取和维护数据表中的数据.为了便于在应用程序中使用ODBC,首先需要配置ODBC数据源,又称DSN,它把应 ...

  8. Visual Studio2022连接SQL Server数据库

    Visual Studio2022连接SQL Server数据库 一.软件准备 1. 安装Visual Studio2022 二.环境配置 1. 创建数据库 2. 利用ODBC建立连接 三.连接数据库 ...

  9. php sqlstate 08001,php远程连接sql server失败SQLSTATE] = 08001

    php远程连接sql server失败SQLSTATE] => 08001 mip版  关注:283  答案:2  悬赏:60 解决时间 2021-02-23 14:25 已解决 2021-02 ...

最新文章

  1. 用polt3画曲面_用SolidWorks建模一个:防滑板曲面造型
  2. Oracle ADG vs DG
  3. 动态创建DataTable[转]
  4. sql字符串分隔函数
  5. python与正则表达式(part7)--re模块使用
  6. NOIP模拟赛10 题解
  7. 网络知识:视频监控传输带宽与存储容量的计算方法
  8. winform listbox 没有listitem的问题
  9. 贵州省二级分类土地利用数据(矢量)
  10. PHP树形结构数据增加每层的级别
  11. Matlab图像识别/检索系列(8)—开源工具介绍之vlfeat
  12. linux 防火墙服务器,Linux服务器上适用的防火墙分析
  13. 蒟蒻的SCAU第一周个人排位赛赛后感想
  14. 路由器DNS被劫持 解决办法
  15. EXCEL数据改动自动标记功能怎么实现
  16. Android OkHttp 全面详解
  17. WPS如何让表格里的文字上下居中
  18. android 开发中遇到的错误 app:mergeDebugResources
  19. linux怎么运行dat文件,dat文件扩展名,dat文件怎么打开?
  20. 46、万维网之一(应用层)

热门文章

  1. python+uiautomator2+adb+安卓模拟器
  2. WordPress 用户注册和发送邮件
  3. 通过管理员模式 解决idea中 “npm不是内部或外部命令“
  4. 网络草根月赚3000的10种方法
  5. CISP-PTE web渗透通关攻略
  6. Stock 股票因子
  7. 联想曝新型UEFI漏洞,影响70款数百万台笔记本电脑
  8. Vue3-Vite-TS-AntD项目搭建
  9. 小迪教程第十二天——编辑器漏洞
  10. 北京确诊1例人感染禽流感致死病例