当前位置:   article > 正文

如何在mac上使用SQL-server与在Linux上安装SQL-server_sqlserver2019 mac

sqlserver2019 mac

本文详细介绍在mac无法安装SSMS的情况下使用sql server与安装过程中出现的情况

背景

学校数据库要用sql server,无奈mac无法安装。

解决方法有:

  1. window虚拟机 (臃肿
  2. 云数据库 (贵
  3. 云服务器安装sql server (未必人人都有且贵
  4. 虚拟机安装sql server,然后通过 navicat premium 或者其他数据库管理软件连接上

最终选择了第四种(我的服务器装着古老的Windows server 2012),且第四种可复现程度较大。

本次试验平台&软件

Ubuntu 18.04 (需要2g空闲内存,可改)

macOS 10.15.7

navicat premium

SQL Server 2019

一、安装 SQL Server

根据官网安装方法最佳https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu

安装步骤:

  1. 导入公共存储库 GPG 密钥:
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  • 1
  1. 为 SQL Server 2019 注册 Microsoft SQL Server Ubuntu 存储库:
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"
  • 1
  1. 运行以下命令以安装 SQL Server:
sudo apt-get update
sudo apt-get install -y mssql-server
  • 1
  • 2
  1. 包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本

SA:system administrator,系统管理员,具有最高权限

可能会出现内存不足报错与权限问题,看后面

sudo /opt/mssql/bin/mssql-conf setup
  • 1
选择 SQL Server 的一个版本:
  1) Evaluation (免费,无生产许可,180 天限制)
  2) Developer (免费,无生产许可)
  3) Express (免费)
  4) Web (付费版)
  5) Standard (付费版)
  6) Enterprise (付费版) - CPU 核心利用率限制为 20 个物理/40 个超线程
  7) Enterprise Core (付费版) - CPU 核心利用率达到操作系统最大值
  8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

此处按需选择,一般选择 2

选择 SQL Server 的语言:
(1) English
(2) Deutsch
(3) Español
(4) Français
(5) Italiano
(6) 日本語
(7) 한국어
(8) Português
(9) Русский
(10) 中文 – 简体
(11) 中文 (繁体)
输入选项 1-11:10
输入 SQL Server 系统管理员密码:
确认 SQL Server 系统管理员密码:
正在配置 SQL Server...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

此处按需

注意:密码要大写字母、小写字母、数字、字符四选三

  1. 完成配置后,验证服务是否正在运行:
systemctl status mssql-server --no-pager
  • 1

active (running) : 运行中

  1. 如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)

Ubuntu防火墙默认关闭,ufw status可以查看。

tips:防火墙关闭也可以连接

sudo ufw allow 1433/tcp
sudo ufw reload
  • 1
  • 2

具体参考:如何在Ubuntu 18.04上使用UFW设置防火墙

安装完成,此时你已经可以通过软件连接了,但是你可能会出现以下问题。

常见报错

  1. 内存不足

安装SQL Server要求要2g空闲内存,作为试验品必然不分配太多,直接改

cd /opt/mssql/bin/ # 进入目录
mv sqlservr sqlservr.old # 保存备份文件
python # 使用python修改内存限制代码
  • 1
  • 2
  • 3
>>>oldfile = open("sqlservr.old", "rb").read()
>>>newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e")
>>>open("sqlservr", "wb").write(newfile)
>>>exit()
  • 1
  • 2
  • 3
  • 4

注意

  1. 要用python2
  2. 若出现文件权限问题,请使用 sudo python 进去python2

修改后,内存限制被缩小为 512 MB,回到~正常安装即可。

回到~,再次执行上面第四步

建议先执行 sudo chmod 777 sqlservr 防止出现下一个报错

  1. sqlservr: 权限不够

经过上面执行,安装时可能会出现sqlservr文件权限不够问题

bash: /opt/mssql/bin/sqlservr: 权限不够
Created symlink /etc/systemd/system/multi-user.target.wants/mssql-server.service → /lib/systemd/system/mssql-server.service.
安装程序已成功完成。SQL Server 正在启动。
  • 1
  • 2
  • 3

通过修改文件权限解决

cd /opt/mssql/bin
sudo chmod 777 sqlservr
  • 1
  • 2

回到~,再次执行上面第四步

二、在Mac连接数据库

此时已经可以通过软件连接到虚拟机里的SQL Server

sql_serverNewConnection01

sql_serverConnectionSuccess01

三、安装SQL Server命令行工具

仍是建议看官方文档:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15

  1. 导入公共存储库 GPG 密钥
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
  • 1
  1. 注册 Microsoft Ubuntu 存储库
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
  • 1
  1. 更新源列表,并使用 unixODBC 开发人员包运行安装命令
sudo apt-get update 
sudo apt-get install mssql-tools unixodbc-dev
  • 1
  • 2
  1. 可选:向 bash shell 中的 PATH 环境变量添加 /opt/mssql-tools/bin/
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
  • 1
  • 2
  • 3

四、本地测试

以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例

命令行连接

sqlcmd -S localhost -U SA -P '<YourPassword>'
  • 1

-S:名称

-U:用户名,此时用SA

-P:密码,上面设置的密码,替换-P后面的文本

新建数据库

一行一行输入

CREATE DATABASE TestDB
SELECT Name from sys.Databases
GO
  • 1
  • 2
  • 3

Tips:前两个命令没有立即执行。 必须在新行中键入 GO 才能执行以前的命令

执行结果:

os@os-virtual-machine:~$ sqlcmd -S localhost -U SA -P SQL_server
1> CREATE DATABASE TestDB
2> SELECT Name from sys.Databases
3> GO
Name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
TestDB
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
sql_serverCreateDB01

插入数据

USE TestDB
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
GO
  • 1
  • 2
  • 3

执行结果:

1> USE TestDB
2> 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
Changed database context to 'TestDB'.

(1 rows affected)

(1 rows affected)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

sql_serverInsertDB02

选择数据

SELECT * FROM Inventory WHERE quantity > 152;
GO
  • 1
  • 2

执行结果:

1> SELECT * FROM Inventory WHERE quantity > 152;
2> GO
id          name                                               quantity
----------- -------------------------------------------------- -----------
          2 orange                                                     154

(1 rows affected)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

退出sqlcmd

QUIT
  • 1

参考文章:

  1. 快速入门:安装 SQL Server 并在 Ubuntu 上创建数据库 https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15
  2. Linux安装SQL Server 2017(安装篇SQL Server on linux): https://blog.csdn.net/sqlserverdiscovery/article/details/79193959
  3. 破解2G限制:https://www.cnblogs.com/biaogejiushibiao/p/9280841.html
  4. Linux 下安装sql server 时 2G内存限制的最新(2019-08-15) 解决方案: https://blog.csdn.net/weixin_30451709/article/details/99934495
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/680262
推荐阅读
相关标签
  

闽ICP备14008679号