It is usual that we need to backup the database in software development (specially in Enterprise Software,web applications ) Database is very important which contains all the information about the organization. Last night I have coded a auto backup script in both JAVA and PHP. Here I am gonna post them below with comment.
Code Written in JAVA
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.*;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Ujjal Suttra Dhar
*/
class create_backup{
String database = "your_database_name", user = "root", password = "pass";
Connection m_Connection = null;
Statement m_Statement = null;
ResultSet m_ResultSet;
String m_Driver = "com.mysql.jdbc.Driver";
String m_Url = "jdbc:mysql://localhost:3306/" + database;
public create_backup(){
/*Eshtablishment of Connection of java code with MySQL using JDBC
You must read my previous post to know further about this.
*/
try {
Class.forName(m_Driver);
m_Connection = DriverManager.getConnection(m_Url, user, password);
//Create Statement object
m_Statement = m_Connection.createStatement();
} catch (Exception ex) {
ex.printStackTrace();
}
try {
//Database will be stored in filename.sql which can be import on MySQl as backup
BufferedWriter out = new BufferedWriter(new FileWriter("kernel_school.sql"));
//Now here is the informations about the database of which backup will be created
String dump = "C:/Program Files/MySQL/MySQL Server 5.0/bin/mysqldump " //Path to mysql
+ "--host=localhost" //Mysql hostname
+ "--port=3306" //Mysql portnumber
+ "--user=root" //Mysql username
+ "--password=pass" //Mysql password
+ "--add-drop-table" //Add a DROP TABLE statement before each CREATE TABLE statement
+ "--add-drop-database" //Add a DROP DATABASE statement before each CREATE DATABASE statement
+ "--complete-insert" //Use complete INSERT statements that include column names.
+ "--extended-insert" //Use multiple-row INSERT syntax that include several VALUES lists
+ "kernel_school"; //Mysql databasename
//executing the command through process.
Process run = Runtime.getRuntime().exec(dump);
/*resultant SQL informations are here on the br which can be read line by line .
And at the same time it will be written on another sql file.*/
InputStream in = run.getInputStream();
InputStreamReader isr = new InputStreamReader(in);
BufferedReader br = new BufferedReader(isr);
String line = null;
while ((line = br.readLine())!=null) {
out.write(line);
out.newLine();
}
out.flush(); // must flush or close the file after completing the task.
// int exitVal = run.waitFor();//when exitVal is ,then the process is completed
} catch (Throwable t) {
t.printStackTrace();
}
}//constructor
} // class
public class autobackup {
public static void main(String a[]){
new create_backup();
}
}
Code Written in PHP