GVKun编程网logo

[干货来袭] MSSQL Server on Linux 预览版安装教程 (先帮大家踩坑)(mssql2019安装)

4

如果您想了解[干货来袭]MSSQLServeronLinux预览版安装教程(先帮大家踩坑)的相关知识,那么本文是一篇不可错过的文章,我们将对mssql2019安装进行全面详尽的解释,并且为您提供关于D

如果您想了解[干货来袭] MSSQL Server on Linux 预览版安装教程 (先帮大家踩坑)的相关知识,那么本文是一篇不可错过的文章,我们将对mssql2019安装进行全面详尽的解释,并且为您提供关于Docker mssql-server-linux:如何在构建期间启动.sql文件(来自Dockerfile)、lnmp 环境里安装 mssql 及 mssql 的 php 扩展、lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来、mssql server 跟踪某个表 sql 语句的执行的有价值的信息。

本文目录一览:

[干货来袭] MSSQL Server on Linux 预览版安装教程 (先帮大家踩坑)(mssql2019安装)

[干货来袭] MSSQL Server on Linux 预览版安装教程 (先帮大家踩坑)(mssql2019安装)

前言

昨天晚上微软爸爸开了全国开发者大会,会上的内容,我就不多说了,园子里面很多..

我们唐总裁在今年曾今透漏过 SQL Server love Linux, 果不其然,这次开发者大会上就推出了 MSSQL Server on Linux 预览版

官方地址:https://docs.microsoft.com/zh-cn/sql/linux/  E 文好的可以自己去看,还是很详细的

废话不多说,直接开始我们今天的正文 MSSQL Server on Linux 预览版的安装.

 

正文

首先我们来了解一下目前 MSSQL Server on Linux 所支持的系统版本:

Red Hat Enterprise Linux 7.2 Get RHEL 7.2
Ubuntu 16.04 Get Ubuntu 16.04
Docker Engine 1.8+ Get Docker

我主要采用了 Ubuntu16.10 和 Ubuntu14.04 (安装失败了,后面讲原因) 来进行安装.

下面我们来讲一下安装步骤:

1. 输入下面的命令,获取 root 权限:

sudo su

2. 然后导入公共库 GPG 密钥:

curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add -

这里可能会报错 (通过的忽略), 如下:

我们需要先安装 curl, 命令如下:

apt install curl

安装完毕后继续执行上面的语句,得到成功后的结果如图:

3. 注册 Microsoft SQL Server Ubuntu 存储库 命令如下:

curl https://packages.microsoft.com/config/ubuntu/16.04/mssql-server.list > /etc/apt/sources.list.d/mssql-server.list

成功结果如下:

4. 退出 root 用户模式 (退不退都行)。

exit

5. 下载并安装 SQL Server, 命令如下:

sudo apt-get update
sudo apt-get install -y mssql-server

见到如下图片即为安装完成:

6. 安装完成后运行配置脚本并按照提示进行 sa 帐户的配置,命令如下:

sudo /opt/mssql/bin/sqlservr-setup

7. 输入你 sa 帐户的密码,提示如图:

其中错误信息的意思是:输入的密码不符合安全规定,说白了.. 自己设置复杂点.. 来点英文 来点符号 来点数字.. 就好了..

然后会让你第二次输入密码来确认和第一次一致就行.

成功后会出现下图:

问你是否现在就启动 SQL Servcie.. 当然,所以.. 输入:Y

然后会出现下图:

问你是否开机启动 (怎么有种全家桶的感觉.. .. 中毒了.. - -||,)..

当然也是 Y..

8. 确认服务器是否开启并正常运行,命令如下:

systemctl status mssql-server

成功会出现下图:

好了,如果顺利的话,至此我们的安装就算完成了,下面说一下我碰到的坑... 也算是 FAQ?..

 

FAQ (算是吧)

1.Ubuntu14.04 是否能安装?

  答:我反正是安装失败了,原因是 SQL SERVER 需要 Openssl 1.0.2 版本以上才能安装,然而 Ubuntu14.04 只能安装 0.9.8 的版本,我试过强制升级,只能说.. 然并卵..

 

2. 安装过程中提示错误:

 ERROR: This machine must have at least 3.25 gigabytes of memory to install Microsoft(R) SQL Server(R).
