網(wǎng)站首頁 編程語言 正文
1 背景
自 SQL Server 2019 CU3 起,支持 Ubuntu 18.04。
自 SQL Server 2019 CU10 起,支持 Ubuntu 20.04。
Docker 引擎 1.8+
至少 2 GB 的磁盤空間
至少 2 GB 的 RAM
博主機(jī)器:
Welcome to Ubuntu 20.04.3 LTS (GNU/Linux 5.11.0-37-generic x86_64)
2 創(chuàng)建容器
拉取鏡像
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
運(yùn)行容器
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
參數(shù) | 說明 |
---|---|
-e “ACCEPT_EULA=Y” 將 ACCEPT_EULA 變量設(shè)置為任意值,以確認(rèn)接受最終用戶許可協(xié)議。 | SQL Server 映像的必需設(shè)置。 |
-e “SA_PASSWORD=Passw0rd” 指定至少包含 8 個字符且符合 SQL Server 密碼要求的強(qiáng)密碼。 | SQL Server 映像的必需設(shè)置。 |
-p 51433:1433 將主機(jī)環(huán)境中的 TCP 端口(第一個值)映射到容器中的 TCP 端口(第二個值)。 | 在此示例中,SQL Server 偵聽容器中的 TCP 1433,并對主機(jī)上的端口 1433 公開。 |
–name sql1 為容器指定一個自定義名稱,而不是使用隨機(jī)生成的名稱。 | 如果運(yùn)行多個容器,則無法重復(fù)使用相同的名稱。 |
-h sql1 用于顯式設(shè)置容器主機(jī)名,如果不指定它,則默認(rèn)為容器 ID, | 該 ID 是隨機(jī)生成的系統(tǒng) 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 設(shè)為相同的值是一種很好的方法,可以輕松地識別目標(biāo)容器
3 修改SA密碼
微軟官方建議修改SA密碼
SA 帳戶是安裝過程中在 SQL Server 實(shí)例上創(chuàng)建的系統(tǒng)管理員。 創(chuàng)建 SQL Server 容器后,通過在容器中運(yùn)行 echo $SA_PASSWORD,可發(fā)現(xiàn)指定的 SA_PASSWORD 環(huán)境變量。
選擇 SA 用戶要使用的強(qiáng)密碼。
使用 docker exec 運(yùn)行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
下列步驟在容器內(nèi)部使用 SQL Server 命令行工具 sqlcmd 來連接 SQL Server。
使用 docker exec -it 命令在運(yùn)行的容器內(nèi)部啟動交互式 Bash Shell。 在下面的示例中,mssql是在創(chuàng)建容器時(shí)由 --name 參數(shù)指定的名稱。
sudo docker exec -it mssql "bash"
在容器內(nèi)部使用 sqlcmd 進(jìn)行本地連接。 默認(rèn)情況下,sqlcmd 不在路徑之中,因此需要指定完整路徑。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "Passw0rd"
如果成功,應(yīng)會顯示 sqlcmd 命令提示符:1>
5 容器外鏈接mssql
1.查找承載容器的計(jì)算機(jī)的 IP 地址。 在 Linux 上,使用 ifconfig 或 ip addr。在 Windows 上,使用 ipconfig。
2.對于本示例,請?jiān)诳蛻舳擞?jì)算機(jī)上安裝 sqlcmd 工具
3.運(yùn)行 sqlcmd,指定 IP 地址和映射容器中的端口 1433 的端口。 本例中為主機(jī)上的端口 51433,則在此處使用它。 還需要在防火墻上打開相應(yīng)的入站端口以允許連接。
4.運(yùn)行 Transact-SQL 命令。 完成后,鍵入 QUIT。
navicat 鏈接注意事項(xiàng)
使用Navicat連接Sqlserver數(shù)據(jù)庫時(shí),若端口號不是默認(rèn)端口號,需要在主機(jī)IP后使用英文逗號加端口號的形式。
對于Navicat,以上設(shè)置后,需要安裝SQL Server Native Client 10.0驅(qū)動,安裝程序?yàn)镹avicat軟件根目錄下的sqlncli_x64.msi,32位版也有提供。安裝完成后,創(chuàng)建Sqlserver連接時(shí)高級選項(xiàng)卡中的Native Client驅(qū)動將有下拉選項(xiàng)可供選擇。
總結(jié)
原文鏈接:https://blog.csdn.net/kobe_okok/article/details/121666312
相關(guān)推薦
- 2022-04-23 配置基于域名訪問的網(wǎng)站以及指定用戶可訪問的網(wǎng)站
- 2022-05-31 Python學(xué)習(xí)之加密模塊使用詳解_python
- 2023-12-11 Spring依賴注入DI
- 2022-02-13 Chrome控制臺報(bào)錯:無法加載 SourceMap 錯誤:狀態(tài)代碼 404,net::ERR_HT
- 2023-02-25 從迷你todo?命令行入門Rust示例詳解_Rust語言
- 2022-08-06 QT生成隨機(jī)驗(yàn)證碼的方法_C 語言
- 2022-06-20 Python使用PyAudio制作錄音工具的實(shí)現(xiàn)代碼_python
- 2022-04-10 Python?tkinter實(shí)現(xiàn)計(jì)算器功能_python
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支