久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Java中怎么備份和還原MySQL數據庫

191次閱讀
沒有評論

共計 2166 個字符,預計需要花費 6 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 Java 中怎么備份和還原 MySQL 數據庫,文章內容質量較高,因此丸趣 TV 小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

備份

上面的網頁提到 mysqldump 命令一共有三種形式,如下:

shell  mysqldump [options] db_name [tbl_name ...]
shell  mysqldump [options] --databases db_name ...
shell  mysqldump [options] --all-databases

該命令有很多的 options,詳情可以查看上面的鏈接,我這里只需要備份一個數據庫,命令也比較簡單;如果在命令行窗口可以使用如下命令來實現備份:

mysqldump -umysql -pmysql --add-drop-database --skip-lock-tables -B tjfinal   d:/backup.sql

如果不加 –add-drop-database 參數并且用戶不是 root 用戶,有可能報下面的錯誤:

mysqldump: Got error: 1044:  Access denied for user  mysql @ localhost  to datab
ase  tjfinal  when using LOCK TABLES

Java 示例代碼:

/**
 *  備份數據庫
 * @throws Exception
 */
public static void backup () throws Exception { String savePath = BACKUP_DIR +  backup-  + DateTimeTool.getDateByTime() +  .sql 
 String[] execCMD = new String[] { mysqldump ,  -u  + DB_USER,  -p  + DB_PWD, DB_NAME,
  -r  + savePath,  --skip-lock-tables 
 Process process = Runtime.getRuntime().exec(execCMD);
 int processComplete = process.waitFor();
 if (processComplete == 0) {
 System.out.println( 備份成功. 
 } else {
 throw new RuntimeException( 備份數據庫失敗. 
 }
}

還原

還原數據庫需要用到 MySQL 的 source 命令,該命令用來讀取一個文件并執行其中的 SQL 語句;如果使用命令行工具,可以登錄 MySQL 客戶端,然后直接執行 source 命令即可:

MariaDB [tjfinal]  source file_name 
--  或者
MariaDB [tjfinal]  \. file_name

當然如果不登錄進客戶端也是可以的,這時就需要用到 mysql 客戶端命令的 –execute(或者 -e)選項(option),如下:

--execute=statement
--  或者
-e statement

其中 –execute(或 -e)選項表示要登錄客戶端然后執行 SQL 命令后退出,而該選項的參數 statement 就是要執行的 SQL 命令,關于 mysql 命令選項的說明可以參考這里:http://dev.mysql.com/doc/refman/5.1/en/mysql-command-options.html#option_mysql_execute

因此在不登錄 MySQL 客戶端的情況下可以使用下面的命令還原數據庫:

mysql -umysql -pmysql -e source d:/backup.sql
--  或者
mysql -umysql -pmysql --execute= source d:/backup.sql

Java 示例代碼:

/**
 *  還原數據庫
 * @param sql  要還的 SQL 文件
 * @throws Exception
 */
public static void restore (String sql) throws Exception {
 String targetFile = BACKUP_DIR + sql; // SQL 文件路徑
 String[] execCMD = new String[]{mysql , DB_NAME,  -u  + DB_USER,  -p  + DB_PWD,  -e source , targetFile};
 Process process = Runtime.getRuntime().exec(execCMD);
 int processComplete = process.waitFor();
 if (processComplete == 0) {
 System.out.println( 還原成功. 
 } else {
 throw new RuntimeException( 還原數據庫失敗. 
 }

關于 Java 中怎么備份和還原 MySQL 數據庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-03發表,共計2166字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 白城市| 兰州市| 南康市| 丁青县| 淄博市| 平武县| 铜梁县| 治县。| 红桥区| 沾化县| 昭通市| 冕宁县| 延吉市| 来宾市| 简阳市| 秦安县| 河源市| 栾川县| 济源市| 沧州市| 灵丘县| 长治县| 郓城县| 泉州市| 贡嘎县| 郯城县| 长沙市| 札达县| 郑州市| 贡山| 余干县| 鹿邑县| 秦皇岛市| 如东县| 休宁县| 崇信县| 嘉义县| 天长市| 马边| 宜君县| 兴宁市|