Files
AIclinicalresearch/docs/08-项目管理/旧版本系统/服务器与数据库配置说明.md

216 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 旧版本系统 - 服务器与数据库配置说明
> 最后更新2026-02-15
---
## 1. 服务器信息
| 项目 | 值 |
|------|-----|
| 服务器地址 | `8.154.22.149` |
| 操作系统 | Linux (Ubuntu) |
| 数据库类型 | MariaDB |
| 数据库端口 | 3306 |
---
## 2. 数据库连接信息
| 项目 | 值 |
|------|-----|
| 连接地址 | `jdbc:mysql://127.0.0.1:3306/xzyx_online?characterEncoding=utf8` |
| 数据库名 | `xzyx_online` |
| 用户名 | `xzyx_rw` |
| 密码 | `SKJfdwalkd` |
### 命令行连接方式
```bash
# SSH 登录服务器
ssh root@8.154.22.149
# 连接数据库
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online
```
---
## 3. 用户表结构 (u_user_info)
### 核心字段
| 字段 | 类型 | 说明 | 后台显示名 |
|------|------|------|-----------|
| `id` | int(11) | 主键,自增 | - |
| `phone` | varchar(20) | 手机号(登录账号)**必填** | 账号 |
| `nickname` | varchar(40) | 昵称 | 昵称 |
| `real_name` | varchar(45) | 真实姓名 | - |
| `hospital` | varchar(255) | 固定值 "本地" | - |
| `company` | varchar(200) | **实际的机构/医院名称** | 医院 |
| `academy` | varchar(200) | **部门** | 部门 |
| `user_role` | varchar(20) | 用户角色,默认 "NORMAL" | 用户角色 |
| `user_status` | varchar(45) | 用户状态,默认 "NORMAL" | - |
| `password` | varchar(45) | 密码MD5加密 | - |
| `hosptial_id` | int(11) | 医院ID默认 0 | - |
| `email_validate_status` | tinyint(4) | 邮箱验证状态,默认 0 | - |
| `register_time` | int(11) | 注册时间Unix时间戳 | - |
### 字段对应关系
| 后台显示 | 数据库字段 |
|----------|-----------|
| 账号 | `phone` |
| 昵称 | `nickname` + `real_name` |
| 用户角色:普通 | `user_role = 'NORMAL'` |
| 医院 | `company`(注意:不是 hospital 字段) |
| 部门 | `academy` |
### 默认密码
- 明文:`123456`
- MD5`E10ADC3949BA59ABBE56E057F20F883E`
---
## 4. 批量导入用户操作指南
### 步骤1准备 CSV 文件
格式要求:
```csv
手机号,姓名,医院,部门
13800000001,张三,北京大学第三医院,骨科
13800000002,李四,医朵云,医学部
```
### 步骤2检查重复手机号
```bash
# 导出现有手机号
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -N -e "SELECT phone FROM u_user_info;" > /tmp/existing_phones.txt
# 查看现有用户数量
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "SELECT COUNT(*) FROM u_user_info;"
```
### 步骤3生成 SQL 插入语句
单条插入模板:
```sql
INSERT INTO u_user_info (
phone,
nickname,
real_name,
hospital,
company,
academy,
user_role,
user_status,
password,
hosptial_id,
email_validate_status,
register_time
) VALUES (
'手机号',
'姓名',
'姓名',
'本地',
'机构名称',
'部门',
'NORMAL',
'NORMAL',
'E10ADC3949BA59ABBE56E057F20F883E',
0,
0,
UNIX_TIMESTAMP()
);
```
批量插入模板(使用 INSERT IGNORE 避免重复报错):
```sql
INSERT IGNORE INTO u_user_info (phone, nickname, real_name, hospital, company, academy, user_role, user_status, password, hosptial_id, email_validate_status, register_time) VALUES
('13800000001', '张三', '张三', '本地', '北京大学第三医院', '骨科', 'NORMAL', 'NORMAL', 'E10ADC3949BA59ABBE56E057F20F883E', 0, 0, UNIX_TIMESTAMP()),
('13800000002', '李四', '李四', '本地', '医朵云', '医学部', 'NORMAL', 'NORMAL', 'E10ADC3949BA59ABBE56E057F20F883E', 0, 0, UNIX_TIMESTAMP());
```
### 步骤4上传并执行 SQL
```bash
# 上传 SQL 文件到服务器(或使用 nano 创建)
nano /tmp/batch_insert_users.sql
# 执行 SQL 文件
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online < /tmp/batch_insert_users.sql
```
### 步骤5验证导入结果
```bash
# 查询指定机构的用户数量
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "SELECT COUNT(*) as '用户数' FROM u_user_info WHERE company = '北京大学第三医院';"
# 抽查用户数据
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "SELECT id, phone, nickname, company, academy FROM u_user_info WHERE company = '北京大学第三医院' LIMIT 10;"
```
---
## 5. 常用查询命令
### 查看所有表
```bash
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "SHOW TABLES;"
```
### 查看表结构
```bash
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "DESC u_user_info;"
```
### 根据手机号查询用户
```bash
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "SELECT * FROM u_user_info WHERE phone = '18611348738'\G"
```
### 修改用户信息
```bash
# 修改手机号
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "UPDATE u_user_info SET phone = '新手机号' WHERE phone = '旧手机号';"
# 重置密码为 123456
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "UPDATE u_user_info SET password = 'E10ADC3949BA59ABBE56E057F20F883E' WHERE phone = '手机号';"
```
### 删除用户
```bash
mysql -u xzyx_rw -p'SKJfdwalkd' -h 127.0.0.1 xzyx_online -e "DELETE FROM u_user_info WHERE phone = '手机号';"
```
---
## 6. 已导入批次记录
| 批次 | 日期 | 机构 | 数量 | SQL文件 |
|------|------|------|------|---------|
| 第1批 | 2026-02-15 | 北京大学第三医院 | 225 | `docs/06-测试文档/batch_insert_users.sql` |
| 第2批 | 2026-02-15 | 北京大学第三医院 | 35 | `docs/06-测试文档/batch_insert_users_2.sql` |
---
## 7. 注意事项
1. **手机号唯一性**:手机号是用户的唯一登录凭证,不能重复
2. **密码存储**:使用 MD5 加密,默认密码 123456 对应 `E10ADC3949BA59ABBE56E057F20F883E`
3. **hospital 字段**:固定填写 "本地",实际医院名称存储在 `company` 字段
4. **部门字段**:使用 `academy` 字段存储
5. **使用 INSERT IGNORE**:批量导入时使用此语法,遇到重复手机号自动跳过不报错