远程连接SQL Server数据库(基于Sequelize / Navicat)
一.配置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)相关推荐
- 【SQL Server】无需公网IP,就可以远程连接SQL Server数据库
目录 1.前言 2.本地安装和设置SQL Server 2.1 SQL Server下载 2.2 SQL Server本地连接测试 2.3 Cpolar内网穿透的下载和安装 2.3 Cpolar内网穿 ...
- 远程连接SQL Server数据库
解决SQL Server管理器无法连接远程数据库的问题 许多初学者在使用SQL Server时都会遇到使用SQL Server Management Studio无法连接远程数据库实例的问题,大致的错 ...
- python数据库编程:Python基于Pymssql模块实现连接SQL Server数据库的方法详解
本文实例讲述了Python基于Pymssql模块实现连接SQL Server数据库的方法.分享给大家供大家参考,具体如下: 数据库版本:SQL Server 2012. 按照Python版本来选择下载 ...
- heidisql连接远程数据库_Heidisql如何连接sql server数据库并做增删改操作?
Heidisql工具是一个功能强大的数据库连接工具,功能齐全.操作简单.用heidisql很容易完成sql server数据库的建表.删除表.更新表操作等等操作.接下来小编就给大家带来Heidisql ...
- 帆软连接mysql失败_帆软FineReport连接SQL Server数据库不成功:通过端口1433连接到主机localhost的 TCP/IP 连接失败...
安装FineReport连接SQL Server数据库时,通过端口1433连接到本机一直失败,在FineReport官方网站帮助文档一直没找到解决办法.后在网上搜索了许久,终于找到问题所在" ...
- python连接sql数据库_python连接sql server数据库实现增删改查
简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...
- C#实现ODBC驱动代码连接Sql Server数据库
ODBC连接Sql Server数据库-C#实现 利用ODBC驱动程序,可以以一种相同的语法来存取和维护数据表中的数据.为了便于在应用程序中使用ODBC,首先需要配置ODBC数据源,又称DSN,它把应 ...
- Visual Studio2022连接SQL Server数据库
Visual Studio2022连接SQL Server数据库 一.软件准备 1. 安装Visual Studio2022 二.环境配置 1. 创建数据库 2. 利用ODBC建立连接 三.连接数据库 ...
- php sqlstate 08001,php远程连接sql server失败SQLSTATE] = 08001
php远程连接sql server失败SQLSTATE] => 08001 mip版 关注:283 答案:2 悬赏:60 解决时间 2021-02-23 14:25 已解决 2021-02 ...
最新文章
- 用polt3画曲面_用SolidWorks建模一个:防滑板曲面造型
- Oracle ADG vs DG
- 动态创建DataTable[转]
- sql字符串分隔函数
- python与正则表达式(part7)--re模块使用
- NOIP模拟赛10 题解
- 网络知识:视频监控传输带宽与存储容量的计算方法
- winform listbox 没有listitem的问题
- 贵州省二级分类土地利用数据(矢量)
- PHP树形结构数据增加每层的级别
- Matlab图像识别/检索系列(8)—开源工具介绍之vlfeat
- linux 防火墙服务器,Linux服务器上适用的防火墙分析
- 蒟蒻的SCAU第一周个人排位赛赛后感想
- 路由器DNS被劫持 解决办法
- EXCEL数据改动自动标记功能怎么实现
- Android OkHttp 全面详解
- WPS如何让表格里的文字上下居中
- android 开发中遇到的错误 app:mergeDebugResources
- linux怎么运行dat文件,dat文件扩展名,dat文件怎么打开?
- 46、万维网之一(应用层)