# 数据库安装与初始化 依据《产品文档》创建数据库 `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 由后端做映射。