Centos7 下安装以及使用mssql

Centos7下安装以及使用Mssql,在这下面玩,主要是发现linux环境下的mysql很是的小,小到只有169M,这在windows上面,动撤几个G的安装文件,会让你直接打消使用MSSQL的勇气,废话很少说,进入正题python

分三个部分:mysql

一 安装MSSQLlinux

二 安装MSSQL-TOOLSsql

三 使用VS链接MSSQL,进行数据库的增删改查以及建立和还原数据库

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------windows

一  安装Mssql

设置yum安装源
curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo > /etc/yum.repos.d/mssql-server.repo服务器

注意:这个源的设置很是重要,否则你yum search mssql 连找都找不到less

安装Mssql server
yum install -y mssql-servercurl

注意:不少神人和做者动不动就让执行 yum update,我以为非到万不得己,确实是没有必要啊,伤不起,总之,若是你真不懂这个命令是干啥的,就不要随意瞎执行,会等死你的,并且还会遇到python的问题tcp

mssql-conf 安装并按照提示操做以设置 SA 密码,并选择你的版本

/opt/mssql/bin/mssql-conf setup

选择 SQL Server 的一个版本: 1) Evaluation (免费,无生产许可,180 天限制) 2) Developer (免费,无生产许可) 3) Express (免费) 4) Web (付费版) 5) Standard (付费版) 6) Enterprise (付费版) 7) Enterprise Core (付费版) 8) 我经过零售渠道购买了许可证并具备要输入的产品密钥。

 这里阿三的坑实在是埋的牛逼,不得不服,请选择 1 ,由于我选择2 安装一直是失败,各类找不出缘由的错误,选择1就正确了,至于说180天限制,玩完了再说吧

 正常安装完成后,会提示建立了一个软件连接:

 Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.

 加入开起启动

  systemctl enable mssql-server

  开放防火墙:

[root@CentOS7 ~]# firewall-cmd --zone=public --add-port=1433/tcp --permanent success [root@CentOS7 ~]# firewall-cmd --reload success使用navicate链接:

 

二 安装MSSQL-TOOLS

 工具设置源:curl https://packages.microsoft.com/config/rhel/7/prod.repo >> /etc/yum.repos.d/msprod.repo
 安装sqlcmd工具
 yum install -y mssql-tools

三 使用VS链接MSSQL,进行数据库的增删改查以及建立和还原

这里要讲的是如何还原备份到linux数据库1.上传备份到服务器目录去 (winscp,samba等等均可以)2.经过VS链接mssql打开新查询,注意,咱们链接到master数据库获取备份文件的逻辑名:

RESTORE FILELISTONLY
FROM DISK = N'/var/opt/mssql/data/ysc34.bak'
Go

为备份在服务器上面所在的位置   看到逻辑文件分别为:ysc  ysc_log   

进行还原,注意,有链接话,必须先清掉当前还原数据库的链接:

RESTORE DATABASE ydysc
FROM DISK = N'/var/opt/mssql/data/ysc34.bak'
WITH MOVE 'ysc' TO '/var/opt/mssql/data/ydysc.mdf', 
MOVE 'ysc_log' TO '/var/opt/mssql/data/ydysc_log.ldf',
STATS = 10, REPLACE
GO

 

对于有时候会遇到数据库在使用,还原失败的提示的时候,可使用如下语句进行强制还原:

use mastergo---声明变量declare @dbName nvarchar(max)='hotel_data';declare @dbFullName nvarchar(max)=N'/home/sqldata.backup/hotel_backup_20190129.bak'--1.1修改成单用模式 exec(N'ALTER DATABASE '+@dbName+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');--1.2结束连接进程 DECLARE @kid varchar(max) SET @kid='' SELECT @kid=@kid+'KILL '+CAST(spid as Varchar(10)) FROM master..sysprocesses WHERE dbid=DB_ID(@dbName) ; EXEC(@kid) ;--2.执行还原语句 restore database @dbName from disk=@dbFullName with replace --覆盖现有的数据库--3.重置数据库为多用户模式 exec(N'ALTER DATABASE '+@dbName+' SET MULTI_USER WITH ROLLBACK IMMEDIATE');

相关文章
相关标签/搜索