终于做好了.欢迎大家评一评!<mysql数据库大小的限制>
文章整理:西部数码--专业提供域名注册、虚拟主机服务
使用PHP实现的程式.花了一个下午去完成...
只是做出来让大家参考一下...献丑了....
程式思路:
一\和MYSQL数据库结合.先在MYSQL数据库另起一个库.记录数据库的库名,对应的用户名,限制的大小.等.....
二\系统检测数据库大小,然后对比记录着的资料.对比是否超过流量.假如超过流量就使用MYSQL的ROOT权.限制用户对该数据库的权限...(删除UPDATE\INST..等)
三\假如达到80%.就向管理员\用户各发送一个EMAIL通知..
四\前台程式控制数据库资料的整理...
系统分二个部份.
第一部份.是系统定时检测数据库大小,再根据检测结果和数据库资料.判断数据库是否超大....该部份操作需要有MYSQL高权限用户去完成(建议ROOT).用该文档需要定时运行.,但该文档能够放在网站访问不到的保密地方...
任何文档.打包下载.
http://www.xingkong.biz/mysql_limit.zip CODE: [Copy to clipboard] <?php
//配置部分
$id=mysql_connect('localhost','user','password'); //最好是使用root,或高权限用户
//FUN部份
function PMA_backquote($a_name, $do_it = TRUE) // 取自phpmyadmin,用来格式化数据库名
{
if ($do_it
&& !empty($a_name) && $a_name != '*') {
if (is_array($a_name)) {
$result = array();
reset($a_name);
while(list($key, $val) = each($a_name)) {
$result[$key] = '`' . $val . '`';
}
return $result;
} else {
return '`' . $a_name . '`';
}
} else {
return $a_name;
}
} // end of the 'PMA_backquote()' function
function limit($user,$db) //达到限制限制用户权限后运行的程式
{
$query='REVOKE INSERT ,UPDATE ,CREATE ON "'.$db.'".* FROM "'.$user.'@localhost';//将insert update create的权限移走。01/17修正大BUG
$result = @mysql_query($query);//changed! only 1 query....
//相应的权限代码能够再更改.
//echo 'lim.debug';exit;
}
function warning($name,$email) //超过80%时通知用户
{
$admin_email='admin@admin.com'; //管理员EMAIL地址。请更改
$message='MYSQL用户:'.$name.'的数据库已超过系统允许的大小的80% /n 请及时整理数据'; //通知的内容能够更改
@mail($admin_email,'MYSQL报告',$message,'from:mysql@admin.com');
@mail($email,'MYSQL大小警告',$message,'from:mysql@admin.com');
//echo 'warning.debug';exit;
}
//以下一段内容来自phpMyAdmin的查询每个数据库大小的程式
$dbs = mysql_list_dbs() ;
while ($a_db = mysql_fetch_object($dbs)) { //查询数据名,以后一段代码来自phpmyadmin
$dblist[] = $a_db->Database;
} // end while
mysql_free_result($dbs);
$num_dbs = count($dblist);
$total_array[0] = 0; // number of tables
$total_array[1] = 0; // total data size
$total_array[2] = 0; // total index size
$total_array[3] = 0; // big total size
// Gets the tables stats per database
for ($i = 0; $i < $num_dbs; $i ) {
$db = $dblist[$i];
$tables = mysql_list_tables($db);
// Number of tables
if ($tables) {
$dbs_array[$db][0] = mysql_numrows($tables);
mysql_free_result($tables);
} else {
$dbs_array[$db][0] = 0;
}
$total_array[0] = $dbs_array[$db][0];
// Size of data and indexes
$dbs_array[$db][1] = 0; // data size column
$dbs_array[$db][2] = 0; // index size column
$dbs_array[$db][3] = 0; // full size column
$local_query = 'SHOW TABLE STATUS FROM ' . PMA_backquote($db);
//echo $db;
$result = @mysql_query($local_query);
// needs the "@" below otherwise, warnings in case of special DB names
if ($result ) {
while ($row = mysql_fetch_array($result)) {
$dbs_array[$db][1] = $row['Data_length'];
$dbs_array[$db][2] = $row['Index_length'];
}
$dbs_array[$db][3] = $dbs_array[$db][1] $dbs_array[$db][2];
$total_array[1] = $dbs_array[$db][1];
$total_array[2] = $dbs_array[$db][2];
$total_array[3] = $dbs_array[$db][3];
// echo $dbs_array[$db][3]."<br>";
mysql_free_result($result);
} // end if
} // end for
//查询数据库完毕。
//以下代码用来判断数据库大小是否达到限制等。。。。
mysql_select_db('db_limit',$id); //db_limit数据库名可自由更改。但需要和其他程式保持一致
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
网站运营
建站经验
策划盈利
搜索优化
网站推广
免费资源
网站联盟
联盟新闻
联盟介绍
联盟点评
网赚技巧
行业资讯
业界动态
搜索引擎
网络游戏
门户动态
电子商务
广告传媒
网络编程
Asp.Net编程
Asp编程
Php编程
Xml编程
Access
Mssql
Mysql
其它
服务器技术
Web服务器
Ftp服务器
Mail服务器
Dns服务器
安全防护
软件技巧
其它软件
Word
Excel
Powerpoint
Ghost
Vista
QQ空间
QQ
FlashGet
迅雷
Internet Explorer
网页制作
FrontPages
Dreamweaver
Javascript
css
photoshop
fireworks
Flash
程序设计
Java技术
C/C++
VB
delphi
网络知识
网络协议
网络安全
网络管理
组网方案
Cisco技术
操作系统
Win2000
WinXP
Win2003
Mac OS
Linux
FreeBSD
终于做好了.欢迎大家评一评!
来源:互联网
作者:west263.com
时间:2008-04-16
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
终于做好了.欢迎大家评一评!<mysql数据库大小的限制>
相关文章
热点关注
IDC资讯
虚拟主机
域名注册
托管租用
vps主机
智能建站