dpkg: error processing archive /tmp/apt-dpkg-install-wEgZAd/13-mssql-server_14.0.1.246-6_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Errors were encountered while processing:
 /tmp/apt-dpkg-install-wEgZAd/13-mssql-server_14.0.1.246-6_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

 

答:SQL Server 需要 3.25GB 的内存才能安装,所以 骚年,.. 升级你的配置吧.

 

 

3. 如何连接我安装好的 SQL Server 呢?

答:很简单,官方提供了操作工具,其实就是我们常用的 SQL Server Management Studio (SSMS), 免费,强大,易用,图形化界面,大小大概 1G

点我跳转到官方地址下载 SQL Server Management Studio 

 

 

4. 我想高大上屌一点不用图形化界面 自己撸呢?

答:也可以 , 点我进入官方教程

 

5. 我创建一个表之后,插入数据中文出现乱码怎么办?!!

答:用 SSMS 工具 右键你的库 -> 属性 -> 选项 -> 排序规则 -> 选择 Chinese-PRC-BIN 即可

 

6. 怎么修改默认的排序规则呢?

答:在你的 linux 服务器上,输入命令:

sudo /opt/mssql/bin/mssql-conf set-collation

输入 YES,

输入 Chinese_PRC_BIN

等待修改完成,

输入重启指令,如下:

sudo systemctl restart mssql-server

即可..

 

7. 目前的 ORM 是否支持?ADO.NET 是否能连接?.

答:我用 EF6.0 试了一下,在 DBFirst 的情况下,无法映射出来实体,但是可以用直接执行 SQL 语句的方式访问,那就可以确认 2 点.CodeFirst 应该是没有问题的,ADO.NET 也是没有问题的

如图:

结束语

好了,文章就到这里,多的话也就不说了,这次的开发者大会确实很给力,大家跟着我大微软爸爸走,有糖吃.. 最后,.. 跟我念... 微软大法好,微软大法好,微软大法好... 咳咳,开玩笑的,我不是某 XXX 教... 真的最后,谢谢大家的支持,有不懂的可以加群问我,也可以在博客跟帖,如果我会的话.. 绝对会解答的..

原文地址:http://www.cnblogs.com/GuZhenYin/p/6074074.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文分享自微信公众号 - dotNET 跨平台(opendotnet)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与 “OSC 源创计划”,欢迎正在阅读的你也加入,一起分享。

Docker mssql-server-linux:如何在构建期间启动.sql文件(来自Dockerfile)

Docker mssql-server-linux:如何在构建期间启动.sql文件(来自Dockerfile)

我正在尝试使用MSsql DB创建自己的Docker镜像以进行开发.它基于microsoft / mssql-server-linux映像.在构建期间,我想将一些.sql文件复制到容器中,然后运行这些脚本(创建数据库模式,表,插入一些数据等).我的Dockerfile看起来像这样:

# use MSsql 2017 image on Ubuntu 16.04
FROM microsoft/mssql-server-linux:2017-latest

# create directory within sql container for database files
RUN mkdir -p /opt/mssql-scripts

# copy the database files from host to container
copY sql/000_create_db.sql /opt/mssql-scripts

# set environment variables
ENV MSsql_SA_PASSWORD=P@ssw0rd
ENV ACCEPT_EULA=Y

# run initial scripts
RUN /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'P@ssw0rd' -i /opt/mssql-scripts/000_create_db.sql

在我看来,000_create_db.sql的内容并不重要.

真正的问题是当我尝试使用命令docker build -t demo构建这个Dockerfile时.我总是得到这些错误:

sqlcmd: Error: Microsoft ODBC Driver 13 for sql Server : Login timeout expired.
sqlcmd: Error: Microsoft ODBC Driver 13 for sql Server : TCP Provider: Error code 0x2749.
sqlcmd: Error: Microsoft ODBC Driver 13 for sql Server : A network-related or instance-specific error has occurred while establishing a connection to sql Server. Server is not found or not accessible. Check if instance name is correct and if sql Server is configured to allow remote connections. For more information see sql Server Books Online..

但是当我删除最后一个命令(运行初始脚本)时,构建并运行图像,并调用相同的命令:

docker build -t demo .
docker run -p 1433:1433 --name mssql -d demo
docker exec -it mssql "bash"
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'P@ssw0rd' -i /opt/mssql-scripts/000_create_db.sql

一切都进展顺利.为什么我不能从Dockefile运行脚本?

从mssql-server-linux dockerfile看起来mssql是在docker run上启动的,所以你必须修改你的dockerfile中的最后一个“RUN”命令,在后台启动sql-server,运行你的sql文件并停止sql-服务器.

RUN /opt/mssql/bin/sqlservr --accept-eula & sleep 10 \
    && /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P 'P@ssw0rd' -i /opt/mssql-scripts/000_create_db.sql \
    && pkill sqlservr 

lnmp 环境里安装 mssql 及 mssql 的 php 扩展

lnmp 环境里安装 mssql 及 mssql 的 php 扩展

小活中用到 mssql, 于是在自己 lnmp 环境中安装各 mssql 数据库

步骤如下: 

源码编译安装

(1)下载 freetds-stable-0.91 源码: http://download.csdn.net/download/xhu_eternalcc/7457555(花了 4 积分,没有积分的找我要,微信 zmd1047773569)
          上传到根目录下的 download 文件中
(2)编译安装:
   # cd /download

           # tar zxvf freetds-stable.tgz(解压,)

 

   # cd freetds-0.91

   # 编译

            # ./configure --prefix=/usr/local/freetds --with-tdsver=8.0 --enable-msdblib

            # make

            # make install

            参数解释:

            安装 freetds 到目录 /usr/local/freetds:--prefix=/usr/local/freetds

            支持 MSSQL2000:--with-tdsver=8.0 --enable-msdblib

 

配置 FreeTds 的库文件

将 freetds 的库文件所在路径配置到 LD_LIBRARY_PATH 参数中:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/localfreetds/lib/:

或者直接把 etc/bashrc 的文件 bashrc 直接填写上  LD_LIBRARY_PATH=/usr/localfreetds/lib:$LD_LIBRARY_PATH

这么作的目的是为了避免加载 FreeTds 库文件加载不上的情况。

 

 

php 里安装 php-mssql 扩展:

cd /download (把php-mssql扩展下载到download目录里)
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz (下载扩展文件,这里要根据你环境中运行的php版本选择对应的扩展版本下载,我这里php是5.6.30的 所以php-mssql扩展下载对应的版本) tar -zxvf php-5.6.30.tar.gz cd /php-5.6.30/ext/mssql
 /usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-mssql=/usr/local/freetds/ 

make
&& make install

编译安装后的结果 如下图

 

同时 mssql.so 也在 php 扩展文件下生成 (如下图)

 

 

 

 把 extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/mssql.so"  添加到 usr/local/php/lib/php.ini 中

 引用扩展后,重启 web 服务,通过 phpinfo 查看扩展 mssql 是否开启成功

重启 php   /usr/local/php/sbin/php-fpm reload  

重启 nginx  进入 nginx 可执行目录 sbin 下,输入命令./nginx -s reload 即可(或者 /application/nginx/sbin/nginx -s reload)

 

 

 

lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来

lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来

lua 访问 mssql 的驱动(好用的)是哪一个?

lua 对 mysql/pgsql 的支持不错,但对 mssql 的访问,总是不太顺

而目前希望先在 mssql 能用起来

mssql server 跟踪某个表 sql 语句的执行

mssql server 跟踪某个表 sql 语句的执行

打开 SQL 事件探查器 - 文件 - 新建跟踪

跟踪属性的设置

事件  选择 “安全审核”-“Audit Object Permission”

数据列 选择 “DatabaseName ,ObjectName ,TextData”

筛选  选择 DatabaseName  输入数据库名  ,ObjectName 输入表明, TEXTDATA--- 类似于 --- 输入 UPDATE%,insert%

今天的关于[干货来袭] MSSQL Server on Linux 预览版安装教程 (先帮大家踩坑)mssql2019安装的分享已经结束,谢谢您的关注,如果想了解更多关于Docker mssql-server-linux:如何在构建期间启动.sql文件(来自Dockerfile)、lnmp 环境里安装 mssql 及 mssql 的 php 扩展、lua 访问 mssql 的驱动(好用的)是哪一个?对 mysql/pgsql 的支持不错,但希望先在 mssql 能用起来、mssql server 跟踪某个表 sql 语句的执行的相关知识,请在本站进行查询。

本文标签:

上一篇.NET 开源 MSSQL、Redis 监控产品 Opserver 之 Redis 配置(开源redis监控工具)

下一篇mssql 用 cp 实现数据表按年月归档备份(sql server 按月份汇总)