本來給大家總結現在網絡上常用的幾種mysql數據庫備份與恢復的命令與方法,有需要學習備份mysql數據庫的朋友可進入詳細參考。
方法一,直接打包mysql數據庫下的data目錄中你要備份的數據庫名字的目錄,然後恢復也可以直接替換了
方法二,利用xcopy定時備份了,代碼如下
把下面代碼保存.bat文件
代碼如下 復制代碼@echo off
echo 執行備份任務
echo 正在停止數據庫…
echo 正在停止網站數據庫…
net stop MySQL
echo 執行備份數據庫
xcopy "D:/MySQL/data/*.*" D:/mysqlbak/webbak%date:~0,10%/ /e /y /c
net start MySQL
echo 正在啟動網站數據庫…
echo 退出備份任務
echo .
exit
另存為db_back.bat。該bat文件的意思是先停止mysql服務,然後使用xcopy命令,將源數據庫所在文件夾整個復制到D:/db_backup下,並且以當天日期命名該文件。
我們在cmd下測試一下這個bat能否運行。"運行"->cmd,輸入cd c:/定位到bat文件所在目錄。輸入back_job.bat.結果如下
方法三,利用phpmyadmin備份還原,這裡我就不介紹了。
方法四,利用mysqldump 命令進行備份
我通常使用以下 SQL 來備份 MyISAM 表:
代碼如下 復制代碼 /usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false使用以下 SQL 來備份 Innodb 表:
/usr/local/mysql/bin/mysqldump -uyejr -pyejr --default-character-set=utf8 --opt --extended-insert=false
--triggers -R --hex-blob --single-transaction db_name > db_name.sql
1.2 還原
用 mysqldump 備份出來的文件是一個可以直接倒入的 SQL 腳本,有兩種方法可以將數據導入。
•直接用 mysql 客戶端
例如:
/usr/local/mysql/bin/mysql -uyejr -pyejr db_name < db_name.sql
•用 SOURCE 語法
其實這不是標准的 SQL 語法,而是 mysql 客戶端提供的功能,例如:
SOURCE /tmp/db_name.sql;
這裡需要指定文件的絕對路徑,並且必須是 mysqld 運行用戶(例如 nobody)有權限讀取的文件
備份MySQL數據庫的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
備份MySQL數據庫為帶刪除表的格式
備份MySQL數據庫為帶刪除表的格式,能夠讓該備份覆蓋已有數據庫而不需要手動刪除原有數據庫。
代碼如下 復制代碼mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接將MySQL數據庫壓縮備份
代碼如下 復制代碼mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
備份MySQL數據庫某個(些)表
代碼如下 復制代碼mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同時備份多個MySQL數據庫
代碼如下 復制代碼mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
僅僅備份數據庫結構
代碼如下 復制代碼mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
備份服務器上所有數據庫
代碼如下 復制代碼mysqldump –all-databases > allbackupfile.sql
還原MySQL數據庫的命令
代碼如下 復制代碼mysql -hhostname -uusername -ppassword databasename < backupfile.sql
還原壓縮的MySQL數據庫
代碼如下 復制代碼gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
將數據庫轉移到新服務器
代碼如下 復制代碼mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
利用php 來備份mysql數據庫
<?php
mysql_connect('localhost', 'test', '123456');
mysql_select_db('test');
if(copy_table('products', 'products_bak')) {
echo "success/n";
}
else {
echo "failure/n";
}
function copy_table($from, $to) {
if(table_exists($to)) {
$success = false;
}
else {
mysql_query("CREATE TABLE $to LIKE $from");
mysql_query("INSERT INTO $to SELECT * FROM $from");
$success = true;
}
return $success;
}
function table_exists($tablename, $database = false) {
if(!$database) {
$res = mysql_query("SELECT DATABASE()");
$database = mysql_result($res, 0);
}
$res = mysql_query("
SELECT COUNT(*) AS count
FROM information_schema.tables
WHERE table_schema = '$database'
AND table_name = '$tablename'
");
return mysql_result($res, 0) == 1;
}
?>