73 lines
1.8 KiB
Markdown
73 lines
1.8 KiB
Markdown
# 数据库安装与初始化
|
||
|
||
依据《产品文档》创建数据库 `ocean` 及表结构。
|
||
|
||
## 1. 安装 MySQL(若未安装)
|
||
|
||
在终端执行(会提示输入 sudo 密码):
|
||
|
||
```bash
|
||
sudo apt-get update
|
||
sudo apt-get install -y mysql-server
|
||
```
|
||
|
||
安装后启动服务:
|
||
|
||
```bash
|
||
sudo systemctl start mysql
|
||
sudo systemctl enable mysql
|
||
```
|
||
|
||
## 2. 创建数据库与表
|
||
|
||
在项目根目录执行(使用 root 登录,无密码时用 `sudo mysql`):
|
||
|
||
```bash
|
||
cd /home/xsl/code/ocean
|
||
sudo mysql < backend/schema.sql
|
||
```
|
||
|
||
若 root 已设置密码,则:
|
||
|
||
```bash
|
||
mysql -u root -p < backend/schema.sql
|
||
```
|
||
|
||
按提示输入 root 密码即可。
|
||
|
||
## 2.1 创建专用用户(避免 root Access denied)
|
||
|
||
Ubuntu 下 MySQL 的 root 常用 socket 认证,脚本用 root 连接会报 `Access denied for user 'root'@'localhost'`。建议为 ocean 创建专用用户:
|
||
|
||
```bash
|
||
cd /home/xsl/code/ocean
|
||
sudo mysql < backend/scripts/create_db_user.sql
|
||
```
|
||
|
||
默认会创建用户 `ocean` / 密码 `ocean123`(仅限 ocean 库)。然后在 `backend/.env` 中设置:
|
||
|
||
```
|
||
MYSQL_USER=ocean
|
||
MYSQL_PASSWORD=ocean123
|
||
MYSQL_DATABASE=ocean
|
||
```
|
||
|
||
若需自定义密码,可先编辑 `backend/scripts/create_db_user.sql` 中 `IDENTIFIED BY '...'` 再执行。
|
||
|
||
## 3. 验证
|
||
|
||
```bash
|
||
mysql -u root -e "USE ocean; SHOW TABLES;"
|
||
# 应看到:users, projects, operation_logs
|
||
```
|
||
|
||
## 表说明
|
||
|
||
| 表名 | 说明 |
|
||
|------|------|
|
||
| users | 用户(角色:管理员、市场部、工程部、技经部、财务部、物贸部) |
|
||
| projects | 项目(含合同信息、成本控制、应收款、应付款、其他 5 类字段) |
|
||
| operation_logs | 项目修改操作日志 |
|
||
|
||
字段与产品文档、API 文档一致;数据库字段名为 snake_case,与 API 的 camelCase 由后端做映射。
|