连接到 MSSQL
为了真正从 Linux 连接到服务器,我们需要安装 mssql-tools 包,它来自与我们刚刚设置的不同的存储库。
可以在这里找到:https://packages.microsoft.com/config/rhel/7/prod.repo
首先,我们将下载 prod.repo 文件的副本并将其放入 /etc/yum.repos.d/ 目录中。
[jack@onitroad ~]# wget https://packages.microsoft.com/config/rhel/7/prod.repo -O /etc/yum.repos.d/prod.repo
我们现在可以继续安装 mssql-tools 包,如下所示。
[jack@onitroad ~]# yum install mssql-tools -y
安装完成后,我们可以使用 sqlcmd 命令与数据库进行交互。
要查看如何运行 sqlcmd,只需使用-?
选项。
不幸的是,当我们为密码指定 -P 选项时,似乎必须在命令行中提供密码,并且没有稍后提示输入的选项。
请记住,密码将存储在以这种方式运行的 bash 历史记录中。
[jack@onitroad ~]# sqlcmd -U SA -P password 1> create database test; 2> go 1> use test; 2> go Changed database context to 'test'. 1> create table websites(domain varchar(255)); 2> go 1> insert into websites (domain) 2> values ('onitroad.com'); 3> go (1 rows affected) 1> select domain 2> from websites; 3> go domain onitroad.com (1 rows affected)
在本例中,我们创建了一个测试数据库,其中包含一个名为网站的表和一个域名列。
然后我们插入一个域名并使用 select 将其拉出,确认我们能够连接并且基本 SQL 查询似乎按预期工作。
在 CentOS 7 中安装 MSSQL
首先,我们将设置存储库文件,Microsoft 在此处为 RHEL 提供此文件的副本:https://packages.microsoft.com/config/rhel/7/mssql-server.repo
我们将使用 wget 命令将此文件复制到 /etc/yum.repos.d/ 目录,以便我们可以将它与 yum 或者 dnf 包管理器一起使用。
[jack@onitroad ~]# wget https://packages.microsoft.com/config/rhel/7/mssql-server.repo -O /etc/yum.repos.d/mssql-server.repo
现在存储库文件已就位,安装就像运行以下命令一样简单。
[jack@onitroad ~]# yum install mssql-server -y ... +-------------------------------------------------------------------+ | Please run /opt/mssql/bin/sqlservr-setup to complete the setup of | | Microsoft(R) SQL Server(R). | +-------------------------------------------------------------------+
安装完成后,我们建议运行 /opt/mssql/bin/sqlservr-setup bash 脚本来完成安装过程。
在我的第一次安装尝试中,我收到以下错误,因为我的虚拟机仅使用 2GB 内存运行,因此在继续之前请确保我们有足够的内存。
sqlservr: This program requires a machine with at least 3250 megabytes of memory. Microsoft(R) SQL Server(R) setup failed with error code 1.
一旦我们有足够的可用内存,我们就可以继续。
[jack@onitroad ~]# /opt/mssql/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.
就是这样,Microsoft SQL Server 现在成功运行并侦听 TCP 端口 1434 上的流量。
[jack@onitroad ~]# 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 Fri 2014-12-30 02:26:37 PST; 38s ago Main PID: 2974 (sqlservr) CGroup: /system.slice/mssql-server.service ââ2974 /opt/mssql/bin/sqlservr ââ2995 /opt/mssql/bin/sqlservr [jack@onitroad ~]# netstat -antp | grep 1434 tcp 0 0 127.0.0.1:1434 0.0.0.0:* LISTEN 2995/sqlservr