119 lines
2.6 KiB
Markdown
119 lines
2.6 KiB
Markdown
|
|
# MySQL 数据库设置指南
|
||
|
|
|
||
|
|
## 连接信息
|
||
|
|
- 服务器: `101.132.182.216:3306`
|
||
|
|
- 用户名: `sc_root`
|
||
|
|
- 密码: `Shsc#$@2024#@!`
|
||
|
|
|
||
|
|
## 步骤 1: 连接到 MySQL
|
||
|
|
|
||
|
|
使用以下任一工具连接到 MySQL 服务器:
|
||
|
|
|
||
|
|
### 选项 A: MySQL 命令行
|
||
|
|
```bash
|
||
|
|
mysql -h 101.132.182.216 -P 3306 -u sc_root -p
|
||
|
|
# 输入密码: Shsc#$@2024#@!
|
||
|
|
```
|
||
|
|
|
||
|
|
### 选项 B: MySQL Workbench
|
||
|
|
1. 打开 MySQL Workbench
|
||
|
|
2. 创建新连接
|
||
|
|
3. 输入上述连接信息
|
||
|
|
|
||
|
|
### 选项 C: Navicat
|
||
|
|
1. 打开 Navicat
|
||
|
|
2. 新建 MySQL 连接
|
||
|
|
3. 输入上述连接信息
|
||
|
|
|
||
|
|
## 步骤 2: 执行初始化脚本
|
||
|
|
|
||
|
|
连接成功后,执行 `init-database.sql` 文件中的所有 SQL 语句。
|
||
|
|
|
||
|
|
或者直接复制以下 SQL 执行:
|
||
|
|
|
||
|
|
```sql
|
||
|
|
-- 删除已存在的数据库(如果存在)
|
||
|
|
DROP DATABASE IF EXISTS petwash;
|
||
|
|
|
||
|
|
-- 创建数据库
|
||
|
|
CREATE DATABASE petwash CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
-- 使用数据库
|
||
|
|
USE petwash;
|
||
|
|
|
||
|
|
-- 创建套餐表
|
||
|
|
CREATE TABLE Packages (
|
||
|
|
Id INT AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
Name VARCHAR(100) NOT NULL,
|
||
|
|
Price DECIMAL(10, 2) NOT NULL,
|
||
|
|
DurationMinutes INT NOT NULL,
|
||
|
|
Description VARCHAR(500)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
-- 创建订单表
|
||
|
|
CREATE TABLE Orders (
|
||
|
|
Id INT AUTO_INCREMENT PRIMARY KEY,
|
||
|
|
PackageId INT NOT NULL,
|
||
|
|
CreatedAt DATETIME NOT NULL,
|
||
|
|
Status INT NOT NULL,
|
||
|
|
IsPaid TINYINT(1) NOT NULL DEFAULT 0,
|
||
|
|
PaidAt DATETIME NULL,
|
||
|
|
StartedAt DATETIME NULL,
|
||
|
|
CompletedAt DATETIME NULL,
|
||
|
|
FOREIGN KEY (PackageId) REFERENCES Packages(Id)
|
||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||
|
|
|
||
|
|
-- 插入初始套餐数据
|
||
|
|
INSERT INTO Packages (Id, Name, Price, DurationMinutes, Description) VALUES
|
||
|
|
(1, '套餐1', 50.00, 38, '适用于小型犬'),
|
||
|
|
(2, '套餐2', 80.00, 48, '适用于中型犬'),
|
||
|
|
(3, '套餐3', 120.00, 60, '适用于大型犬');
|
||
|
|
|
||
|
|
-- 验证数据
|
||
|
|
SELECT '数据库初始化完成' AS Status;
|
||
|
|
SELECT * FROM Packages;
|
||
|
|
```
|
||
|
|
|
||
|
|
## 步骤 3: 部署 API 容器
|
||
|
|
|
||
|
|
数据库初始化完成后,执行:
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
docker-compose down
|
||
|
|
docker-compose up --build -d
|
||
|
|
```
|
||
|
|
|
||
|
|
## 步骤 4: 验证部署
|
||
|
|
|
||
|
|
```powershell
|
||
|
|
# 查看容器状态
|
||
|
|
docker ps
|
||
|
|
|
||
|
|
# 查看日志
|
||
|
|
docker logs petwash-api -f
|
||
|
|
|
||
|
|
# 测试 API
|
||
|
|
curl http://localhost:5000/api/packages
|
||
|
|
```
|
||
|
|
|
||
|
|
## 访问地址
|
||
|
|
|
||
|
|
- API: http://localhost:5000
|
||
|
|
- Swagger: http://localhost:5000/swagger
|
||
|
|
|
||
|
|
## 故障排查
|
||
|
|
|
||
|
|
如果遇到连接问题:
|
||
|
|
|
||
|
|
1. 检查 MySQL 服务器防火墙是否允许你的 IP
|
||
|
|
2. 确认用户权限:
|
||
|
|
```sql
|
||
|
|
SHOW GRANTS FOR 'sc_root'@'%';
|
||
|
|
```
|
||
|
|
|
||
|
|
3. 如果需要授权:
|
||
|
|
```sql
|
||
|
|
GRANT ALL PRIVILEGES ON petwash.* TO 'sc_root'@'%';
|
||
|
|
FLUSH PRIVILEGES;
|
||
|
|
```
|