.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数据库是可以登录访问的。

 最后

  记得在云服务器中添加端口规则,气。(主要是我以为甲方应该开放这个端口了)

  

posted @ 2021-06-28 17:05  陈子白  阅读(239)  评论(0编辑  收藏  举报