提交sql server 脚本
This commit is contained in:
parent
c571b670c3
commit
a9b9dcdcec
217
DockerComposeShells/SQLServer-README.md
Normal file
217
DockerComposeShells/SQLServer-README.md
Normal file
@ -0,0 +1,217 @@
|
||||
# SQL Server 2022 Linux Docker Compose 部署指南
|
||||
|
||||
## 概述
|
||||
|
||||
这是一个完整的SQL Server 2022 Linux Docker Compose部署方案,包含数据库初始化、用户管理、性能优化等配置。
|
||||
|
||||
## 文件结构
|
||||
|
||||
```
|
||||
├── docker-compose-sqlserver.yml # Docker Compose 配置文件
|
||||
├── sqlserver.env # 环境变量配置文件
|
||||
├── sqlserver/ # SQL Server 相关目录
|
||||
│ ├── init/ # 初始化脚本目录
|
||||
│ │ ├── 01-create-database.sql # 创建数据库和表
|
||||
│ │ ├── 02-create-user.sql # 创建用户和权限
|
||||
│ │ └── 03-performance-config.sql # 性能优化配置
|
||||
│ ├── data/ # 数据文件目录
|
||||
│ ├── logs/ # 日志文件目录
|
||||
│ ├── backup/ # 备份文件目录
|
||||
│ └── web-config/ # Web管理界面配置
|
||||
└── SQLServer-README.md # 本说明文档
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 配置环境变量
|
||||
|
||||
复制并修改环境变量文件:
|
||||
|
||||
```bash
|
||||
cp sqlserver.env .env
|
||||
```
|
||||
|
||||
编辑 `.env` 文件,修改以下关键配置:
|
||||
|
||||
```bash
|
||||
# 修改SA密码(必须)
|
||||
SQLSERVER_SA_PASSWORD=YourStrong@Password123!
|
||||
|
||||
# 修改端口(可选,避免冲突)
|
||||
SQLSERVER_PORT=1433
|
||||
|
||||
# 选择SQL Server版本
|
||||
SQLSERVER_EDITION=Developer # 免费开发版本
|
||||
```
|
||||
|
||||
### 2. 启动服务
|
||||
|
||||
```bash
|
||||
# 启动SQL Server
|
||||
docker-compose -f docker-compose-sqlserver.yml --env-file .env up -d
|
||||
|
||||
# 查看服务状态
|
||||
docker-compose -f docker-compose-sqlserver.yml ps
|
||||
|
||||
# 查看日志
|
||||
docker-compose -f docker-compose-sqlserver.yml logs -f sqlserver
|
||||
```
|
||||
|
||||
### 3. 连接数据库
|
||||
|
||||
#### 使用 sqlcmd 连接
|
||||
|
||||
```bash
|
||||
# 进入容器
|
||||
docker exec -it sqlserver-2022 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123!'
|
||||
|
||||
# 或者直接执行SQL
|
||||
docker exec -it sqlserver-2022 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123!' -Q "SELECT name FROM sys.databases"
|
||||
```
|
||||
|
||||
#### 使用外部工具连接
|
||||
|
||||
- **服务器**: `localhost` 或你的服务器IP
|
||||
- **端口**: `1433`(或你在.env中配置的端口)
|
||||
- **用户名**: `sa`
|
||||
- **密码**: 你在.env中配置的密码
|
||||
- **数据库**: `SampleDB`(初始化脚本创建的示例数据库)
|
||||
|
||||
## 配置说明
|
||||
|
||||
### SQL Server 版本选择
|
||||
|
||||
在 `sqlserver.env` 中配置 `SQLSERVER_EDITION`:
|
||||
|
||||
- `Developer`: 免费开发版本(推荐用于开发环境)
|
||||
- `Express`: 免费轻量版本
|
||||
- `Standard`: 标准版
|
||||
- `Enterprise`: 企业版
|
||||
|
||||
### 资源限制
|
||||
|
||||
默认配置:
|
||||
- CPU限制: 4核心
|
||||
- 内存限制: 8GB
|
||||
- 数据目录: `./sqlserver/data`
|
||||
- 日志目录: `./sqlserver/logs`
|
||||
|
||||
### 网络配置
|
||||
|
||||
- 默认端口: 1433
|
||||
- 网络子网: 172.24.0.0/16
|
||||
- 容器间通信: 通过 `sqlserver-net` 网络
|
||||
|
||||
## 初始化脚本说明
|
||||
|
||||
### 01-create-database.sql
|
||||
- 创建 `SampleDB` 示例数据库
|
||||
- 创建 `Users` 示例表
|
||||
- 插入示例数据
|
||||
- 创建 `GetActiveUsers` 存储过程
|
||||
|
||||
### 02-create-user.sql
|
||||
- 创建 `appuser` 应用程序用户
|
||||
- 配置用户权限
|
||||
- 授予必要的数据库权限
|
||||
|
||||
### 03-performance-config.sql
|
||||
- 配置最大内存使用量
|
||||
- 设置最大并行度
|
||||
- 启用查询存储
|
||||
- 创建性能监控视图
|
||||
|
||||
## 常用操作
|
||||
|
||||
### 备份数据库
|
||||
|
||||
```bash
|
||||
# 创建备份
|
||||
docker exec -it sqlserver-2022 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123!' -Q "BACKUP DATABASE SampleDB TO DISK = '/var/opt/mssql/backup/SampleDB.bak'"
|
||||
```
|
||||
|
||||
### 恢复数据库
|
||||
|
||||
```bash
|
||||
# 恢复备份
|
||||
docker exec -it sqlserver-2022 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123!' -Q "RESTORE DATABASE SampleDB FROM DISK = '/var/opt/mssql/backup/SampleDB.bak'"
|
||||
```
|
||||
|
||||
### 查看性能统计
|
||||
|
||||
```bash
|
||||
# 查看性能统计
|
||||
docker exec -it sqlserver-2022 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'YourStrong@Password123!' -d SampleDB -Q "SELECT * FROM PerformanceStats"
|
||||
```
|
||||
|
||||
### 停止和清理
|
||||
|
||||
```bash
|
||||
# 停止服务
|
||||
docker-compose -f docker-compose-sqlserver.yml down
|
||||
|
||||
# 停止并删除数据卷(谨慎使用)
|
||||
docker-compose -f docker-compose-sqlserver.yml down -v
|
||||
```
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 常见问题
|
||||
|
||||
1. **容器启动失败**
|
||||
- 检查密码是否符合复杂度要求
|
||||
- 确保端口没有被占用
|
||||
- 查看容器日志: `docker-compose logs sqlserver`
|
||||
|
||||
2. **连接失败**
|
||||
- 确认防火墙设置
|
||||
- 检查网络配置
|
||||
- 验证用户名和密码
|
||||
|
||||
3. **性能问题**
|
||||
- 调整内存限制
|
||||
- 检查磁盘空间
|
||||
- 查看性能监控视图
|
||||
|
||||
### 日志查看
|
||||
|
||||
```bash
|
||||
# 查看SQL Server日志
|
||||
docker-compose -f docker-compose-sqlserver.yml logs sqlserver
|
||||
|
||||
# 查看系统日志
|
||||
docker exec -it sqlserver-2022 cat /var/opt/mssql/log/errorlog
|
||||
```
|
||||
|
||||
## 安全建议
|
||||
|
||||
1. **修改默认密码**: 使用强密码
|
||||
2. **限制网络访问**: 配置防火墙规则
|
||||
3. **定期备份**: 设置自动备份策略
|
||||
4. **监控访问**: 启用审计日志
|
||||
5. **更新补丁**: 定期更新SQL Server镜像
|
||||
|
||||
## 扩展功能
|
||||
|
||||
### 添加更多数据库
|
||||
|
||||
在 `sqlserver/init/` 目录下创建新的 `.sql` 文件,它们将按文件名顺序执行。
|
||||
|
||||
### 集成其他服务
|
||||
|
||||
可以将此SQL Server配置集成到现有的Docker Compose网络中:
|
||||
|
||||
```yaml
|
||||
networks:
|
||||
- your-existing-network
|
||||
```
|
||||
|
||||
## 许可证
|
||||
|
||||
SQL Server 2022 Developer Edition 可免费用于开发和测试环境。生产环境请确保使用适当的许可证。
|
||||
|
||||
## 支持
|
||||
|
||||
如有问题,请查看:
|
||||
- [SQL Server 2022 官方文档](https://docs.microsoft.com/en-us/sql/sql-server/)
|
||||
- [Docker Hub SQL Server 页面](https://hub.docker.com/_/microsoft-mssql-server)
|
||||
91
DockerComposeShells/docker-compose-sqlserver.yml
Normal file
91
DockerComposeShells/docker-compose-sqlserver.yml
Normal file
@ -0,0 +1,91 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
sqlserver:
|
||||
image: mcr.microsoft.com/mssql/server:2022-latest
|
||||
container_name: sqlserver-2022
|
||||
hostname: sqlserver-2022
|
||||
restart: unless-stopped
|
||||
privileged: true
|
||||
ports:
|
||||
- "${SQLSERVER_PORT}:1433"
|
||||
environment:
|
||||
- ACCEPT_EULA=Y
|
||||
- SA_PASSWORD=${SQLSERVER_SA_PASSWORD}
|
||||
- MSSQL_PID=${SQLSERVER_EDITION}
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- sqlserver-data:/var/opt/mssql
|
||||
- sqlserver-logs:/var/opt/mssql/log
|
||||
- ./sqlserver/init:/docker-entrypoint-initdb.d
|
||||
- ./sqlserver/backup:/var/opt/mssql/backup
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: "4.0"
|
||||
memory: 8g
|
||||
reservations:
|
||||
cpus: "2.0"
|
||||
memory: 4g
|
||||
networks:
|
||||
- sqlserver-net
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P ${SQLSERVER_SA_PASSWORD} -Q 'SELECT 1' || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 60s
|
||||
stdin_open: true
|
||||
tty: true
|
||||
|
||||
# SQL Server Management Studio (可选,基于Web的管理界面)
|
||||
sqlserver-web:
|
||||
image: mcr.microsoft.com/mssql/server:2022-latest
|
||||
container_name: sqlserver-web
|
||||
hostname: sqlserver-web
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "${SQLSERVER_WEB_PORT}:8080"
|
||||
environment:
|
||||
- ACCEPT_EULA=Y
|
||||
- SA_PASSWORD=${SQLSERVER_SA_PASSWORD}
|
||||
- MSSQL_PID=${SQLSERVER_EDITION}
|
||||
- TZ=Asia/Shanghai
|
||||
volumes:
|
||||
- ./sqlserver/web-config:/var/opt/mssql/web-config
|
||||
depends_on:
|
||||
sqlserver:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
- sqlserver-net
|
||||
command: >
|
||||
/bin/bash -c "
|
||||
# 安装SQL Server Web管理工具
|
||||
apt-get update && apt-get install -y curl wget &&
|
||||
# 这里可以添加Web管理界面的安装脚本
|
||||
echo 'SQL Server Web management interface ready' &&
|
||||
tail -f /dev/null
|
||||
"
|
||||
|
||||
networks:
|
||||
sqlserver-net:
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 172.24.0.0/16
|
||||
gateway: 172.24.0.1
|
||||
|
||||
volumes:
|
||||
sqlserver-data:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: ./sqlserver/data
|
||||
sqlserver-logs:
|
||||
driver: local
|
||||
driver_opts:
|
||||
type: none
|
||||
o: bind
|
||||
device: ./sqlserver/logs
|
||||
40
DockerComposeShells/sqlserver.env
Normal file
40
DockerComposeShells/sqlserver.env
Normal file
@ -0,0 +1,40 @@
|
||||
# SQL Server 2022 Linux Docker Compose 环境变量配置
|
||||
|
||||
# SQL Server 配置
|
||||
# 端口配置
|
||||
SQLSERVER_PORT=1433
|
||||
SQLSERVER_WEB_PORT=8080
|
||||
|
||||
# 认证配置
|
||||
# SA用户密码(请修改为强密码)
|
||||
SQLSERVER_SA_PASSWORD=YourStrong@Password123!
|
||||
|
||||
# SQL Server 版本配置
|
||||
# 可选值: Developer, Express, Standard, Enterprise, EnterpriseCore
|
||||
# Developer: 免费开发版本
|
||||
# Express: 免费轻量版本
|
||||
# Standard: 标准版
|
||||
# Enterprise: 企业版
|
||||
SQLSERVER_EDITION=Developer
|
||||
|
||||
# 时区配置
|
||||
TZ=Asia/Shanghai
|
||||
|
||||
# 资源限制配置
|
||||
# CPU限制(核心数)
|
||||
SQLSERVER_CPU_LIMIT=4.0
|
||||
SQLSERVER_CPU_RESERVATION=2.0
|
||||
|
||||
# 内存限制(GB)
|
||||
SQLSERVER_MEMORY_LIMIT=8g
|
||||
SQLSERVER_MEMORY_RESERVATION=4g
|
||||
|
||||
# 数据目录配置
|
||||
SQLSERVER_DATA_DIR=./sqlserver/data
|
||||
SQLSERVER_LOG_DIR=./sqlserver/logs
|
||||
SQLSERVER_BACKUP_DIR=./sqlserver/backup
|
||||
SQLSERVER_INIT_DIR=./sqlserver/init
|
||||
|
||||
# 网络配置
|
||||
SQLSERVER_NETWORK_SUBNET=172.24.0.0/16
|
||||
SQLSERVER_NETWORK_GATEWAY=172.24.0.1
|
||||
75
DockerComposeShells/sqlserver/init/01-create-database.sql
Normal file
75
DockerComposeShells/sqlserver/init/01-create-database.sql
Normal file
@ -0,0 +1,75 @@
|
||||
-- SQL Server 2022 初始化脚本
|
||||
-- 创建示例数据库和用户
|
||||
|
||||
-- 创建示例数据库
|
||||
IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'SampleDB')
|
||||
BEGIN
|
||||
CREATE DATABASE SampleDB;
|
||||
PRINT '数据库 SampleDB 创建成功';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '数据库 SampleDB 已存在';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 使用 SampleDB 数据库
|
||||
USE SampleDB;
|
||||
GO
|
||||
|
||||
-- 创建示例表
|
||||
IF NOT EXISTS (SELECT * FROM sysobjects WHERE name='Users' AND xtype='U')
|
||||
BEGIN
|
||||
CREATE TABLE Users (
|
||||
Id INT IDENTITY(1,1) PRIMARY KEY,
|
||||
Username NVARCHAR(50) NOT NULL UNIQUE,
|
||||
Email NVARCHAR(100) NOT NULL,
|
||||
CreatedDate DATETIME2 DEFAULT GETDATE(),
|
||||
IsActive BIT DEFAULT 1
|
||||
);
|
||||
PRINT '表 Users 创建成功';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '表 Users 已存在';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 插入示例数据
|
||||
IF NOT EXISTS (SELECT * FROM Users WHERE Username = 'admin')
|
||||
BEGIN
|
||||
INSERT INTO Users (Username, Email) VALUES
|
||||
('admin', 'admin@example.com'),
|
||||
('user1', 'user1@example.com'),
|
||||
('user2', 'user2@example.com');
|
||||
PRINT '示例数据插入成功';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '示例数据已存在';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 创建存储过程
|
||||
IF NOT EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'GetActiveUsers')
|
||||
BEGIN
|
||||
EXEC('
|
||||
CREATE PROCEDURE GetActiveUsers
|
||||
AS
|
||||
BEGIN
|
||||
SET NOCOUNT ON;
|
||||
SELECT Id, Username, Email, CreatedDate
|
||||
FROM Users
|
||||
WHERE IsActive = 1
|
||||
ORDER BY CreatedDate DESC;
|
||||
END
|
||||
');
|
||||
PRINT '存储过程 GetActiveUsers 创建成功';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '存储过程 GetActiveUsers 已存在';
|
||||
END
|
||||
GO
|
||||
|
||||
PRINT 'SQL Server 初始化完成!';
|
||||
43
DockerComposeShells/sqlserver/init/02-create-user.sql
Normal file
43
DockerComposeShells/sqlserver/init/02-create-user.sql
Normal file
@ -0,0 +1,43 @@
|
||||
-- 创建应用程序用户和权限配置
|
||||
|
||||
-- 创建应用程序用户
|
||||
IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = 'appuser')
|
||||
BEGIN
|
||||
CREATE LOGIN appuser WITH PASSWORD = 'AppUser@Password123!';
|
||||
PRINT '登录用户 appuser 创建成功';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '登录用户 appuser 已存在';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 在 SampleDB 数据库中创建用户
|
||||
USE SampleDB;
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = 'appuser')
|
||||
BEGIN
|
||||
CREATE USER appuser FOR LOGIN appuser;
|
||||
PRINT '数据库用户 appuser 创建成功';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '数据库用户 appuser 已存在';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 授予权限
|
||||
-- 授予对 Users 表的读写权限
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON Users TO appuser;
|
||||
PRINT '授予 Users 表权限成功';
|
||||
|
||||
-- 授予执行存储过程的权限
|
||||
GRANT EXECUTE ON GetActiveUsers TO appuser;
|
||||
PRINT '授予存储过程执行权限成功';
|
||||
|
||||
-- 授予创建表的权限(如果需要)
|
||||
GRANT CREATE TABLE TO appuser;
|
||||
PRINT '授予创建表权限成功';
|
||||
|
||||
PRINT '用户权限配置完成!';
|
||||
60
DockerComposeShells/sqlserver/init/03-performance-config.sql
Normal file
60
DockerComposeShells/sqlserver/init/03-performance-config.sql
Normal file
@ -0,0 +1,60 @@
|
||||
-- SQL Server 性能优化配置
|
||||
|
||||
-- 启用即时文件初始化(需要重启服务)
|
||||
EXEC sp_configure 'show advanced options', 1;
|
||||
RECONFIGURE;
|
||||
EXEC sp_configure 'xp_cmdshell', 1;
|
||||
RECONFIGURE;
|
||||
PRINT '高级选项已启用';
|
||||
|
||||
-- 配置最大内存使用量(根据容器内存限制调整)
|
||||
-- 这里设置为4GB,可以根据实际需要调整
|
||||
EXEC sp_configure 'max server memory (MB)', 4096;
|
||||
RECONFIGURE;
|
||||
PRINT '最大内存设置为 4GB';
|
||||
|
||||
-- 配置最大并行度(根据CPU核心数调整)
|
||||
EXEC sp_configure 'max degree of parallelism', 4;
|
||||
RECONFIGURE;
|
||||
PRINT '最大并行度设置为 4';
|
||||
|
||||
-- 启用查询存储(SQL Server 2016+)
|
||||
USE SampleDB;
|
||||
GO
|
||||
|
||||
-- 启用查询存储
|
||||
ALTER DATABASE SampleDB SET QUERY_STORE = ON;
|
||||
ALTER DATABASE SampleDB SET QUERY_STORE (
|
||||
OPERATION_MODE = READ_WRITE,
|
||||
CLEANUP_POLICY = (STALE_QUERY_THRESHOLD_DAYS = 30),
|
||||
DATA_FLUSH_INTERVAL_SECONDS = 900,
|
||||
INTERVAL_LENGTH_MINUTES = 60,
|
||||
MAX_STORAGE_SIZE_MB = 1000,
|
||||
QUERY_CAPTURE_MODE = AUTO,
|
||||
SIZE_BASED_CLEANUP_MODE = AUTO
|
||||
);
|
||||
PRINT '查询存储已启用';
|
||||
|
||||
-- 创建性能监控视图
|
||||
USE SampleDB;
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT * FROM sys.views WHERE name = 'PerformanceStats')
|
||||
BEGIN
|
||||
EXEC('
|
||||
CREATE VIEW PerformanceStats AS
|
||||
SELECT
|
||||
GETDATE() AS CheckTime,
|
||||
(SELECT COUNT(*) FROM sys.dm_exec_sessions WHERE is_user_process = 1) AS ActiveConnections,
|
||||
(SELECT COUNT(*) FROM sys.dm_exec_requests WHERE status IN (''running'', ''runnable'', ''suspended'')) AS ActiveRequests,
|
||||
(SELECT SUM(pages_kb) FROM sys.dm_os_memory_clerks WHERE type = ''MEMORYCLERK_SQLBUFFERPOOL'') / 1024 AS BufferPoolMB
|
||||
');
|
||||
PRINT '性能监控视图创建成功';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT '性能监控视图已存在';
|
||||
END
|
||||
GO
|
||||
|
||||
PRINT '性能优化配置完成!';
|
||||
68
DockerComposeShells/start-sqlserver.sh
Normal file
68
DockerComposeShells/start-sqlserver.sh
Normal file
@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
|
||||
# SQL Server 2022 Linux Docker Compose 启动脚本
|
||||
|
||||
echo "=========================================="
|
||||
echo "SQL Server 2022 Linux Docker Compose 启动脚本"
|
||||
echo "=========================================="
|
||||
|
||||
# 检查是否存在环境变量文件
|
||||
if [ ! -f ".env" ]; then
|
||||
echo "警告: 未找到 .env 文件"
|
||||
echo "正在从 sqlserver.env 创建 .env 文件..."
|
||||
cp sqlserver.env .env
|
||||
echo "请编辑 .env 文件,特别是修改 SQLSERVER_SA_PASSWORD"
|
||||
echo "然后重新运行此脚本"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查Docker是否运行
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
echo "错误: Docker 未运行,请先启动 Docker"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查Docker Compose是否可用
|
||||
if ! command -v docker-compose &> /dev/null; then
|
||||
echo "错误: docker-compose 未安装"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "正在启动 SQL Server 2022..."
|
||||
echo ""
|
||||
|
||||
# 创建必要的目录
|
||||
echo "创建目录结构..."
|
||||
mkdir -p sqlserver/data sqlserver/logs sqlserver/backup sqlserver/web-config
|
||||
|
||||
# 启动服务
|
||||
echo "启动 Docker Compose 服务..."
|
||||
docker-compose -f docker-compose-sqlserver.yml --env-file .env up -d
|
||||
|
||||
# 等待服务启动
|
||||
echo "等待 SQL Server 启动..."
|
||||
sleep 10
|
||||
|
||||
# 检查服务状态
|
||||
echo ""
|
||||
echo "检查服务状态..."
|
||||
docker-compose -f docker-compose-sqlserver.yml ps
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo "启动完成!"
|
||||
echo "=========================================="
|
||||
echo ""
|
||||
echo "连接信息:"
|
||||
echo " 服务器: localhost"
|
||||
echo " 端口: $(grep SQLSERVER_PORT .env | cut -d'=' -f2)"
|
||||
echo " 用户名: sa"
|
||||
echo " 密码: $(grep SQLSERVER_SA_PASSWORD .env | cut -d'=' -f2)"
|
||||
echo " 示例数据库: SampleDB"
|
||||
echo ""
|
||||
echo "常用命令:"
|
||||
echo " 查看日志: docker-compose -f docker-compose-sqlserver.yml logs -f sqlserver"
|
||||
echo " 停止服务: docker-compose -f docker-compose-sqlserver.yml down"
|
||||
echo " 进入容器: docker exec -it sqlserver-2022 /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P '$(grep SQLSERVER_SA_PASSWORD .env | cut -d'=' -f2)'"
|
||||
echo ""
|
||||
echo "详细说明请查看 SQLServer-README.md"
|
||||
Loading…
x
Reference in New Issue
Block a user