學習SQL Server從在Linux上安裝開始

衡子發表於2016-11-18

微軟已經發布了SQL Server on Linux,目前支援Redhat和Ubuntu兩種發行版。

下面我們來安裝體驗一下。

1. 獲得YUM源:

YUM的repo檔案地址:

https://packages.microsoft.com/config/rhel/7/mssql-server.repo

下載到本地:

wget https://packages.microsoft.com/config/rhel/7/mssql-server.repo
--2016-11-17 18:35:37-- https://packages.microsoft.com/config/rhel/7/mssql-server.repo
Resolving packages.microsoft.com (packages.microsoft.com)... 13.75.127.55
Connecting to packages.microsoft.com (packages.microsoft.com)|13.75.127.55|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 220 [application/octet-stream]
Saving to: 'mssql-server.repo'
 100%[=================================================================================================================================>] 220 --.-K/s in 0s
2016-11-17 18:35:37 (47.7 MB/s) - 'mssql-server.repo' saved [220/220]

把此檔案複製到/etc/yum.repos.d目錄:

cp mssql-server.repo /etc/yum.repos.d/

更新yum資訊:

[root@hwweb0 ~]# yum makecache
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
openlogic | 1.3 kB 00:00:00
packages-microsoft-com-mssql-server | 2.9 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/13): extras/7/x86_64/prestodelta | 78 kB 00:00:00
(2/13): openlogic/7/x86_64/filelists | 6.7 kB 00:00:00
(3/13): openlogic/7/x86_64/other | 3.7 kB 00:00:00
(4/13): extras/7/x86_64/filelists_db | 468 kB 00:00:01
(5/13): extras/7/x86_64/other_db | 706 kB 00:00:00
(6/13): packages-microsoft-com-mssql-server/filelists_db | 1.4 kB 00:00:00
(7/13): packages-microsoft-com-mssql-server/other_db | 728 B 00:00:00
(8/13): base/7/x86_64/other_db | 2.3 MB 00:00:01
(9/13): updates/7/x86_64/prestodelta | 786 kB 00:00:00
(10/13): updates/7/x86_64/filelists_db | 5.3 MB 00:00:01
(11/13): base/7/x86_64/filelists_db | 6.2 MB 00:00:03
(12/13): updates/7/x86_64/other_db | 79 MB 00:00:04
(13/13): packages-microsoft-com-mssql-server/primary_db | 2.4 kB 00:00:06
Loading mirror speeds from cached hostfile
openlogic 54/54
openlogic 54/54
Metadata Cache Created

 

2. 通過yum安裝sql server:

Yum查詢mssql的相關資訊:

[root@hwweb0 ~]# yum search mssql
Loaded plugins: fastestmirror, langpacks
Repository packages-microsoft-com-mssql-server is listed more than once in the configuration
Loading mirror speeds from cached hostfile
=========================================================================== N/S matched: mssql ============================================================================
mssql-server.x86_64 : Microsoft(R) SQL Server(R) Relational Database Engine
mssql-server-ha.x86_64 : Microsoft(R) SQL Server(R) Relational Database Engine
 
Name and summary matches only, use "search all" for everything.

可以看到有兩個版本,ha版本應該是做高可用性的版本。安裝mssql-server:

[root@hwweb0 ~]# yum search mssql
Loaded plugins: fastestmirror, langpacks
Repository packages-microsoft-com-mssql-server is listed more than once in the configuration
Loading mirror speeds from cached hostfile
=========================================================================== N/S matched: mssql ============================================================================
mssql-server.x86_64 : Microsoft(R) SQL Server(R) Relational Database Engine
mssql-server-ha.x86_64 : Microsoft(R) SQL Server(R) Relational Database Engine
 
Name and summary matches only, use "search all" for everything.
[root@hwweb0 ~]# yum install mssql-server -y
Loaded plugins: fastestmirror, langpacks
Repository packages-microsoft-com-mssql-server is listed more than once in the configuration
packages-microsoft-com-mssql-server | 2.9 kB 00:00:00
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mssql-server.x86_64 0:14.0.1.246-6 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===========================================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================================
Installing:
mssql-server x86_64 14.0.1.246-6 packages-microsoft-com-mssql-server 138 M
 
Transaction Summary
===========================================================================================================================================================================
Install 1 Package
 
Total download size: 138 M
Installed size: 138 M
Downloading packages:
warning: /var/cache/yum/x86_64/7/packages-microsoft-com-mssql-server/packages/mssql-server-14.0.1.246-6.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID be1229cf: NOKEY
Public key for mssql-server-14.0.1.246-6.x86_64.rpm is not installed
mssql-server-14.0.1.246-6.x86_64.rpm | 138 MB 00:00:05
Retrieving key from https://packages.microsoft.com/keys/microsoft.asc
Importing GPG key 0xBE1229CF:
Userid : "Microsoft (Release signing) <gpgsecurity@microsoft.com>"
Fingerprint: bc52 8686 b50d 79e3 39d3 721c eb3e 94ad be12 29cf
From : https://packages.microsoft.com/keys/microsoft.asc
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : mssql-server-14.0.1.246-6.x86_64 1/1
 
+-------------------------------------------------------------------+
| Please run /opt/mssql/bin/sqlservr-setup to complete the setup of |
| Microsoft(R) SQL Server(R). |
+-------------------------------------------------------------------+
 
Verifying : mssql-server-14.0.1.246-6.x86_64 1/1
 
Installed:
mssql-server.x86_64 0:14.0.1.246-6
 
Complete!

這樣就安裝好了。

3. 配置sql server

[root@hwweb0 bin]# pwd
/opt/mssql/bin
[root@hwweb0 bin]# ./sqlservr-setup
Microsoft(R) SQL Server(R) Setup
 
You can abort setup at anytime by pressing Ctrl-C. Start this program
with the --help option for information about running it in unattended
mode.
 
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746388 and found
in /usr/share/doc/mssql-server/LICENSE.TXT.
 
Do you accept the license terms? If so, please type "YES": YES
 
Please enter a password for the system administrator (SA) account:
Please confirm the password for the system administrator (SA) account:
 
Setting system administrator (SA) account password...
sqlservr: This program requires a machine with at least 3250 megabytes of memory.
Microsoft(R) SQL Server(R) setup failed with error code 1.
Please check the setup log in /var/opt/mssql/log/setup-20161117-184346.log
for more information.

我採用的是A1的機器,配置過程提示,記憶體需要大於3G。把機器升級到A2:

[root@hwchefserver bin]# ./sqlservr-setup
Microsoft(R) SQL Server(R) Setup
 
You can abort setup at anytime by pressing Ctrl-C. Start this program
with the --help option for information about running it in unattended
mode.
 
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746388 and found
in /usr/share/doc/mssql-server/LICENSE.TXT.
 
Do you accept the license terms? If so, please type "YES": YES
 
Please enter a password for the system administrator (SA) account:
Please confirm the password for the system administrator (SA) account:
 
Setting system administrator (SA) account password...
 
Do you wish to start the SQL Server service now? [y/n]: y
Do you wish to enable SQL Server to start on boot? [y/n]: y
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server.service to /usr/lib/systemd/system/mssql-server.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/mssql-server-telemetry.service to /usr/lib/systemd/system/mssql-server-telemetry.service.
 
Setup completed successfully.

配置成功。檢查狀態:

[root@hwchefserver bin]# systemctl status mssql
● mssql.service
Loaded: not-found (Reason: No such file or directory)
Active: inactive (dead)
[root@hwchefserver bin]# systemctl status mssql-server
● mssql-server.service - Microsoft(R) SQL Server(R) Database Engine
Loaded: loaded (/usr/lib/systemd/system/mssql-server.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2016-11-17 19:52:06 UTC; 37s ago
Main PID: 1539 (sqlservr)
CGroup: /system.slice/mssql-server.service
├─1539 /opt/mssql/bin/sqlservr
└─1547 /opt/mssql/bin/sqlservr
 
Nov 17 19:52:14 hwchefserver sqlservr[1539]: 2016-11-17 19:52:15.06 spid17s SQL Server is now ready for client connections. This is an infor...equired.
Nov 17 19:52:15 hwchefserver sqlservr[1539]: 2016-11-17 19:52:15.13 spid6s Polybase feature disabled.
Nov 17 19:52:15 hwchefserver sqlservr[1539]: 2016-11-17 19:52:15.13 spid6s Clearing tempdb database.
Nov 17 19:52:16 hwchefserver sqlservr[1539]: 2016-11-17 19:52:16.91 spid6s Starting up database 'tempdb'.
Nov 17 19:52:17 hwchefserver sqlservr[1539]: 2016-11-17 19:52:17.58 spid6s The tempdb database has 1 data file(s).
Nov 17 19:52:17 hwchefserver sqlservr[1539]: 2016-11-17 19:52:17.58 spid20s The Service Broker endpoint is in disabled or stopped state.
Nov 17 19:52:17 hwchefserver sqlservr[1539]: 2016-11-17 19:52:17.58 spid20s The Database Mirroring endpoint is in disabled or stopped state.
Nov 17 19:52:17 hwchefserver sqlservr[1539]: 2016-11-17 19:52:17.67 spid20s Service Broker manager has started.
Nov 17 19:52:17 hwchefserver sqlservr[1539]: 2016-11-17 19:52:17.71 spid5s Recovery is complete. This is an informational message only. No ...equired.
Nov 17 19:52:22 hwchefserver sqlservr[1539]: 2016-11-17 19:52:22.59 spid35s The activated proc '[dbo].[sp_syspolicy_events_reader]' running on queue...
Hint: Some lines were ellipsized, use -l to show in full.

SQL Server已經在執行。

3. 檢查

安裝SQL Tools。SQL Tools:sqlcmd是mssql ODBC的一個工具,可以通過yum的repo直接yum安裝。

首先下載yum的repo:

[root@hwchefserver ~]# wget https://packages.microsoft.com/config/rhel/7/prod.repo
--2016-11-17 19:59:49-- https://packages.microsoft.com/config/rhel/7/prod.repo
Resolving packages.microsoft.com (packages.microsoft.com)... 13.75.127.55
Connecting to packages.microsoft.com (packages.microsoft.com)|13.75.127.55|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 193 [application/octet-stream]
Saving to: 'prod.repo'
 
100%[=================================================================================================================>] 193 --.-K/s in 0s
 
2016-11-17 19:59:50 (30.2 MB/s) - 'prod.repo' saved [193/193]
 
[root@hwchefserver ~]# mv prod.repo /etc/yum.repos.d/
[root@hwchefserver ~]# yum makecache
Loaded plugins: fastestmirror, langpacks
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
openlogic | 1.3 kB 00:00:00
packages-microsoft-com-mssql-server | 2.9 kB 00:00:00
packages-microsoft-com-prod | 2.9 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/3): packages-microsoft-com-prod/filelists_db | 2.7 kB 00:00:00
(2/3): packages-microsoft-com-prod/other_db | 10 kB 00:00:00
(3/3): packages-microsoft-com-prod/primary_db | 4.6 kB 00:00:00
Loading mirror speeds from cached hostfile
Metadata Cache Created

安裝:

[root@hwchefserver ~]# yum install mssql-tools
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package mssql-tools.x86_64 0:14.0.1.246-1 will be installed
--> Processing Dependency: msodbcsql for package: mssql-tools-14.0.1.246-1.x86_64
--> Running transaction check
---> Package msodbcsql.x86_64 0:13.0.1.0-1 will be installed
--> Processing Dependency: unixODBC-utf16 for package: msodbcsql-13.0.1.0-1.x86_64
--> Processing Dependency: libodbcinst.so.2()(64bit) for package: msodbcsql-13.0.1.0-1.x86_64
--> Running transaction check
---> Package unixODBC-utf16.x86_64 0:2.3.1-1 will be installed
--> Processing Dependency: libltdl.so.7()(64bit) for package: unixODBC-utf16-2.3.1-1.x86_64
--> Running transaction check
---> Package libtool-ltdl.x86_64 0:2.4.2-21.el7_2 will be installed
--> Finished Dependency Resolution
 
