iT邦幫忙

1

在M1 Macbook air 上使用sql server

  • 分享至 

  • xImage

我想在macbook air M1 上用eclipse 用JDBC的方法操作sql server,
找到了這篇教學
https://blog.chunyen.xyz/2021/08/dockermacbook-air-m1-cpu-docker-sql.html
根據提供的方法安裝了Docker, DBeaver。但在最後連線失敗。https://ithelp.ithome.com.tw/upload/images/20220207/20119815uhFPnvaqAe.png
https://ithelp.ithome.com.tw/upload/images/20220207/20119815KJamWlVLlX.png

請問是哪裡出錯了呢?
而且我在安裝DBeaver時,他有自動生一個DBeaver Sample Database出來,這個database好像不需要docker就能在dbeaver上操作,那我其實是不是不用docker也可以呢?

謝謝?

看更多先前的討論...收起先前的討論...
帳號是輸入sa嗎?
hypons iT邦新手 5 級 ‧ 2022-02-07 23:48:49 檢舉
一開始不是, 但看到你這樣說之後改 sa 就可以了。
不過在terminal裡輸入
"docker run -e "ACCEPT_EULA=1" -e "MSSQL_SA_PASSWORD=MyPass@word" -e "MSSQL_PID=Developer" -e "MSSQL_USER=新帳號" -p 1433:1433 -d --name=sql mcr.microsoft.com/azure-sql-edge"
時,我已經把MSSQL_USER改了, 為什麼還是sa呢??
chunyenc iT邦新手 5 級 ‧ 2022-05-31 15:22:59 檢舉
我是原PO,關於 docker 變數 MSSQL_USER 確實是不能用的。
你可以參考這個網址:https://docs.microsoft.com/zh-tw/sql/linux/quickstart-install-connect-docker?view=sql-server-ver16&pivots=cs1-bash#pullandrun2019

底下有說明 docker run 的變數,
在發文的同時的確是因為 run 而 run, 真是不好意思讓你在測試下更改 MSSQL_USER 後沒有實際作用,因為在官方文件上就是沒這個變數

只是當時在測試 M1 SQL Server 直接複製別人的網址直接發文,
那我還是希望你可以去看 MS 官方檔案並知道如何使用 Docker !!

我是查到你這篇文來做一個回覆。
chunyenc iT邦新手 5 級 ‧ 2022-05-31 15:25:59 檢舉
底下 fillano 大也有說明是 dockerfile 的問題,但是在 dockerfile 撰寫的同時,如何使用都會在 image 的說明文件上 ..

也就是 https://hub.docker.com/_/microsoft-azure-sql-edge,不過你建立好也是可以用 https://docs.microsoft.com/zh-tw/sql/relational-databases/security/authentication-access/create-a-database-user?view=sql-server-ver16 這篇文章來建立使用者。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

1
fillano
iT邦超人 1 級 ‧ 2022-02-08 10:19:32
最佳解答

你用的是這個image:
https://hub.docker.com/_/microsoft-azure-sql-edge

在底下說明中你會發現,真正可用的環境變數就三個(ACCEPT_EULA、MSSQL_SA_PASSWORD、MSSQL_PID),沒提到MSSQL_USER。

去找一下一些Dockerfile,會發現有些可以傳更多的環境變數進去讓他創建資料庫跟帳戶,這些都有相對應的.sh跟.sql,從Dockerfile可以追蹤他的寫法跟用法。(例如entrypoint.sh / setup.sql等等,檔名跟環境變數名都要看實際例子才會知道)

看更多先前的回應...收起先前的回應...
hypons iT邦新手 5 級 ‧ 2022-02-08 13:22:41 檢舉

很抱歉,我才剛學到JDBC,所以你說的我都看不懂...
不過你可以再詳細的介紹一下docker,sql,dbeaver的關係嗎?
謝謝?

fillano iT邦超人 1 級 ‧ 2022-02-08 16:33:29 檢舉

你可以把docker跑的image當作一個虛擬機,sql server在虛擬機裡面跑,透過設定好對外的port就可以跟他連接。

網路上有很多做好的image,可以寫Dockerfile直接拿來用,然後進行設定等等,語法也蠻簡單的。

hypons iT邦新手 5 級 ‧ 2022-02-08 16:50:26 檢舉

所以就是用了docker這個虛擬機我才能在mac上跑sql server嗎?

fillano iT邦超人 1 級 ‧ 2022-02-10 09:51:25 檢舉

可以這樣理解...雖然嚴格來說docker不是一個完全的虛擬機,而是透過作業系統的一些機制讓程式可以在獨立的環境執行,所以一般把他稱作容器,他使用的資源是可以共享的,比純虛擬機少。

hypons iT邦新手 5 級 ‧ 2022-02-11 23:03:22 檢舉

我今天有學到tomcat,老師說tomcat是一個容器。那tomcat和docker也是同一類容器嗎?

fillano iT邦超人 1 級 ‧ 2022-02-12 15:31:47 檢舉

這是不一樣的東西,就像java執行的環境也稱做虛擬機,就是個名詞

1
Darwin Watterson
iT邦好手 1 級 ‧ 2022-02-08 08:27:51

https://ithelp.ithome.com.tw/upload/images/20220208/201091071r51mgNRiS.png
錯誤訊息顯示:
Login failed for user 'Hypons'. Reason: Could not find a login matching the name provided.

Hypons 的帳號沒建好!/images/emoticon/emoticon17.gif

相關教學看這篇吧!
快速入門:使用 Docker 執行 SQL Server 容器映像

hypons iT邦新手 5 級 ‧ 2022-02-08 13:19:33 檢舉

謝謝提供教學~~

我要發表回答

立即登入回答