/**
* 数据库备份实现方法
*
*
*/
@Override
public String backupMysql() {
/*username = root
password = root
mysqlpath = C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\
sql = E:\\MySQl\\
address=localhost
databaseName=test*/
// Properties pros = getPprVue("prop.properties");
// 这里是读取的属性文件,也可以直接使用
// String username = pros.getProperty("username"); //数据库用户名
// String password = pros.getProperty("password");//密码
//读取applicationDataSource.xml文件 取出 数据库名,
// 得到MYSQL的用户名密码后调用 mysql 的 cmd:
String sql="E:\\MySQl\\";//备份文件存放路径
String mysqlpaths = "";//pros.getProperty("mysqlpath"); //数据库服务安装地址(目录)
String databaseName = "";//pros.getProperty("databaseName"); //数据库名称
String address ="";// pros.getProperty("address"); // 服务URL
String sqlpath = sql;//pros.getProperty("sql"); // 备份文件存放路径
String username = "root";
String password = "123";
mysqlpaths = "C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\";
// C:\Program Files\MySQL\MySQL Server 5.0\bin
address="127.0.0.1";
databaseName="bims" ;
File backupath = new File(sqlpath); // 文件路径
if (!backupath.exists()) {
backupath.mkdir();
}
StringBuffer sb = new StringBuffer();
sb.append(mysqlpaths);
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(sqlpath);
//sb.append(sql);
sb.append(" ");
sb.append("--default-character-set=utf8 ");
sb.append(databaseName);
String time=StringUtil.dateToStr(new Date(), "yyyy-MM-dd");
String filename=time+".sql";
// String filename=String.valueOf(System.currentTimeMillis())+".sql";
sb.append(" >"+filename);
Runtime cmd = Runtime.getRuntime();
try {
Process p = cmd.exec(sb.toString());
System.out.println("调用命令:"+sb.toString());
} catch (IOException e) {
e.printStackTrace();
} return null;
}
* 数据库备份实现方法
*
*
*/
@Override
public String backupMysql() {
/*username = root
password = root
mysqlpath = C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\
sql = E:\\MySQl\\
address=localhost
databaseName=test*/
// Properties pros = getPprVue("prop.properties");
// 这里是读取的属性文件,也可以直接使用
// String username = pros.getProperty("username"); //数据库用户名
// String password = pros.getProperty("password");//密码
//读取applicationDataSource.xml文件 取出 数据库名,
// 得到MYSQL的用户名密码后调用 mysql 的 cmd:
String sql="E:\\MySQl\\";//备份文件存放路径
String mysqlpaths = "";//pros.getProperty("mysqlpath"); //数据库服务安装地址(目录)
String databaseName = "";//pros.getProperty("databaseName"); //数据库名称
String address ="";// pros.getProperty("address"); // 服务URL
String sqlpath = sql;//pros.getProperty("sql"); // 备份文件存放路径
String username = "root";
String password = "123";
mysqlpaths = "C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\";
// C:\Program Files\MySQL\MySQL Server 5.0\bin
address="127.0.0.1";
databaseName="bims" ;
File backupath = new File(sqlpath); // 文件路径
if (!backupath.exists()) {
backupath.mkdir();
}
StringBuffer sb = new StringBuffer();
sb.append(mysqlpaths);
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(sqlpath);
//sb.append(sql);
sb.append(" ");
sb.append("--default-character-set=utf8 ");
sb.append(databaseName);
String time=StringUtil.dateToStr(new Date(), "yyyy-MM-dd");
String filename=time+".sql";
// String filename=String.valueOf(System.currentTimeMillis())+".sql";
sb.append(" >"+filename);
Runtime cmd = Runtime.getRuntime();
try {
Process p = cmd.exec(sb.toString());
System.out.println("调用命令:"+sb.toString());
} catch (IOException e) {
e.printStackTrace();
} return null;
}
bin mysqldump --opt -h 127.0.0.1 --user=root --password=123 --lock-all-tables=tr
ue --result-file=E:\MySQl\ --default-character-set=utf8 bims >beif.sql
'C:\Program' 不是内部或外部命令,也不是可运行的程序
(C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>mysqldump --opt -h 127.0.0.1 --user=root
--password=123 --lock-all-tables=true --result-file=E:\MySQl\ --default-charact
er-set=utf8 bims >beif.sql
mysqldump: Can't create/write to file 'E:\MySQl\' (Errcode: 2)
--result-file=E:\MySQl\test.sql
--
-- Host: localhost Database: bims
-- ------------------------------------------------------
-- Server version 5.0.27-community-nt/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
只有这个
加入 -B -E -R -p参数试试
下面是一个我测试成功了的例子,你可以参考一下:import java.io.*;public class TestMysqlBackup{ public static void main(String[] args) throws Exception{
String mysql = "E:\\wamp\\mysql\\bin\\mysqldump -uroot -p123 csdn";
//mysqldump路径,用户名,密码(数据库必须要设置密码),数据库名,需要哪些选项可以增加
Process proc = Runtime.getRuntime().exec("cmd /c "+mysql);
InputStreamReader isr = new InputStreamReader(proc.getInputStream());
BufferedReader br = new BufferedReader(isr);
FileOutputStream fos = new FileOutputStream("D:\\csdn.sql");
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
String line = null;
while((line = br.readLine())!=null){
bw.write(line);
bw.flush();
}
br.close();
bw.close();
}
}
--
-- Host: 127.0.0.1 Database: bims
-- ------------------------------------------------------
-- Server version 5.0.27-community-nt/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;--
-- Table structure for table `t_bims_areamanagement`
--DROP TABLE IF EXISTS `t_bims_areamanagement`;
CREATE TABLE `t_bims_areamanagement` (
`m_id` varchar(32) NOT NULL default '',
`m_name` varchar(50) default NULL,
`m_code` varchar(32) default NULL,
`m_createUser` varchar(32) default NULL,
`m_modifyTime` datetime default NULL,
`m_isdel` varchar(1) default NULL,
`m_tempa` varchar(32) default NULL,
`m_tempb` varchar(32) default NULL,
PRIMARY KEY (`m_id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;--
-- Dumping data for table `t_bims_areamanagement`
--LOCK TABLES `t_bims_areamanagement` WRITE;
/*!40000 ALTER TABLE `t_bims_areamanagement` DISABLE KEYS */;
INSERT INTO `t_bims_areamanagement` VALUES ('d1000','4028849d24d6be350124d6c3e9330005',NULL,'1','2009-11-24 09:04:07','0',NULL,NULL),('d1001','4028849d24d6be350124d6e0e7ed003f',NULL,'1','2009-11-23 14:26:52','0',NULL,NULL),('d1002','4028849d24d6be350124d6c4a242000b',NULL,'1','2009-11-23 14:26:55','0',NULL,NULL),('d1003','4028849d24d6be350124d6c4d642000d',NULL,'1','2009-11-23 14:26:55','0',NULL,NULL),('d1004','4028849d24d6be350124d6cb1b9b0013',NULL,'1','2009-11-23 14:26:55','0',NULL,NULL),('d1005','4028849d24d6be350124d6e7413b004b',NULL,'1','2009-11-23 14:26:55','0',NULL,NULL),('d1006','4028849d24d6be350124d6e89e1c0050',NULL,'1','2009-11-23 14:26:55','0',NULL,NULL),('d1007','4028849d24d6be350124d6e80130004e',NULL,'1','2009-11-23 14:26:55','0',NULL,NULL),('d1008','4028849d24d6be350124d6ea2a59005a',NULL,'1','2009-11-23 14:26:55','0',NULL,NULL);
正确的是有表及数据的备份啊 命令我运行了没错
我的代码 /**
* 数据库备份实现方法
* 一定要看环境变量里设置了MySQL安装路径( C:\Program Files\MySQL\MySQL Server 5.0\bin)没 如果没设置就不行
*
*/
@Override
public String backupMysql() {
String sql="E:\\MySQl\\";//备份文件存放路径 String mysqlpaths = "";//pros.getProperty("mysqlpath"); //数据库服务安装地址(目录)
String databaseName = "";//pros.getProperty("databaseName"); //数据库名称
String address ="";// pros.getProperty("address"); // 服务URL
String sqlpath = sql;//pros.getProperty("sql"); // 备份文件存放路径
String username = "root";
String password = "123";
// mysqlpaths = "C:\\Program Files\\MySQL\\MySQL Server 5.0\\bin\\";
// C:\Program Files\MySQL\MySQL Server 5.0\bin
address="localhost";
databaseName="bims" ;
File backupath = new File(sqlpath); // 文件路径
if (!backupath.exists()) {
backupath.mkdir();
}
String time=StringUtil.dateToStr(new Date(), "yyyy-MM-dd");
String filename=time+".sql";
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(sqlpath);
sb.append(filename);
sb.append(" ");
sb.append("--default-character-set=utf8 ");
sb.append(databaseName);
Runtime cmd = Runtime.getRuntime();
try {
Process p = cmd.exec("cmd /c "+sb.toString());
// Process proc = Runtime.getRuntime().exec("cmd /c "+mysql);
InputStreamReader isr = new InputStreamReader(p.getInputStream());
BufferedReader br = new BufferedReader(isr);
FileOutputStream fos = new FileOutputStream(sqlpath+filename);
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
String line = null;
while((line = br.readLine())!=null){
bw.write(line);
bw.flush();
}
br.close();
bw.close();
System.out.println("调用命令:"+sb.toString());
} catch (IOException e) {
e.printStackTrace();//这里的异常没处理
}