当前mysql数据库大小_java怎么获得 mysql 当前数据库大小

匿名用户

1级

2009-10-16 回答

我倒是有个方法,以前我做个mysql数据库备份,备份的时候也就是赋值数据库的过程,当然能知道大小了,要是想实时获取的话那就就定义一个线程来空值就可以了,代码大概如下:其中赋值的过程楼主可省略,你要的就是一个值,就是sb的大小。。

package com.huagong.backdatabase;

import java.io.File;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

public class BackmysqlUtil {

/**

*

* mysql数据备份 接收脚本名,并返回此路径

*

* sql为备份的脚本名比如eg.sql

* @throws IOException

*

*/

public static void backup(String sqlname,String readlyPath) throws IOException {

Properties pros = getPprVue("backup.properties");

String username = pros.getProperty("username");

String password = pros.getProperty("password");

// 得到MYSQL的用户名密码后调用 mysql 的 cmd:

String databaseName = pros.getProperty("databaseName");

String address = pros.getProperty("address");

File backupath = new File(readlyPath);

if (!backupath.exists()) {

backupath.mkdir();

}

StringBuffer sb = new StringBuffer();

sb.append(" mysqldump ");

sb.append("--opt ");

sb.append("-h ");

sb.append(address);

sb.append(" ");

sb.append("--user=");

sb.append(username);

sb.append(" ");

sb.append("--password=");

sb.append(password);

sb.append(" ");

sb.append("--lock-all-tables=true ");

sb.append("--result-file=");

sb.append(readlyPath);

sb.append(sqlname);

sb.append(" ");

sb.append("--default-character-set=utf8 ");

sb.append(databaseName);

Runtime cmd = Runtime.getRuntime();

Process p = cmd.exec(sb.toString());

pros.setProperty("ss", "ss");

}

public static void load(String filename,String readlyPath) throws IOException {

Properties pros = getPprVue("backup.properties");

// 这里是读取的属性文件,也可以直接使用

String root = pros.getProperty("username");

String pass = pros.getProperty("password");

// 得到MYSQL的用户名密码后调用 mysql 的 cmd:

String filepath = readlyPath + filename; // 备份的路径地址

// 新建数据库newdb

String stmt1 = "mysqladmin -u " + root + " -p" + pass

+ " create newdb";

// -p后面加的是你的密码

String stmt2 = "mysql -u " + root + " -p" + pass + " newdb < "

+ filepath;

String[] cmd = { "cmd", "/c", stmt2 };

Runtime.getRuntime().exec(stmt1);

Runtime.getRuntime().exec(cmd);

System.out.println("数据已从 " + filepath + " 导入到数据库中");

}

// 加载配置文件

public static Properties getPprVue(String properName) throws IOException {

InputStream inputStream = BackmysqlUtil.class.getClassLoader()

.getResourceAsStream(properName);

Properties p = new Properties();

p.load(inputStream);

inputStream.close();

return p;

}

//测试

public static void main(String[] args) throws IOException {

backup("eg.sql","e:\\mysql\\");

//load("eg.sql","e:\\mysql\\");

}

}

配置文件:

backup.properties配置文件的内容如下,用户名和密码随便你改。

#mysqlpath = D:\\ProgramFiles\\wamp\\bin\\mysql\\mysql5.1.32\\bin

#sqlpath = E:\\MySQl\\

username = root

password = cool

address=localhost

databaseName=huagongdb

最后你想什么时候调用直接就在程序里用一个线程控制调用就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值