docker-compose文件配置:
version: '3.1'
services:
sqlserver:
image: microsoft/mssql-server-linux
container_name: sqlserver
ports:
- 1433:1433
volumes:
- ./data/mssql:/var/opt/mssql
- /etc/localtime:/etc/localtime
restart: always
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=ROot^123
这部分有三个坑:
1,如果挂载的数据卷本地目录没有提前创建并赋权的话可能会挂载失败
2,‘ACCEPT_EULA’ 必须默认为‘Y’ 否则会创建失败
3,密码必须8位以上且大小写都得有,符号和数字可能也得有
Navicat连接:
设置连接参数,注意逗号:
选择驱动程序:
如果提示没有驱动或驱动错误,去navicat安装目录安装:
连接成功!
成功后创建数据库:
但是直接这样创建会42000失败,原因是没有找到对应的linux目录,即使你配制了你数据卷对应的目录,navicat 生成的建库语句也是错误的,所以这里使用命令创建数据库:
CREATE DATABASE [welcome]
ON
PRIMARY
(
NAME = N'welcome',
FILENAME = N'/var/opt/mssql/data/welcome.ndf',
SIZE = 8MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 64MB
)
LOG ON
(
NAME = N'welcome_log',
FILENAME = N'/var/opt/mssql/data/welcome_log.ldf',
SIZE = 8MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 64MB
)
GO
ALTER DATABASE [welcome] COLLATE Chinese_PRC_Stroke_CI_AI
GO
ALTER DATABASE [welcome] SET RECOVERY SIMPLE
GO
ALTER DATABASE [welcome] SET COMPATIBILITY_LEVEL = 100
GO
EXEC [welcome].dbo.sp_changedbowner N'sa'
如此创建成功,就可以建表使用了: