.net core连接Liunx上MS SQL Server
场景
由于业务要求,需要对甲方的一个在SQL Server上的财务表进行插入操作。研究了半天,因为一个小问题折腾了很久。
过程
.net core端:
1. 利用EF,就需要的导入相关的Nuget包,这里选用:Microsoft.EntityFrameworkCore.SqlServer
2. 建立SQL Server的上下文
public class SQLContext : DbContext
{
public SQLContext(DbContextOptions<SQLContext> options)
: base(options)
{ } public virtual DbSet<TB_Sample_COD> TB_Sample_COD {get;set; }
}
3.在StartUp中将上下文加到依赖注入中,通过配置文件中的连接字符串:
"SQLContext": "Data Source=XXX.XX.XXX.XXX,1433;Initial Catalog=Test;User=SA;Password=XXXXXXX"
这里连接字符串的具体格式可以参考SQL Server的官方教程:https://www.connectionstrings.com/microsoft-data-sqlclient/
比如用SQL Server2019中,Data Source:<服务器地址>,<端口>;用户:SA(默认用户,应该不区分大小写);Password:创建时输入的密码

StartUp文件中ConfigureServices中加入一下代码:
services.AddDbContext<SQLContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("SQLContext")));
这里UseSqlServer()和Microsoft.EntityFrameworkCore.SqlServer 的版本有关。
liunx端:
4.Liunx上安装SQL Server,,与其看网上搬来搬去的教程(大部分就是官方教程抄过去的),还不如推荐去官方教程:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup?view=sql-server-ver15
大概流程就是:
sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo
// 安装 mssql-tools
sudo yum install -y mssql-tools unixODBC-devel
// 配置路径
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
最后检验登录:
sqlcmd -S localhost -U SA -P '<YourPassword>'
5.开启端口
SQL Server默认端口1433。在/etc/sysconfig/iptables中添加代码如下:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1433-j ACCEPT
查看结果,哪些端口开着:
netstat -anp
最后,用阿里,腾讯等云服务器一定要开放端口!!!(这浪费了我半天时间,以为需要安装和配置freeTDS,后来发现是用于c/c++在liunx上对其他平台的MS SQL Server进行操作。)
Navicat:
6.连接远程SQL Server
顺便介绍一种navicat用SSH连接SQL数据库的方式,官方的SQL Server Manager Studio没有的功能,相当于在服务器上的本地连接SQL

主机为远程服务器的ip地址,用户和密码为连接服务器的用户密码。

这里的主机可以是localhost,用户密码是SQL Server数据库的用户密码。
这样连接可以说明远程服务器的本地SQL数据库是可以登录访问的。
最后
记得在云服务器中添加端口规则,气。(主要是我以为甲方应该开放这个端口了)
.net core连接Liunx上MS SQL Server的更多相关文章
- PHP 5.3版本上MS SQL Server的连接配置
折腾了好久,最后终于连接成功了! 注:我使用的的phpStudy. php.ini中配置: ;这是php中带的驱动 extension=php_sqlsrv.dll extension=php_pdo ...
- Linux 上的 SQL Server 2017 的安装指南
一:介绍背景 微软在2016年 3 月首次对外宣布了 Linux 版的 SQL Server,并于2017年 7 月发布了首个公开 RC 版.前几日在美国奥兰多召开的微软 Ignite 2017 大会 ...
- java连接ms sql server各类问题解析
首先先来说下使用微软自己开发的架包进行ms sql server数据库的连接时,sql 2000与sql 2005的连接方式略有不同: 1.首先驱动不一样,sql 2000的连接驱动包有三个,分别是: ...
- 使用unidac 在linux 上无驱动直接访问MS SQL SERVER
随着delphi 10.2 开始了对Linux 的重新支持.devart 也迅速的发布了unidac 7.0, 最大的特性就是支持linux和MongoDB. 并有了其他更新: In this rel ...
- Datagrip连接SQLServer Connecting DataGrip to MS SQL Server
Connecting DataGrip to MS SQL Server Posted on June 21, 2016 by Maksim Sobolevskiy Some specific nee ...
- (火炬)MS SQL Server数据库案例教程
(火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...
- Oracle\MS SQL Server Update多表关联更新
原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...
- 使用SqlBulkCopy导入数据至MS SQL Server
原文:使用SqlBulkCopy导入数据至MS SQL Server Insus.NET一直使用表类型来数据入MS SQL Server.参考<存储过程参数为DataTable>http: ...
- MS SQL Server 数据库连接字符串详解
MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...
随机推荐
- 浏览Github必备的5款神器级别的Chrome插件
我们知道 Github 是程序员特有的宝藏,也可以称它为 GayHub, 大家浏览 Github 的时候,一定遇到过下面这些问题: 不克隆到本地的情况下阅读代码困难. 无法单独下载仓库中的某个文件/文 ...
- 感知机与支持向量机 (SVM)
感知机与SVM一样都是使用超平面对空间线性可分的向量进行分类,不同的是:感知机的目标是尽可能将所有样本分类正确,这种策略指导下得出的超平面可能有无数个,然而SVM不仅需要将样本分类正确,还需要最大化最 ...
- 关于equals()和hashcode()的一些约定
本文章主要讨论和回答一下几个问题: equals()的四大特性 equals()和hashcode()之间的关系,为什么我们经常说这两个方法要么都重写,要么都不重写? HashMap.HashSet等 ...
- python读取txt文件绘制散点图
方法和画折线图类似,差别在于画图函数不一样,用的是scatter() import matplotlib.pyplot as plt #以外部两个txt表分别作为x,y画图n=0m=0with ope ...
- 一、JavaSE语言基础之关键字与标示符
1.关键字 所谓关键字指Java中被赋予了特殊含义的单词或字符,Java中常见的关键字共53个,不需要进行记忆,在写代码的过程中会逐渐接触. 2.标示符 标示符,简单来说就是名字:其最大的作用 ...
- 用 .SqlSugar ORM 来实现报表功能 .NET CORE /.NET
架框介绍 SqlSugar是一款.NET老牌ORM 并且也是 新手基数比较多的ORM(因为上手容易),SqlSugar之所以能一直更新到现在,还是要感谢SqlSugar的忠实用户,随着我的技术越来越好 ...
- 24、Keepalived高可用介绍
24.1.什么是keepalived: Keepalived 软件起初是专为 LVS 负载均衡软件设计的,用来管理并监控 LVS 集群系统中各个服务节点的状态,后来又加入了可以实现高可用的 VRRP ...
- hdu 1754 I Hate It 线段树 单点更新 区间最值
线段树功能:update:单点更新 query:区间最值 #include <bits/stdc++.h> #define lson l, m, rt<<1 #define r ...
- 一分钟了解JDBC的构成和原理
JDBC(一组接口组成) : 形式如下: 1:JDBC-ODBC桥接技术(100%不用) 在Windows中有ODBC技术,ODBC指的是开放数据库链接 是由微软提供的数据库连接应用,而Java可以利 ...
- 【重学Java】可变参数
可变参数 可变参数[应用] 可变参数介绍 可变参数又称参数个数可变,用作方法的形参出现,那么方法参数个数就是可变的了 方法的参数类型已经确定,个数不确定,我们可以使用可变参数 可变参数定义格式 修饰符 ...