mysql常用导出数据命令:
1.mysql导出整个数据库
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
mysqldump -hlocalhost -uroot hqgr> hqgr.sql (如果root用户没用密码可以不写-p,当然导出的sql文件你可以制定一个路径,未指定则存放在mysql的bin目录下)
2.mysql导出数据库一个表
mysqldump -hhostname -uusername -ppassword database tablename>导出的文件名
mysqldump -hlocalhost -uroot hqgr t_ug_user> user.sql
3.mysql导出一个数据库结构
mysqldump -hhostname -uusername -ppassword -d --add-drop-table databasename>d:hqgrstructure.sql
-d没有数据 --add-drop-table在每个create语句之前增加一个drop table
4.如果需要导出mysql里面的函数或者存储过程
mysqldump -hhostname -uusername -ppassword -ntd -R databasename > backupflie.sql
mysqldump -hlocalhost -uroot -ntd -R hqgr > hqgr.sql
其中的 -ntd是表示导出存储过程;-R是表示导出函数
mysql常用导入数据的命令:
1.mysql命令
mysql -hhostname -uusername - ppassword databasename < backupfile.sql
2.source命令
mysql -hhostname -uusername -ppassword 1)连接数据库
use databases; 2)选择数据库
mysql>source backupfile.sql 3)使用source命令
Java code
/**
* 数据库备份实现方法
*
*
*/
@Override
public String backupMysql() {
//备份文件存放路径
String sql ="";
//数据库名称 //读取XML得到数据库名称
String databaseName = "";
// 服务URL
String address = "";
// 备份文件存放路径
String sqlpath = "";
//读取XML得到数据库用户名称
String username = "";
//读取XML得到数据库用户密码名称
String password = "";
//备份服务地址
address = "localhost";
//数据库服务路径
String url="";
//获得服务发布的绝对路径
String path = System.getProperty("user.dir");
path = path.substring(0,path.lastIndexOf(“\\"))+"\\webapps\\BIMS\\";
//读取applicationDataSource.xml文件 取出 数据库名,
File f = new File(path+ "/WEB-INF/classes/configs/applicationDataSource.xml");
SAXReader reader = new SAXReader();
Document doc = null;
try {
doc = reader.read(f);
} catch (DocumentException e1) {
log.debug(e1.getMessage());
}
//获得所有node节点集合
Node node = doc.selectSingleNode("//*[@name='url']");
Element e = (Element)node;
url=e.attributeValue("value");
node = doc.selectSingleNode("//*[@name='username']");
e = (Element)node;
username=e.attributeValue("value");
node = doc.selectSingleNode("//*[@name='password']");
e = (Element)node;
password=e.attributeValue("value");
//得到MYSQL的用户名密码后调用 mysql 的 cmd:
String[] realp=path.split(":");
//备份文件存放路径 目录名自己可以写
sql = realp[0]+":"+"\\MySQlBimsBuckup\\";
String[] urls=url.split("/");
//数据库名称
databaseName = urls[urls.length-1];
//备份文件存放路径
sqlpath = sql;
address = "localhost";
//文件路径
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());
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 e1) {
log.debug("",e1);//没做处理
}
returnnull;
}