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
Very informative. Helped me with the SQL socket via JDBC. Thanks a bunch.
very good post