场景

  由于业务要求,需要对甲方的一个在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的更多相关文章

  1. PHP 5.3版本上MS SQL Server的连接配置

    折腾了好久,最后终于连接成功了! 注:我使用的的phpStudy. php.ini中配置: ;这是php中带的驱动 extension=php_sqlsrv.dll extension=php_pdo ...

  2. Linux 上的 SQL Server 2017 的安装指南

    一:介绍背景 微软在2016年 3 月首次对外宣布了 Linux 版的 SQL Server,并于2017年 7 月发布了首个公开 RC 版.前几日在美国奥兰多召开的微软 Ignite 2017 大会 ...

  3. java连接ms sql server各类问题解析

    首先先来说下使用微软自己开发的架包进行ms sql server数据库的连接时,sql 2000与sql 2005的连接方式略有不同: 1.首先驱动不一样,sql 2000的连接驱动包有三个,分别是: ...

  4. 使用unidac 在linux 上无驱动直接访问MS SQL SERVER

    随着delphi 10.2 开始了对Linux 的重新支持.devart 也迅速的发布了unidac 7.0, 最大的特性就是支持linux和MongoDB. 并有了其他更新: In this rel ...

  5. 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 ...

  6. (火炬)MS SQL Server数据库案例教程

    (火炬)MS SQL Server数据库案例教程 创建数据库: CREATE DATABASE TDB //数据库名称 ON ( NAME=TDB_dat,//逻辑文件名 在创建数据库完成之后语句中引 ...

  7. Oracle\MS SQL Server Update多表关联更新

    原文:Oracle\MS SQL Server Update多表关联更新 一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表 ...

  8. 使用SqlBulkCopy导入数据至MS SQL Server

    原文:使用SqlBulkCopy导入数据至MS SQL Server Insus.NET一直使用表类型来数据入MS SQL Server.参考<存储过程参数为DataTable>http: ...

  9. MS SQL Server 数据库连接字符串详解

    MS SQL Server 数据库连接字符串详解 原地址:http://blog.csdn.net/jhhja/article/details/6096565 问题 : 超时时间已到.在从池中获取连接 ...

随机推荐

  1. 题解 P3233 [HNOI2014]世界树

    题目传送门 解题思路 正解当然是虚树了. 首先对于原树以及虚树各开一个结构体存边,这个不用多说. 然后我们先 DFS 一遍,求出各个节点的时间戳,子树大小,深度以及父亲节点,并初始化倍增 LCA . ...

  2. Visual Studio 2019 v16.10 和 v16.11 Preview 1 现已推出!

    Visual Studio 2019 v16.10有什么新功能? 我们很高兴地宣布Visual Studio 2019 v16.10 GA 和 v16.11 preview 1发布.此版本使我们的主题 ...

  3. 05 找出占用CPU、内存过高的进程

    #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin echo "----- ...

  4. 22、编译安装nginx及性能优化

    22.1.编译安装nginx: 1.下载nginx: [root@slave-node1 ~]# mkdir -p /tools/ [root@slave-node1 ~]# cd /tools/ [ ...

  5. 31、DNS介绍

    [root@centos6 ~]# dig @8.8.8.8 www.baidu.com +trace ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.3 ...

  6. 计算机、程序和java简介

    内存 计算机的内存是由一个有序的字节序列组成,用于存储程序及程序需要的数据.你可以将内存想象成计算机执行程序的工作区域.一个程序和它的数据在被CPU执行前必须移到计算机的内存中. 每个字节都是有一个唯 ...

  7. webpack(5)webpack处理css文件

    css文件处理-准备工作 (以下项目配置都是基于上一篇webpack(4)的基础上) 在项目开发中,我们必然需要添加很多的样式,而样式我们往往写到一个单独的文件中. 这里我们就在src目录中创建一个n ...

  8. CentOS-Docker安装phpMyAdmin(MySQL的web客户端)

    注:phpMyAdmin是一款MySQL的web客户端,还是很直观且好用的,所以推荐给你~ 下载镜像 $ docker pull phpmyadmin/phpmyadmin 运行镜像 1.无指定固定数 ...

  9. 如何Spring Cloud Zuul作为网关的分布式系统中整合Swagger文档在同一个页面上

    本文不涉及技术,只是单纯的一个小技巧. 阅读本文前,你需要对spring-cloud-zuul.spring-cloud-eureka.以及swagger的配置和使用有所了解. 如果你的系统也是用zu ...

  10. MySQL服务器 IO 100%的分析与优化方案

    前言 压力测试过程中,如果因为资源使用瓶颈等问题引发最直接性能问题是业务交易响应时间偏大,TPS逐渐降低等.而问题定位分析通常情况下,最优先排查的是监控服务器资源利用率,例如先用TOP 或者nmon等 ...