可以創建一個只有本地備份權限的用戶:
CREATE USER 'backuser'@'localhost' IDENTIFIED BY '********'; GRANT SELECT, RELOAD, PROCESS, SHOW DATABASES, LOCK TABLES ON *.* TO 'backuser'@'localhost';
1、導出
命令:mysqldump -u用戶名 -p數據庫密碼 數據庫名 > 文件名
如果用戶名需要密碼,則需要在此命令執行后輸入一次密碼核對;如果數據庫用戶名不需要密碼,則不要加“-p”參數,導入的時候相同。注意輸入的用戶名需要擁有對應數據庫的操作權限,否則無法導出數據。由於是作系統維護和全部數據庫的導出,一般我們使用root等超級用戶權限。
比如要將abc這個數據庫導出為一個文件名為db_abc.sql的數據庫文件到當前目錄下,則輸入下面的命令:
mysqldump -uroot -ppassword abc >db_abc.sql
如果要直接導出sql.zip或者gzip格式文件命令如下:
mysqldump -uroot -ppassword abc | gzip > db_abc.sql.tar.gz
需要注意的是:-u和-p后面直接跟用戶名和密碼,不要有空格。
2、導入
命令:mysql -u用戶名 -p數據庫密碼 數據庫名 < 文件名
同mysqldump命令一樣的用法,各參數的意義同mysqldump。
比如我們要將/root/backup/db_abc.sql這個文件的數據導入到abc數據庫中,則使用下面的命令:
mysql -uroot -ppassword abc < /root/backup/db_abc.sql
如果是zip或gzip格式則使用下面的命令:
gunzip < /root/backup/abc.sql.tar.gz | mysql -uroot -ppassword abc
3、其他命令參考
備份遠程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
將數據庫轉移到新服務器
1、首先在新的服務器上創建數據庫,create database newdatabase;
2、mysqldump -uusername -ppassword olddatabasename | mysql -hhostname -uuserbname –ppassword newdatabasename
4、總結一下壓縮備份
備份並用gzip壓縮:mysqldump < mysqldump options> | gzip > outputfile.sql.gz
從gzip備份恢復:gunzip < outputfile.sql.gz | mysql < mysql options>
備份並用bzip壓縮:mysqldump < mysqldump options> | bzip2 > outputfile.sql.bz2
從bzip2備份恢復:bunzip2 < outputfile.sql.bz2 | mysql < mysql options>