.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 问题 : 超时时间已到.在从池中获取连接 ...
随机推荐
- NoSQL:如何使用NoSQL架构构建实时广告系统
JDNoSQL平台是什么 JDNoSQL平台是一个分布式面向列的KeyValue毫秒级存储服务,存储结构化数据和非机构化数据,支持随机读写与更新,灵活的动态列机制,架构上支持水平扩容,提供高并发.低延 ...
- Python-统计目录(文件夹)中Excel文件个数和数据量
背景:前一阵子在帮客户做Excel文件中的数据处理,但是每周提交周报,领导都需要统计从客户接收的文件数量以及记录数.所以我就简单写了统计的脚本,方便统计目录(文件夹)中的Excel文件个数和数据量. ...
- ceph-csi源码分析(5)-rbd driver-nodeserver分析(上)
更多 ceph-csi 其他源码分析,请查看下面这篇博文:kubernetes ceph-csi分析目录导航 ceph-csi源码分析(5)-rbd driver-nodeserver分析(上) 当c ...
- Linux中useradd的用法
语法:useradd [选项] 用户名 选项: -d<登陆目录> 指定新用户登陆的起始目录,默认为/home -e<有效期限> 指定用户的有效期限,格式为 YYYY-MM-DD ...
- centos 8.3安装 OPENJDK
centos 8.3安装 OPENJDK 查找可安装的OPENJDK [root@xamppr10 ~]# yum search java | grep -i --color openjdk 命令执行 ...
- Vue 动态组件和异步组件
基础案例 动态组件切换类比"bilibili-个人中心"的横向菜单切换不同的标签页的功能. 在Vue中可以使用 component 标签,并加一个特殊的属性(attribute) ...
- swing设置观感
1.先获取当前系统支持的观感样式 1 UIManager.LookAndFellInfo[] infos = UIManager.getInstalledLookAndFeels(); 2 3 Str ...
- 常见链表操作-链表中环的检测(JAVA实现)
问题如何检测一个单链表中是否有环,例如下图的例子. 解决思路1:快慢指针法这是最常见的方法.思路就是有两个指针P1和P2,同时从头结点开始往下遍历链表中的所有节点. P1是慢指针,一次遍历一个节点.P ...
- SpringMVC(6)数据验证
在系列SpringMVC(4)数据绑定-1.SpringMVC(5)数据绑定-2中我们展示了如何绑定数据,绑定完数据之后如何确保我们得到的数据的正确性?这就是我们本篇要说的内容 -> 数据验证. ...
- buu [BJDCTF2020]easyrsa
下载附件是一个py文件,打开之后,发现是常规的rsa,不过有几个函数不知道. 这里记录一下, Fraction(a,b) 相当于 a/b Derivative(f(x),x) : 当x='x'时,f( ...