主要就想说一说mac os 如何在docker上附加SqlServer数据库
搞了我好久,头疼ing...
首先安装docker 地址:https://hub.docker.com/editions/community/docker-ce-desktop-mac/下载完安装即可
安装之后可以设置一个自己认为快一点docker 国内镜像,自行百度
之后就是在docker中拉取SqlServer 微软官网讲得很清楚 :https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-ver15&pivots=cs1-bash
这里有个关键点就是运行docker的SqlServer容器的时候,如果使用推荐的
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=<[email protected]>" \
-p 1433:1433 --name sql1 \
-d mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
这个方式的话只是单纯的设置一下密码数据库名称和映射端口号
如果你想在docker中附加mac上的SqlServer数据库,这个时候你就需要使用另一种方式来创建运行一个SqlServer容器了.
就是在创建SqlServer容器的时候将主机目录作为数据卷装载:
附上具体操作连接:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-configure-docker?view=sql-server-ver15
直接拉到如上图这个地方从这里开始看
你以为这样就完了吗,在mac安装SqlServer哪有那么容易.
所以我们应该往下翻到如图这个位置,这才是正确的方式
当你到这里的时候他还没有完成,因为你的docker中没有你的数据库文件,你需要将你的数据库文件从mac中复制到docker的数据卷容器才可以
container id 可以通过docker ps 看到
container path 就是数据库文件存放容器的目录
host path 就是mac 上数据库的目录
如:
docker cp /Volumes/WINDOWS/jdy/SqlServerData/jdy_mx.mdf a11d2c0f7563:/var/opt/mssql/jdy_mx.mdf
我这个写法跟上面链接的写法不一样但是效果一样 格式是这样的
docker cp <host path> <Container ID>:<Container path>
最后就是docker 链接SqlServer容器之后执行SQL语句附加了:
exec sp_attach_db @dbname = 'jdy_mx',
@filename1 = '/var/opt/mssql/jdy_mx.mdf',
@filename2 = '/var/opt/mssql/jdy_mx_log.ldf'
go
~ ~
说的不清的可以留言来问我!!