簡體   English   中英

在 Windows Docker 映像上安裝 MySQL

[英]Install MySQL on Windows Docker Image

任何人都成功地將 MySQL 添加到 Windows docker 映像中? 我嘗試了兩種不同的方式將 MySQL 部署到我的映像中。

我嘗試在非交互模式下使用 MySQL 中的 msi。 在容器中根本不起作用。

通過powershell安裝Mysql.msi時出現以下錯誤

我嘗試使用 mysqld 命令提取 zip 以進行手動設置,但根本不執行任何操作。 幾乎沒有,可執行文件的行為就像它們只是運行並退出(沒有輸出,沒有):

https://github.com/Somesh-K/Automation-Mysql/blob/main/1.mysql_setup_v2.ps1

這一切都有些奇怪。

是的,我知道有一個由 Oracle 發布到 Docker hub 的非常好的 MySQL docker linux 容器。 這有效。 問題在於,運行需要交互的 Windows 容器和 Linux 容器會在兩者之間的網絡方面給用戶帶來真正不必要的挫敗感。

為我們的應用程序使用不同的后端(如 SQL 服務器)是不可行的,並且使用 .NET 核心而不是 .NET 框架是不可行的。 為簡化起見,我只想在我們基於 Windows 的網絡服務器 docker 映像上安裝 MySQL。 這似乎可以使用上面鏈接中描述的兩種方法,但如前所述,它不起作用,並且 MySQL 二進制文件在容器中運行時會出現非常奇怪的行為。

下面是一個奇怪行為的例子:

為 Windows 安裝 Docker 桌面

從 MySQL 下載 Win32 安裝 zip 並將其放置在 C:\\mydata

https://dev.mysql.com/downloads/mysql/

從 Docker Hub 拉下 ASPNET 鏡像,運行它,然后打開 Powershell:

# docker pull mcr.microsoft.com/dotnet/framework/aspnet:4.8 
# docker run --name testweb -v C:\mydata:C:\mydata:R -d mcr.microsoft.com/dotnet/framework/aspnet:4.8
# docker exec -it testweb powershell
C:\ > cd C:\mydata
C:\mydata\ > Expand-archive -path .\mysql-5.7.36-winx64.zip .
C:\mydata\ > cd \mysql-5.7.36-winx64\bin
C:\mydata\mysql-5.7.36-winx64\bin\ > .\mysql.exe -version
[zero output, acts like it's an empty executable]

結果

容器上提取的 mysql bin 目錄中的任何可執行文件/二進制文件都沒有做任何事情。 他們表現得好像有人編寫並執行了剛剛退出的程序。 我以為我的安裝 zip 不正確,所以我在常規 Windows 10 工作站上提取了相同的 zip。 所有的二進制文件至少返回錯誤或做一些事情。

這是超級奇怪的。 任何幫助,將不勝感激。

下載這個可執行文件並將其放入我的容器似乎可以解決問題:

https://download.microsoft.com/download/2/E/6/2E61CFA4-993B-4DD4-91DA-3737CD5CD6E3/vcredist_x64.exe

把它放在我的容器上並啟動它

C:\vcredist.exe /Q

執行此操作后,可執行文件開始工作:

C:\ > cmd.exe /C "C:\mysql\bin\mysqld" --initialize-insecure
C:\ > cmd.exe /C "C:\mysql\bin\mysqld" --install

C:\ > start-service mysql
C:\ > cmd.exe /C "C:\mysql\bin\mysql" -u root

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM