Linux系统(centos7.6)安装sql server 2017 for linux
广告:阿里云采购优惠专区
官方安装说明:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-red-hat?view=sql-server-ver15
脱机安装:https://packages.microsoft.com
https://packages.microsoft.com/yumrepos/mssql-server-2017-rhel7/ (实验环境最低配置:centos 7 1核cpu 2G内存 )
mssql-server-14.0.3238.1-19.x86_64.rpm (要下载的包)
mssql-server-fts-14.0.3238.1-19.x86_64.rpm (带有全文索引的包)
下载包:https://packages.microsoft.com/yumrepos/mssql-server-2017-rhel7/mssql-server-14.0.3238.1-19.x86_64.rpm (2019.11.8更新)
一、用WinSCP上传压缩包到/usr/src/目录下面,然后用putty软件登录控制台运行(最好在服务器控制台输入命令,用putty可能看不到安装状态,一般等20分钟左右):
cd /usr/src/ sudo yum localinstall mssql-server-14.0.3238.1-19.x86_64.rpm
删除已安装的rpm包:
rpm -qa | grep -i mssql (查询)
rpm -e 文件名 (如:rpm -e mssql-server-14.0.3238.1-19.x86_64)
列出依赖项命令:rpm -qpR mssql-server-14.0.3238.1-19.x86_64.rpm
解决缺少的依赖项后,尝试再次安装 mssql-server 包。
安装完成:
systemctl restart mssql-server.service
二、完成 SQL Server 安装。 使用“mssql-conf”完成 SQL Server 安装 :
sudo /opt/mssql/bin/mssql-conf setup
(包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本 以下 SQL Server 2017 版本是免费提供许可的:Evaluation、Developer 和 Express 版。)
版本选3 ,语言选 10
安装完成信息:
选择 SQL Server 的语言:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Русский
(10) 中文 – 简体
(11) 中文 (繁体)
输入选项 1-11:10
输入 SQL Server 系统管理员密码: 大小写字母+数字,至少8位
请确保为 SA 帐户指定强密码(最少 8 个字符,包括大写和小写字母、十进制数字和/或非字母数字符号)。
正在配置 SQL Server...
/bin/bash: /opt/mssql/bin/sqlservr:
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/l ib/systemd/system/mssql-server.service.
安装程序已成功完成。SQL Server 正在启动。
常见错误:
1. 内存不够
sqlservr: This program requires a machine with at least 2000 megabytes of memory.
/opt/mssql/bin/sqlservr: This program requires a machine with at least 2000 megabytes of memory.
安装sql server 需要2G以上内存:
cd /opt/mssql/bin/ # 进入目录 mv sqlservr sqlservr.old # 保存备份文件 python # 使用python修改内存限制代码 oldfile = open("sqlservr.old", "rb").read() newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e") newfile = oldfile.replace("\xff\x93\x35\x77", "\x00\x80\x84\x1e").replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e") open("sqlservr", "wb").write(newfile) exit()
再重新执行:sudo /opt/mssql/bin/mssql-conf setup
(新版2017改为:\xff\x93\x35\x77)
2. 权限不够执行 :
直接在服务器更改文件夹权限
或者:
cd /opt/mssql/bin/
chmod 0777 sqlservr -v
chmod +x sqlservr -v
后再开启服务 sudo systemctl restart mssql-server
(sudo -u mssql /opt/mssql/bin/sqlservr -f 最低配置启动服务---仅为参考)
验证服务是否运行:systemctl status mssql-server
检查版本:sqlcmd -S localhost -U SA -Q 'select @@VERSION' (如果尚未安装,请安装 SQL Server 命令行工具。)
完成配置后,验证服务是否运行:
systemctl status mssql-server
默认数据库位置: /var/opt/mssql/datacd
删除sql server :RHEL sudo yum remove mssql-server
三、安装命令行工具:
配置路径变量:
export PATH=$PATH:/opt/mssql-tools/bin sudo su curl https://packages.microsoft.com/config/rhel/7/prod.repo > /etc/yum.repos.d/msprod.repo sudo yum install mssql-tools unixODBC-devel
vi /etc/profile # 最后一行加上以下内容: (最后插入行键盘输入大写的"G" 键盘输入小写的"o" 。保存,小写字母英文输入状态:esc后 按 : 号,输入 wq 保存文件并退出vi ,:w! 强制保存,不推出vi , :q 不保存文件,退出vi,:q! 不保存文件,强制退出vi)
export PATH=$PATH:/opt/mssql-tools/bin
对话框,输入 y 或者 yes 同意安装。完成显示:
四、sqlcmd命令行工具本地连接到sql server,创建数据库
sqlcmd -S localhost -U SA -P '12345678' /******(连接命令)******/ go CREATE DATABASE TestDB /******创建数据库 (要先执行连接命令)******/ go DROP DATABASE TestDB /******删除数据库: (要先执行连接命令)******/ go SELECT Name from sys.Databases /******查询所有数据库 (要先执行连接命令)******/ go exit
附加:
性能内存最佳优化配置:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-performance-best-practices?view=sql-server-2017
Linux-centos系统sqlserver2017账号sa密码重置:
1、登陆服务器,停用sqlserver服务,(命令:sudo systemctl stop mssql-server)
2、切换到/opt/mssql/bin/目录下面(命令:cd /opt/mssql/bin)
3、使用命令查看(命令./mssql-conf -h)
4、使用命令set-sa-password重置密码(命令./mssql-conf set-sa-password)
5、输入两遍密码,确认。
6、重启sqlserver服务(命令:sudo systemctl start mssql-server)
修改自增步长自长跳1000
修改/usr/lib/systemd/system/mssql-server.service 文件
ExecStart=/opt/mssql/bin/sqlservr -T272
systemctl daemon-reload
常见错误:
1. System.Data.SqlClient.SqlException
The incoming tabular data stream (TDS) remote procedure call (RPC) protocol stream is incorrect. Parameter 13: The parameter name is invalid.
Description: HTTP 500.Error processing request.
Details: Non-web exception. Exception origin (name of application or object): Mono SqlClient Data Provider.Exception stack trace:
解决方法:
new SqlParameter("@icp", SqlDbType.VarChar,80) 改成:new SqlParameter("@icp", SqlDbType.NVarChar,80)
SQL_Latin1_General_CP1_CI_AS的排序规则中,添加中文字符需要把参数字段类型 varchar 更改为nvarchar类型。
广告:阿里云新人采购专场