Dependencies Resolved
 
===========================================================================================================================================================
Package Arch Version Repository Size
===========================================================================================================================================================
Installing:
mssql-tools x86_64 14.0.1.246-1 packages-microsoft-com-prod 249 k
Installing for dependencies:
libtool-ltdl x86_64 2.4.2-21.el7_2 updates 49 k
msodbcsql x86_64 13.0.1.0-1 packages-microsoft-com-prod 3.8 M
unixODBC-utf16 x86_64 2.3.1-1 packages-microsoft-com-prod 329 k
 
Transaction Summary
===========================================================================================================================================================
Install 1 Package (+3 Dependent packages)
 
Total download size: 4.5 M
Installed size: 4.5 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): libtool-ltdl-2.4.2-21.el7_2.x86_64.rpm | 49 kB 00:00:00
(2/4): msodbcsql-13.0.1.0-1.x86_64.rpm | 3.8 MB 00:00:00
(3/4): mssql-tools-14.0.1.246-1.x86_64.rpm | 249 kB 00:00:00
(4/4): unixODBC-utf16-2.3.1-1.x86_64.rpm | 329 kB 00:00:00
-----------------------------------------------------------------------------------------------------------------------------------------------------------
Total 8.3 MB/s | 4.5 MB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : libtool-ltdl-2.4.2-21.el7_2.x86_64 1/4
Installing : unixODBC-utf16-2.3.1-1.x86_64 2/4
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746838 and found in
/usr/share/doc/msodbcsql/LICENSE.TXT . By entering 'YES',
you indicate that you accept the license terms.
 
Do you accept the license terms? (Enter YES or NO)
YES
Installing : msodbcsql-13.0.1.0-1.x86_64 3/4
The license terms for this product can be downloaded from
http://go.microsoft.com/fwlink/?LinkId=746949 and found in
/usr/share/doc/mssql-tools/LICENSE.txt . By entering 'YES',
you indicate that you accept the license terms.
 
Do you accept the license terms? (Enter YES or NO)
YES
Installing : mssql-tools-14.0.1.246-1.x86_64 4/4
Verifying : libtool-ltdl-2.4.2-21.el7_2.x86_64 1/4
Verifying : msodbcsql-13.0.1.0-1.x86_64 2/4
Verifying : unixODBC-utf16-2.3.1-1.x86_64 3/4
Verifying : mssql-tools-14.0.1.246-1.x86_64 4/4
 
Installed:
mssql-tools.x86_64 0:14.0.1.246-1
 
Dependency Installed:
libtool-ltdl.x86_64 0:2.4.2-21.el7_2 msodbcsql.x86_64 0:13.0.1.0-1 unixODBC-utf16.x86_64 0:2.3.1-1
 
Complete!

安裝成功!

測試連線:

[root@hwchefserver ~]# sqlcmd -S localhost -U SA
Password:

登陸成功。

建立資料庫test:

1> create database test;
2> go
1> use test;
2> go
Changed database context to 'test'.

檢視資料庫:

1> select name from sys.databases;
2> go
name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
test

建立表hwtable:

1> create table hwtable ( id int, name varchar(20), gender varchar(20), age int);
2> go

插入資料:

1> insert into hwtable values (1, 'weiheng','male',20);
2> go

查詢:

1> select * from hwtable;
2> go
id name gender age
----------- -------------------- -------------------- -----------
1 weiheng male 20
 
(1 rows affected)

MSSQL Sever On Linux就這樣安裝完成了!

相關文章