junior 发表于 2009-10-28 22:51:18

求助:mysql 数据存储问题

本帖最后由 junior 于 2009-10-28 23:04 编辑

应用环境:syslog-ng + mysql + php-syslog-ng做日志存储,所有日志数据直接写进去数据库的两个表里,我现在只想存一年的数据,也就是说,比如到了2010年的今天,数据库会自动把这两个表里今天的数库给刷掉,以保证只保存一年的数据。我是新手,不知道这样的要求能不能实现,如果能,怎样实现,谢谢!另外我的数据库好象不能记录中文的日志,真诚期望大家的帮忙。

junior 发表于 2009-10-28 22:55:25

这是数据库结构和表结构
mysql> show tables;
+------------------+
| Tables_in_syslog |
+------------------+
| actions         |
| cemdb            |
| logs                |
| search_cache |
| user_access   |
| users            |
+------------------+
6 rows in set (0.00 sec)
mysql> desc cemdb;
+-------------+-----------------+------+-----+---------+----------------+
| Field         | Type            | Null| Key | Default | Extra          |
+-------------+-----------------+------+-----+---------+----------------+
| id          | int(5) unsigned | NO   | PRI | NULL    | auto_increment |
| name      | varchar(128)    | NO   | UNI |         |                |
| message   | text            | YES|   | NULL    |                |
| explanation | text            | YES|   | NULL    |                |
| action      | text            | YES|   | NULL    |                |
| datetime    | datetime      | YES|   | NULL    |                |
+-------------+-----------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

mysql> desc logs;
+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | mediumint(9) | NO   | PRI | NULL    | auto_increment |
| host   | varchar(128) | YES| MUL | NULL    |                |
| facility | varchar(10)| YES| MUL | NULL    |                |
| priority | varchar(10)| YES| MUL | NULL    |                |
| level    | varchar(10)| YES|   | NULL    |                |
| tag      | varchar(10)| YES|   | NULL    |                |
| datetime | datetime   | YES| MUL | NULL    |                |
| program| varchar(15)| YES| MUL | NULL    |                |
| msg      | text         | YES|   | NULL    |                |
| seq      | bigint(20)   | NO   | MUL | 0       |                |
| counter| int(11)      | NO   |   | 1       |                |
| fo       | datetime   | YES|   | NULL    |                |
| lo       | datetime   | YES|   | NULL    |                |
+----------+--------------+------+-----+---------+----------------+
13 rows in set (0.00 sec)

junior 发表于 2009-10-30 21:22:20

难道真的不能实现这样的目的吗?

lmkitty 发表于 2009-11-3 23:31:04

可以实现吧,后台需要有个脚本,每天运行,删除1年之前的数据就可以了。
页: [1]
查看完整版本: 求助:mysql 数据存储问题