目录
参考:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu
安装SQL server
1、导入公钥
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
2、注册mssqlserver Ubuntu存储库
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
3、安装
sudo apt-get update
sudo apt-get install -y -f mssql-server
4、配置(根据提示进行配置,包括选择版本(express、developer等)、接受许可协议、选择语言、设置sa(系统管理员)密码。密码需要包含大写字母、小写字母、数字、符号中的三种)
sudo /opt/mssql/bin/mssql-conf setup
5、验证服务是否运行
systemctl status mssql-server
6、如果打算远程连接,还需要确保打开防火墙的SQL server TCP端口(默认值为1433)。默认情况下Ubuntu防火墙是关闭状态,因此没必要运行以下命令,使用sudo ufw status可以查看其状态。
sudo ufw allow 1433/tcp
sudo ufw reload
但是如果有其他防火墙工具,则需要执行以下命令设置防火墙开启SQL server服务端口:
firewall-cmd --zone=public --add-port=1433/tcp --permanent
firewall-cmd --reload
安装SQL server 命令行工具
若要创建数据库,需要使用一个能够在 SQL Server 上运行 Transact-SQL 语句的工具进行连接。通过以下步骤安装 SQL Server 命令行工具: sqlcmd和bcp。
1、安装curl软件包
sudo apt-get install curl
2、导入公钥
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
3、注册Microsoft Ubuntu存储库
curl https://packages.microsoft.com/config/ubuntu/16.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
4、更新源列表,并使用unixODBC开发人员包运行安装命令
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev
如果要更新到最新版mssql工具,运行以下命令:
sudo apt-get update
sudo apt-get install mssql-tools
5、为mssql-tools设置环境变量
若要使sqlcmd/bcp可从登录会话的 bash shell 访问修改你路径中的 ~/.bash_profile文件则使用以下命令:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
若要使sqlcmd/bcp能从交互式/非登录会话的bash shell 访问修改路径中的 ~/.bashrc文件使用以下命令:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
OK,至此全部安装完毕。
当然我们也可以使用脚本来自动化安装。适用于Ubuntu,无人参与的SQL server安装脚本:https://docs.microsoft.com/zh-cn/sql/linux/sample-unattended-install-ubuntu?view=sql-server-2017
命令行连接SQL server
使用 sqlcmd 本地连接到新的 SQL Server 实例
1、使用 SQL Server 名称 (-S),用户名 (-U) 和密码 (-P) 的参数运行 sqlcmd。
本地连接,因此服务器名称为 localhost ,用户名为 SA ,密码即安装过程中设置的密码。如果要进行远程连接,指定 -S 参数为远程计算机名称或 IP 地址,并确保防火墙上的端口 1433 已打开即可。
sqlcmd -S localhost -U SA -P 'YourPassword'
2、如果成功,应会显示 sqlcmd 命令提示符:1> 。
创建和查询数据
新建数据库
注意,SQL语句中关键词不区分大小写,但是最好写成大写字母。因为我们写好的SQL语句在执行的时候是先转化为大写字母之后执行的,如果写成了小写会影响执行效率。
1、使用Transact-SQL 命令创建一个测试数据库
CREATE DATABASE TestDB
2、编写一个查询语句,查看服务器上所有数据库的名称
SELECT Name from sys.Databases
3、前两个命令没有立即执行,必须在新行中输入 GO 命令才能执行前面的语句
GO
插入数据
1、在 sqlcmd 命令提示符中,将上下文切换到新的 TestDB
数据库:
USE TestDB
2、创建名为 Inventory
的新表:
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
3、将数据插入新表:
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
4、执行
GO
选择数据
运行查询从 Inventory
表查看数据。
1、通过 sqlcmd 命令提示符输入查询,以返回 Inventory
表中数量大于 152 的行:
SELECT * FROM Inventory WHERE quantity > 152;
2、执行
GO
退出 sqlcmd 命令提示符
QUIT
配置 Linux 和 SQL Server 来提高生产方案的性能、管理SQL server的跨平台工具、从windows连接Linux上的SQLserver等等教程参考官方:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-2017
使用备份和还原将SQL server数据库从Windows迁移到Linux参考官方:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-migrate-restore-database?view=sql-server-2017
适用于Microsoft SQL server的链接库和框架(从各种编程语言连接数据库)参考官方:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-develop-connectivity-libraries?view=sql-server-2017