如何在mac上使用SQL server与在Linux上安装SQL server
本文详细介绍在mac无法安装SSMS的情况下使用sql server与安装过程中出现的情况
背景
学校数据库要用sql server,无奈mac无法安装。
解决方法有:
- window虚拟机 (臃肿
- 云数据库 (贵
- 云服务器安装sql server (未必人人都有且贵
- 虚拟机安装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
安装步骤:
- 导入公共存储库 GPG 密钥:
1 | wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - |
- 为 SQL Server 2019 注册 Microsoft SQL Server Ubuntu 存储库:
1 | sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)" |
- 运行以下命令以安装 SQL Server:
1 | sudo apt-get update |
- 包安装完成后,运行 mssql-conf setup,按照提示设置 SA 密码并选择版本
SA:system administrator,系统管理员,具有最高权限
可能会出现内存不足报错与权限问题,看后面
1 | sudo /opt/mssql/bin/mssql-conf setup |
1 | 选择 SQL Server 的一个版本: |
此处按需选择,一般选择 2
1 | 选择 SQL Server 的语言: |
此处按需
注意:密码要大写字母、小写字母、数字、字符四选三
- 完成配置后,验证服务是否正在运行:
1 | systemctl status mssql-server --no-pager |
active (running) : 运行中
- 如果计划远程连接,可能还需要在防火墙上打开 SQL Server TCP 端口(默认值为 1433)
Ubuntu防火墙默认关闭,ufw status可以查看。
tips:防火墙关闭也可以连接
1 | sudo ufw allow 1433/tcp |
具体参考:如何在Ubuntu 18.04上使用UFW设置防火墙
安装完成,此时你已经可以通过软件连接了,但是你可能会出现以下问题。
常见报错
- 内存不足
安装SQL Server要求要2g空闲内存,作为试验品必然不分配太多,直接改
1 | cd /opt/mssql/bin/ # 进入目录 |
1 | >>>oldfile = open("sqlservr.old", "rb").read() |
注意
- 要用python2
- 若出现文件权限问题,请使用
sudo python
进去python2
修改后,内存限制被缩小为 512 MB,回到~正常安装即可。
回到~,再次执行上面第四步
建议先执行 sudo chmod 777 sqlservr 防止出现下一个报错
- sqlservr: 权限不够
经过上面执行,安装时可能会出现sqlservr文件权限不够问题
1 | bash: /opt/mssql/bin/sqlservr: 权限不够 |
通过修改文件权限解决
1 | cd /opt/mssql/bin |
回到~,再次执行上面第四步
二、在Mac连接数据库
此时已经可以通过软件连接到虚拟机里的SQL Server
三、安装SQL Server命令行工具
仍是建议看官方文档:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15
- 导入公共存储库 GPG 密钥
1 | curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add - |
- 注册 Microsoft Ubuntu 存储库
1 | curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list |
- 更新源列表,并使用 unixODBC 开发人员包运行安装命令
1 | sudo apt-get update |
- 可选:向 bash shell 中的 PATH 环境变量添加
/opt/mssql-tools/bin/
1 | echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile |
四、本地测试
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例
命令行连接
1 | sqlcmd -S localhost -U SA -P '<YourPassword>' |
-S:名称
-U:用户名,此时用SA
-P:密码,上面设置的密码,替换-P后面的文本
新建数据库
一行一行输入
1 | CREATE DATABASE TestDB |
Tips:前两个命令没有立即执行。 必须在新行中键入 GO
才能执行以前的命令
执行结果:
1 | os@os-virtual-machine:~$ sqlcmd -S localhost -U SA -P SQL_server |
插入数据
1 | USE TestDB |
执行结果:
1 | 1> USE TestDB |
选择数据
1 | SELECT * FROM Inventory WHERE quantity > 152; |
执行结果:
1 | 1> SELECT * FROM Inventory WHERE quantity > 152; |
退出sqlcmd
1 | QUIT |
参考:
- 快速入门:安装 SQL Server 并在 Ubuntu 上创建数据库 https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15
- Linux安装SQL Server 2017(安装篇SQL Server on linux): https://blog.csdn.net/sqlserverdiscovery/article/details/79193959
- 破解2G限制:https://www.cnblogs.com/biaogejiushibiao/p/9280841.html
- Linux 下安装sql server 时 2G内存限制的最新(2019-08-15) 解决方案: https://blog.csdn.net/weixin_30451709/article/details/99934495