通达OA数据库管理与phpMyAdmin配置

一、引言

数据库是通达OA的核心数据存储层,掌握数据库管理技能对于二次开发和系统维护至关重要。本文将详细介绍通达OA的数据库架构、phpMyAdmin的安装配置,以及数据库操作的最佳实践。

二、数据库架构总览

2.1 数据库文件目录

通达OA的数据库文件存放在 MYOA\data5 目录下:

MYOA\data5
├── BUS/              # 公交线路查询数据库
├── TD_OA/            # 通达OA主数据库(核心)
├── crscell/          # 报表数据库
├── MySQL/            # MySQL系统数据库
├── TD_OA_ARCHIVE/    # 归档数据库
├── ib_logfile0       # InnoDB日志文件
├── ib_logfile1       # InnoDB日志文件
└── ibdata1           # InnoDB共享表空间

2.2 数据库关系图

Mermaid 渲染失败: Parse error on line 7:
...        table user {            uid in
----------------------^
Expecting 'BLOCK_STOP', 'ATTRIBUTE_WORD', 'ATTRIBUTE_KEY', 'COMMENT', got '{'

2.3 数据库类型说明

数据库用途重要性
TD_OA 主数据库,存储所有业务数据 极高
TD_OA_ARCHIVE 归档数据库,存储历史数据
BUS 公交线路查询数据
crscell 报表统计数据

三、数据库访问方式

3.1 访问架构

图表

重要安全特性

  • MySQL默认仅允许本地访问(127.0.0.1)
  • 不支持直接远程连接
  • 远程管理需通过Web方式(如phpMyAdmin)

3.2 连接参数

根据 db_config.php 配置:

参数说明
主机 localhost 数据库地址
端口 3336 MySQL监听端口
用户名 root 默认管理员
数据库 TD_OA 主数据库名

四、phpMyAdmin安装配置

4.1 安装步骤

第一步:下载程序包

从官方网站下载phpMyAdmin 4.2版本(重要:仅支持4.2及更低版本): https://www.phpmyadmin.net/files/4.2.13.3/

第二步:创建目录

New-Item -ItemType Directory -Path "MYOA\webroot\mysql369"

目录命名建议

  • 使用复杂名称避免被猜测
  • 如:mysql2024admindbmanage123

第三步:解压文件

将下载的程序包解压到 mysql369 目录下。

第四步:配置phpMyAdmin

复制 config.sample.inc.phpconfig.inc.php

Copy-Item "MYOA\webroot\mysql369\config.sample.inc.php" `
          "MYOA\webroot\mysql369\config.inc.php"

4.2 配置文件详解

编辑 config.inc.php

<?php
$cfg['blowfish_secret'] = 'your_secret_key_here';  // 加密密钥
$cfg['Servers'][$i]['auth_type'] = 'http';         // 认证方式
$cfg['Servers'][$i]['host'] = 'localhost';         // 数据库地址
$cfg['Servers'][$i]['port'] = '3336';              // 端口号
$cfg['Servers'][$i]['user'] = 'root';              // 用户名
$cfg['Servers'][$i]['password'] = '';              // 密码(留空在登录时输入)
?>

配置参数说明

参数说明建议值
blowfish_secret 加密Cookie等敏感信息 随机字符串
auth_type 认证方式:http/config/cookie http
host MySQL服务器地址 localhost
port MySQL端口 3336
user 用户名 root
password 密码 留空,登录时输入

认证方式对比

图表
方式安全性使用场景
http 推荐使用
cookie 需要保持登录状态
config 不推荐,密码明文存储

4.3 访问phpMyAdmin

访问地址

http://OA地址/mysql369

登录界面

  • 用户名为:root
  • 密码为MySQL数据库密码
  • 登录后建议切换为中文界面

4.4 常见问题

问题1:版本不兼容

报错:phpMyAdmin 4.2.x 与 OA PHP版本不兼容

解决方案:确保下载的是4.2或更低版本。

问题2:访问被拒绝

报错:Access denied for user 'root'@'localhost'

解决方案

  • 检查用户名和密码是否正确
  • 确认MySQL服务已启动

五、数据库管理操作

5.1 数据库备份

方法1:使用系统自动备份

通达OA提供自动备份功能,备份文件存放在 MYOA\bak 目录。

方法2:使用phpMyAdmin手动备份

图表

备份建议

  • 定期备份数据库
  • 备份文件存储到安全位置
  • 测试备份文件的可用性

5.2 数据库恢复

使用phpMyAdmin恢复

图表

5.3 数据表操作

查看数据表

-- 查看所有表
SHOW TABLES;

-- 查看表结构
DESCRIBE user;

-- 查看表状态
SHOW TABLE STATUS LIKE 'user';

常见数据表

表名用途关键字段
user 用户信息 uid, username, password
dept 部门信息 dept_id, dept_name, parent_id
role 角色信息 role_id, role_name
workflow 工作流定义 flow_id, flow_name
mail 邮件信息 mail_id, from_uid, to_uid

六、数据库操作最佳实践

6.1 使用TD类进行数据库操作

在二次开发中,应使用OA提供的 TD 类进行数据库操作,而不是直接使用MySQLi或PDO。

<?php
include_once("inc/auth.inc.php");

// 查询数据
$td = new TD();
$result = $td->query("SELECT * FROM user WHERE uid = 1");
$user = $td->fetch_array($result);

// 插入数据
$sql = "INSERT INTO my_table (name, value) VALUES ('test', '123')";
$td->query($sql);

// 获取自增ID
$insert_id = $td->insert_id();
?>

TD类优势

  • 自动处理数据库连接
  • 提供SQL注入防护
  • 统一的错误处理

6.2 SQL注入防护

不安全示例

// 危险!直接拼接用户输入
$username = $_GET['username'];
$sql = "SELECT * FROM user WHERE username = '$username'";

安全示例

// 安全!使用参数化查询
$username = $td->escape($_GET['username']);
$sql = "SELECT * FROM user WHERE username = '$username'";

6.3 性能优化

图表

优化建议

优化项说明
索引优化 为经常查询的字段添加索引
查询优化 避免SELECT *,只查询需要的字段
分页查询 使用LIMIT限制返回数据量
缓存机制 使用Redis缓存热点数据

七、数据库安全

7.1 安全配置

图表

安全建议

  • 使用强密码
  • 定期更换密码
  • 禁用MySQL远程连接
  • 限制phpMyAdmin访问IP

7.2 敏感数据保护

密码存储

// OA使用MD5加密存储密码
$password = md5($_POST['password']);

注意事项

  • 密码不应明文存储
  • 建议使用更安全的加密算法(如bcrypt)
  • 日志中不应记录敏感信息

八、故障排查

8.1 数据库连接失败

图表

8.2 数据库性能问题

排查步骤

  1. 查看慢查询日志
  2. 分析查询执行计划
  3. 检查索引使用情况
  4. 优化查询语句
-- 查看慢查询日志
SHOW VARIABLES LIKE 'slow_query_log';

-- 查看查询执行计划
EXPLAIN SELECT * FROM user WHERE username = 'admin';

-- 查看索引
SHOW INDEX FROM user;
posted @ 2026-07-05 19:04  ai755  阅读(5)  评论(0)    收藏  举报