赞
踩
本文详细介绍在mac无法安装SSMS的情况下使用sql server与安装过程中出现的情况
学校数据库要用sql server,无奈mac无法安装。
解决方法有:
navicat premium
或者其他数据库管理软件连接上最终选择了第四种(我的服务器装着古老的Windows server 2012),且第四种可复现程度较大。
Ubuntu 18.04 (需要2g空闲内存,可改)
macOS 10.15.7
navicat premium
SQL Server 2019
根据官网安装方法最佳: https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/18.04/mssql-server-2019.list)"
sudo apt-get update
sudo apt-get install -y mssql-server
SA:system administrator,系统管理员,具有最高权限
可能会出现内存不足报错与权限问题,看后面
sudo /opt/mssql/bin/mssql-conf setup
选择 SQL Server 的一个版本:
1) Evaluation (免费,无生产许可,180 天限制)
2) Developer (免费,无生产许可)
3) Express (免费)
4) Web (付费版)
5) Standard (付费版)
6) Enterprise (付费版) - CPU 核心利用率限制为 20 个物理/40 个超线程
7) Enterprise Core (付费版) - CPU 核心利用率达到操作系统最大值
8) 我通过零售渠道购买了许可证并具有要输入的产品密钥。
此处按需选择,一般选择 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...
此处按需
注意:密码要大写字母、小写字母、数字、字符四选三
systemctl status mssql-server --no-pager
active (running) : 运行中
Ubuntu防火墙默认关闭,ufw status可以查看。
tips:防火墙关闭也可以连接
sudo ufw allow 1433/tcp
sudo ufw reload
具体参考:如何在Ubuntu 18.04上使用UFW设置防火墙
安装完成,此时你已经可以通过软件连接了,但是你可能会出现以下问题。
安装SQL Server要求要2g空闲内存,作为试验品必然不分配太多,直接改
cd /opt/mssql/bin/ # 进入目录
mv sqlservr sqlservr.old # 保存备份文件
python # 使用python修改内存限制代码
>>>oldfile = open("sqlservr.old", "rb").read()
>>>newfile = oldfile.replace("\x00\x94\x35\x77", "\x00\x80\x84\x1e")
>>>open("sqlservr", "wb").write(newfile)
>>>exit()
注意
- 要用python2
- 若出现文件权限问题,请使用
sudo python
进去python2
修改后,内存限制被缩小为 512 MB,回到~正常安装即可。
回到~,再次执行上面第四步
建议先执行 sudo chmod 777 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 正在启动。
通过修改文件权限解决
cd /opt/mssql/bin
sudo chmod 777 sqlservr
回到~,再次执行上面第四步
此时已经可以通过软件连接到虚拟机里的SQL Server
仍是建议看官方文档:https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver15
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev
/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
以下步骤使用 sqlcmd 本地连接到新的 SQL Server 实例
sqlcmd -S localhost -U SA -P '<YourPassword>'
-S:名称
-U:用户名,此时用SA
-P:密码,上面设置的密码,替换-P后面的文本
一行一行输入
CREATE DATABASE TestDB
SELECT Name from sys.Databases
GO
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
USE TestDB
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
GO
执行结果:
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)
SELECT * FROM Inventory WHERE quantity > 152;
GO
执行结果:
1> SELECT * FROM Inventory WHERE quantity > 152;
2> GO
id name quantity
----------- -------------------------------------------------- -----------
2 orange 154
(1 rows affected)
QUIT
参考文章:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。