Centos7 下安裝以及使用mssql


Centos7下安裝以及使用Mssql,在這下面玩,主要是發現linux環境下的mysql非常的小,小到只有169M,這在windows上面,動撤幾個G的安裝文件,會讓你直接打消使用MSSQL的勇氣,廢話不多說,進入正題

分三個部分:

一 安裝MSSQL

二 安裝MSSQL-TOOLS

三 使用VS連接MSSQL,進行數據庫的增刪改查以及創建和還原

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

一  安裝Mssql

設置yum安裝源
curl https://packages.microsoft.com/config/rhel/7/mssql-server-preview.repo > /etc/yum.repos.d/mssql-server.repo

注意:這個源的設置非常重要,不然你yum search mssql 連找都找不到

安裝Mssql server
yum install -y mssql-server

注意:很多神人和作者動不動就讓執行 yum update,我覺得非到萬不得己,確實是沒有必要啊,傷不起,總之,如果你真不懂這個命令是干啥的,就不要隨意瞎執行,會等死你的,而且還會遇到python的問題

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 master
go
---聲明變量
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');


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM