本文目錄一覽:
如何使用mysqldump命令備份mysql資料庫
mysqldump: 最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個資料庫實例、單個資料庫、單張表的邏輯備份工具, 上手簡單,學習成本幾乎為 0。備份簡單,恢復也簡單。
比如導出單個資料庫 ytt: mysqldump ytt /tmp/ytt.sql;
恢復也非常簡單:mysql /tmp/ytt.sql
缺點是備份速度慢。在整個備份過程中,是單線程運行;備份出來的數據集要恢復的話同樣也是單線程運行,恢復速度也慢。除非對同一時刻的所有表單獨備份出來,自己寫額外腳本進行多線程恢復。
如何備份MYSQL資料庫?
定期的備份可使我們資料庫崩潰造成的損失大大降低。在MySQL中進行數據備份的方法有兩種,一種是使用mysqldump程序,一種是使用mysqlhotcopy、cp、tar或cpio等打包程序直接拷貝資料庫文件。mysqldump程序備份資料庫較慢,但它生成的文本文件便於移植。使用mysqlhotcopy等程序備份速度快,因為它直接對系統文件進行操作,需人為協調資料庫數據的備份前後一致性。
使用mysqldump備份資料庫其實就是把資料庫轉儲成一系列CREATE TABLE和INSERT語句,通過這些語句我們就可重新生成資料庫。使用mysqldump的方法如下:
% mysqldump –opt testdb | gzip /data/backup/testdb.bak
#–opt選項會對轉儲過程進行優化,生成的備份文件會小一點,後的管道操作會進行數據壓縮
% mysqldump –opt testdb mytable1,mytable2 | gzip /data/backup/testdb_mytable.bak
#可在資料庫後接數據表名,只導出指定的數據表,多個數據表可用逗號分隔
–opt選項還可激活–add-drop-table選項,它將會在備份文件的每條CREATE TABLE前加上一條DROP TABLE IF EXISTS語句。這可方便進行數據表的更新,而不會發生「數據表已存在」的錯誤。
用mysqldump命令還可直接把資料庫轉移到另外一台伺服器上,不用生成備份文件。重複執行可定期更新遠程資料庫。
% mysqladmin -h remote_host create testdb
% mysqldump –opt testdb | mysql -h remote_host testdb
另外還可通過ssh遠程調用伺服器上的程序,如:
% ssh remote_host mysqladmin create testdb
% mysqldump –opt testdb | ssh remote_host mysql testdb
通過直接拷貝系統文件的方式備份資料庫,在備份時,要確保沒有人對資料庫進行修改操作。要做到這點,最好關閉伺服器。如果不能關閉的,要以只讀方試鎖定有關數據表。下面是一些示例:
% cp -r db /backup/db #備份db資料庫到/backup/db目錄
% cp table_name.* /backup/db #只備份table_name數據表
% scp -r db remotehot:/usr/local/mysql/data #用scp把資料庫直接拷貝到遠程伺服器
在把資料庫直接拷貝到遠程主機時,應注意兩台機器必須有同樣的硬體結構,或者將拷貝的數據表全部是可移植數據表類型。
使用mysqlhotcopy工具,它是一個Perl DBI腳本,可在不關閉伺服器的情況下備份資料庫,它主要的優點是:
它直接拷貝文件,所以它比mysqldump快。
可自動完成數據鎖定工作,備份時不用關閉伺服器。
能刷新日誌,使備份文件和日誌文件的檢查點能保持同步。
下面是該工具的使用示例:
% mysqlhotcopy db /bakcup/ #把db資料庫備份到backup/db目錄里,會自動創建一個db目錄
使用BACKUP TABLE語句進行備份,該語句最早出現在MySQL 3.23.25版本中,僅適用於MyISAM數據表。用法如下:
mysql BACKUP TABLE mytable TO ‘/backup/db’; #把mytable數據表備份到/backup/db目錄下
為了執行該語句,你必須擁有那些表的FILE許可權和SELECT許可權,備份目錄還必須是伺服器可寫的。該語句執行時,會先把內存中的數據寫入磁碟,再把各個數據表的.frm(表結構定義文件)、.MYD(數據)文件從數據目錄拷貝到備份目錄。它不拷貝.MYI(索引)文件,因為它能用另外兩個文件重建。BACKUP TABLE語句備份時,依次鎖定數據表,當同時備份多個數據表時,數據表可能會被修改,所以備份0完成時,備份文件中的數據和現時數據表中的數據可能會有差異,為了消除該差異,我們可用只讀方式鎖定數據表,在備份完成後再解鎖。如:
mysql LOCK TABLES tb1 READ,tb2 READ;
mysql BACKUP TABLE tb1,tb2 TO ‘backup/db’;
mysql UNLOCK TABLE
如何備份MySQL資料庫
下載個navicat premium,網上有破解版的
新建資料庫連接,輸入你的mysql資料庫連接的密碼,自定義一個名稱
雙擊打開該名稱的連接,可以看到當前資料庫連接下能夠訪問到的所有mysql資料庫
打開資料庫,可以看到資料庫中的所有表,右鍵要備份的表,選擇轉儲為sql文件,選擇結構和數據一起轉儲就可以把數據表和數據一起備份成sql文件
需要使用時,只要右鍵資料庫,選擇運行sql文件,然後選中備份的sql文件運行,就可以還原原來備份的mysql資料庫了
怎麼定時自動備份mysql數據表
一、對於Windows主機
==============
假想環境:
MySQL
安裝位置:C:\MySQL
論壇資料庫名稱為:bbs
MySQL
root
密碼:123456
資料庫備份目的地:D:\db_backup\
@echo
off
C:\MySQL\bin\mysqladmin
-u
root
–password=123456
shutdown
C:\MySQL\bin\mysqldump
–opt
-u
root
–password=123456
bbs
D:\db_backup\bbs.sql
C:\MySQL\bin\mysqld-nt
將以上代碼保存為backup_db.bat
然後使用Windows的「計劃任務」定時執行該腳本即可。(例如:每天凌晨5點執行back_db.bat)
二、對於Linux主機
===========
假想環境:
MySQL
安裝位置:/usr/local/mysq
論壇資料庫名稱為:bbs
MySQL
root
密碼:123456
資料庫備份目的地:/var/db_backup/
#!
/bin/bash
/usr/local/mysql/bin/mysqladmin
-u
root
–password=123456
shutdown
/usr/local/mysql/bin/mysqldump
–opt
-u
root
–password=123456
bbs
/var/db_backup/bbs.sql
/usr/local/mysql/bin/mysqld_safe
–user=mysql
將上述代碼保存在/usr/local/sbin/backup_db.sh
對該腳本賦予執行許可權:
#
chmod
755
/usr/local/sbin/backup_db.sh
加入crontab中自動執行:
#
crontab
-e
加入:
5
*
*
*
/usr/local/sbin/backup_db.sh
mysql備份方式有哪些
資料庫最直接的備份方法就是使用自帶的mysqldump命令進行備份。
1、 mysqldump命令備份數據
在MySQL中提供了命令行導出資料庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現資料庫內容的導出dump,首先我們簡單了解一下mysqldump命令用法:
#MySQLdump常用
mysqldump -u root -p –databases 資料庫1 資料庫2 xxx.sql
2、 mysqldump常用操作實例
2.1備份全部資料庫的數據和結構
mysqldump -uroot -p123456 -A /data/mysqlDump/mydb.sql
2.2備份全部資料庫的結構(加 -d 參數)
mysqldump -uroot -p123456 -A -d /data/mysqlDump/mydb.sql
2.3 備份全部資料庫的數據(加 -t 參數)
mysqldump -uroot -p123456 -A -t /data/mysqlDump/mydb.sql
2.4 備份單個資料庫的數據和結構(,資料庫名mydb)
mysqldump -uroot-p123456 mydb /data/mysqlDump/mydb.sql
2.5 備份單個資料庫的結構
mysqldump -uroot -p123456 mydb -d /data/mysqlDump/mydb.sql
2.6 備份單個資料庫的數據
mysqldump -uroot -p123456 mydb -t /data/mysqlDump/mydb.sql2
2.7 備份多個表的數據和結構(數據,結構的單獨備份方法與上同)
mysqldump -uroot -p123456 mydb t1 t2 /data/mysqlDump/mydb.sql
2.8 一次備份多個資料庫
mysqldump -uroot -p123456 –databases db1 db2 /data/mysqlDump/mydb.sql
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/185873.html