網站首頁 編程語言 正文
1 背景
自 SQL Server 2019 CU3 起,支持 Ubuntu 18.04。
自 SQL Server 2019 CU10 起,支持 Ubuntu 20.04。
Docker 引擎 1.8+
至少 2 GB 的磁盤空間
至少 2 GB 的 RAM
博主機器:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-37-generic x86_64)
2 創建容器
拉取鏡像
docker pull mcr.microsoft.com/mssql/server:2019-latest
查看鏡像
docker images root@dev-virtual-machine:/home/dev# docker images REPOSITORY TAG IMAGE ID CREATED SIZE mcr.microsoft.com/mssql/server 2019-latest 6db3c5ebc331 3 weeks ago 1.55GB
運行容器
docker run
-e "ACCEPT_EULA=Y"
-e "SA_PASSWORD=Pass@w0rd"
-p 51433:1433
--name mssql
-h mssql
-d mcr.microsoft.com/mssql/server:2019-latest
參數 | 說明 |
---|---|
-e “ACCEPT_EULA=Y” 將 ACCEPT_EULA 變量設置為任意值,以確認接受最終用戶許可協議。 | SQL Server 映像的必需設置。 |
-e “SA_PASSWORD=Passw0rd” 指定至少包含 8 個字符且符合 SQL Server 密碼要求的強密碼。 | SQL Server 映像的必需設置。 |
-p 51433:1433 將主機環境中的 TCP 端口(第一個值)映射到容器中的 TCP 端口(第二個值)。 | 在此示例中,SQL Server 偵聽容器中的 TCP 1433,并對主機上的端口 1433 公開。 |
–name sql1 為容器指定一個自定義名稱,而不是使用隨機生成的名稱。 | 如果運行多個容器,則無法重復使用相同的名稱。 |
-h sql1 用于顯式設置容器主機名,如果不指定它,則默認為容器 ID, | 該 ID 是隨機生成的系統 GUID。 |
mcr.microsoft.com/mssql/server:2019-latest SQL Server 2019 | Ubuntu Linux 容器映像。 |
查看容器
root@dev-virtual-machine:/home/dev# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6498220c95f6 mcr.microsoft.com/mssql/server:2019-latest "/opt/mssql/bin/perm…" 24 minutes ago Up 23 minutes 0.0.0.0:51433->1433/tcp, :::51433->1433/tcp mssql
將 -h 和 --name 設為相同的值是一種很好的方法,可以輕松地識別目標容器
3 修改SA密碼
微軟官方建議修改SA密碼
SA 帳戶是安裝過程中在 SQL Server 實例上創建的系統管理員。 創建 SQL Server 容器后,通過在容器中運行 echo $SA_PASSWORD,可發現指定的 SA_PASSWORD 環境變量。
選擇 SA 用戶要使用的強密碼。
使用 docker exec 運行sqlcmd,以使用 Transact-SQL 更改密碼。 以下示例將從用戶輸入中讀取舊密碼和新密碼。
sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA \ -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \ -Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""
4 鏈接mssql
下列步驟在容器內部使用 SQL Server 命令行工具 sqlcmd 來連接 SQL Server。
使用 docker exec -it 命令在運行的容器內部啟動交互式 Bash Shell。 在下面的示例中,mssql是在創建容器時由 --name 參數指定的名稱。
sudo docker exec -it mssql "bash"
在容器內部使用 sqlcmd 進行本地連接。 默認情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Passw0rd"
如果成功,應會顯示 sqlcmd 命令提示符:1>
5 容器外鏈接mssql
1.查找承載容器的計算機的 IP 地址。 在 Linux 上,使用 ifconfig 或 ip addr。在 Windows 上,使用 ipconfig。
2.對于本示例,請在客戶端計算機上安裝 sqlcmd 工具
3.運行 sqlcmd,指定 IP 地址和映射容器中的端口 1433 的端口。 本例中為主機上的端口 51433,則在此處使用它。 還需要在防火墻上打開相應的入站端口以允許連接。
4.運行 Transact-SQL 命令。 完成后,鍵入 QUIT。
navicat 鏈接注意事項
使用Navicat連接Sqlserver數據庫時,若端口號不是默認端口號,需要在主機IP后使用英文逗號加端口號的形式。
對于Navicat,以上設置后,需要安裝SQL Server Native Client 10.0驅動,安裝程序為Navicat軟件根目錄下的sqlncli_x64.msi,32位版也有提供。安裝完成后,創建Sqlserver連接時高級選項卡中的Native Client驅動將有下拉選項可供選擇。
總結
原文鏈接:https://blog.csdn.net/kobe_okok/article/details/121666312
相關推薦
- 2023-07-28 form表單使用Select 選擇器
- 2022-03-20 ajax和fetch的區別點總結_AJAX相關
- 2023-07-27 使用Echarts圖表時,頁面切換后并且改變頁面窗口大小,再切回原來頁面Echarts圖表顯示有問題
- 2023-03-28 Python中用append()連接后多出一列Unnamed的解決_python
- 2023-07-27 express 請求方式(常用) / 不完整請求路徑
- 2022-12-23 Kotlin?try?catch異常處理i詳解_Android
- 2024-01-12 JPA實現不等于查詢
- 2021-12-09 數據庫建表設計六范式介紹_數據庫其它
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支