導航:首頁 > 程序命令 > linuxmysql備份資料庫命令

linuxmysql備份資料庫命令

發布時間:2023-06-01 22:08:28

Ⅰ 怎樣用命令行把MySQL資料庫遷移到另一台linux伺服器

1、用mp命令備份資料庫。
# mysqlmp -u root -p dbfile > dbfile.sql
2、用rsync從新伺服器獲得備份的文件(SCP或WGET也可以)。
# rsync -avr root@myolddbserver:/home/mympfolder/dbfile.sql
3、登陸新伺服器的mysql客戶端。
# mysql -u root -p
4. 建立資料庫。
mysql> create database dbfile;
5. 選擇新資料庫;
mysql> use dbfile;
6. 載入數據;
mysql> source dbfile.sql

或者
在Mysql程序中有我自己的一個資料庫共5張表,里邊數據不算太多。我現在想把他們全部弄到另一台電腦中去,該怎麼弄,如果不用其它的軟體工具,只用Mysql自已的程序不知可否?
註:不用考慮操作系統。
---------------------------------------------------------------

在dos命令提示符下使用mysqlmp命令進行備份.
如下:
C:\Documents and Settings\Administrator>mysqlmp yinshi >c:\\backup.txt -uroot
-p12142022
說明:yinshi是我的資料庫名,裡面有5張表; c:\\backup.txt 是我備份出來文件名和路徑;

-u,-p參數後面跟的分別是用戶名和密碼.
將你備份出來的文件我這里是backup.txt拷貝到另一台機上,再在dos命令提示符下用mysql命令,進行恢復,如下:
C:\Documents and Settings\Administrator>mysql < c:\\backup.txt -uroot -p12142022
or
mysql>source backup.txt;(這里backup.txt在放在data目錄下)

---------------------------------------------------------------

如果另一台機器上也安裝了mysql,可以直接導入

C:\mysql\bin>mysqlmp -h172.20.6.250 -udeveloper -p123456 --opt server_databasename | mysql -hlocalhost -uroot -C obj_databasename

172.20.6.250源伺服器ip
developer源伺服器連接用戶名
---------------------------------------------------------------

有兩種辦法。
1、在B機器上裝mysql。
將A機器上的mysql/data下的你的資料庫目錄整個拷貝下來。
將B機器上的mysql服務停止。
找到B機器上的mysql/data目錄,將你拷貝的目錄粘貼進去,然後啟動mysql服務就可以了。
2、使用SQL語句備份和恢復
你可以使用SELECT INTO OUTFILE語句備份數據,並用LOAD DATA INFILE語句恢復數據。這種方法只能導出數據的內容,不包括表的結構,如果表的結構文件損壞,你必須要先恢復原來的表的結構。
語法:
SELECT * INTO {OUTFILE | DUMPFILE} 』file_name』 FROM tbl_name
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE 』file_name.txt』 [REPLACE | IGNORE]
INTO TABLE tbl_name
SELECT ... INTO OUTFILE 』file_name』

Ⅱ linux 登錄mysql 後 怎麼備份

用命令實現備份

MySQLl提供了一個mysqlmp命令,我們可以用它進行數據備份。

按提示輸入密碼,這就把tm資料庫所有的表結構和# mysqlmp -u root -p tm > tm_050519.sql數據備份到tm_050519.sql了,因為要總進行備份工作,如果數據量大會佔用很大空間,這時可以利用gzip壓縮數據,命令如下:

# mysqlmp -u root -p tm | gzip > tm_050519.sql.gz
系統崩潰,重建系統時,可以這樣恢復數據:

# mysqlmp -u root -p tm < tm_050519.sql
從壓縮文件直接恢復:

#gzip < tm_050519.sql.gz | mysqlmp -u root -p tm
當然,有很多MySQL工具提供更直觀的備份恢復功能,比如用phpMyAdmin就很方便。但我認為,mysqlmp是最基本、最通用的。

二、利用crontab,系統每天定時備份mysql資料庫

利用系統crontab來定時執行備份文件,按日期對備份結果進行保存,達到備份的目的。

1、創建保存備份文件的路徑/var/backup/mysqlbak

# mkdir -p /var/backup/mysqlbak
2、創建/usr/sbin/bakmysql文件

#vi /usr/sbin/bakmysql.sh

#!/bin/bash
# mysql備份腳本
cd /var/backup/mysqlbak/
dateDIR=`date +"%y-%m-%d"`
mkdir -p $dateDIR/data
for i in `/usr/local/www/mysql/bin/mysql -uroot -plin31415926 -e "show databases" |
grep -v "Database" | grep -v "information_schema"`
do
/usr/local/www/mysql/bin/mysqlmp -uroot -plin31415926 $i |
gzip > /var/backup/mysqlbak/$dateDIR/${i}_${dateDIR}.gz
done
3、修改文件屬性,使其可執行

# chmod +x /usr/sbin/bakmysql
4、修改/etc/crontab

# crontab -e
在下面添加
01 3 * * * root /usr/sbin/bakmysql
#表示每天3點鍾執行備份

這樣每天就可以在/var/backup/mysqlbak下看到備份的sql文件 了!

Ⅲ linux系統下mySQL資料庫 備份方法和腳本

方法一、適合所有格式的mysql資料庫,通過對資料庫導出導進寫個腳本定時執行:
1.導出整個資料庫 mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc > /存放路徑/wcnc.sql
2.導出一個表 mysqlmp -u 用戶名 -p 資料庫名 表名> 導出的文件名 mysqlmp -u wcnc -p smgp_apps_wcnc users> /存放路徑/wcnc_users.sql
3.導出一個資料庫結構 mysqlmp -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路徑/wcnc_db.sql
定義:
-d 沒有數據
--add-drop-table 在每個create語句之前增加一個drop table
4.導入資料庫 常用source 命令 進入mysql資料庫控制台:
如mysql -u root -p mysql>use 資料庫

方法二、針對mysql數據表格式為MyISAM的
假如數據文件在/var/lib/mysql
那麼直接寫個腳本
cp -r /var/lib/mysql /備份到的文件夾路徑

隔機備份用rsync增量,或定時完整備份。

Ⅳ linux中mysql如何備份與恢復(mysql備份和恢復資料庫命令)

把以前寫的一個發你看看

腳本要求:編寫shell腳本,每天凌晨1點備份td_oa庫,到mysql-back目錄,並將備份文件壓縮,壓縮名稱為備份的日期,只保留連續七天的備份物斗猜文件

#!/bin/bash

mysql-uroot-p123456-e"flushtableswithreadlock;"鎖住表

/usr/local/mysql/bin/mysqlmp-uroot-p123456td_oa--flush-logs--single-transaction

mysql-uroot-p123456-e"unlocktables;"解鎖

a=`/bin/date%Y-%m-%d`#在這里加上銷源時間,壓縮的時候罩型加上時間,會失敗。

echo$a

cd/gxl

/bin/tar-czf$a.tar/fjp/td_oa.sql

b="$a.tar"

cp-p$b/root/fjp

forcin`find/root/fjp-ctime7`

do

/bin/rm-rf$c

done

Ⅳ LINUX下如何直接對MYSQL資料庫進行備份

MYSQL提供了數據導入與導出的兩個命令,分別是mysqlimport(導入)和
mysqlmp(導出或者轉儲)。詳細用法請網路一下。

Ⅵ 在linux下 如何使用mysqlmp進行mysql的完全備份 要完整命令 記得是完全備份不是某個庫。。

mysqlmp命令
mysql資料庫導出要用到MySQL的mysqlmp工具,基本用法是:

shell> mysqlmp [OPTIONS] database [tables]

如果你不給定任何錶,整個資料庫將被導出。
通過執行mysqlmp --help,你能得到你mysqlmp的版本支持的選項表。
注意,如果你運行mysqlmp沒有--quick或--opt選項,mysqlmp將在導出結果前裝載整個結果集到內存中,如果你正在導出一個大的資料庫,這將可能是一個問題。
1.1、mysqlmp支持下列選項:
--add-locks
在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE。(為了使得更快地插入到MySQL)。
--add-drop-table
在每個create語句之前增加一個drop table。
--allow-keywords
允許創建是關鍵詞的列名字。這由表名前綴於每個列名做到。
-c, --complete-insert
使用完整的insert語句(用列名字)。
-C, --compress
如果客戶和伺服器均支持壓縮,壓縮兩者間所有的信息。
--delayed
用INSERT DELAYED命令插入行。
-e, --extended-insert
使用全新多行INSERT語法。(給出更緊縮並且更快的插入語句)
-#, --debug[=option_string]
跟蹤程序的使用(為了調試)。
--help
顯示一條幫助消息並且退出。

LOAD DATA INFILE
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--fields-terminated-by=...
這些選擇與-T選擇一起使用,並且有相應的LOAD DATA INFILE子句相同的含義。
LOAD DATA INFILE語法。
-F, --flush-logs
在開始導出前,洗掉在MySQL伺服器中的日誌文件。
-f, --force,
即使我們在一個表導出期間得到一個SQL錯誤,繼續。
-h, --host=..
從命名的主機上的MySQL伺服器導出數據。預設主機是localhost。
-l, --lock-tables.
為開始導出鎖定所有表。
-t, --no-create-info
不寫入表創建信息(CREATE TABLE語句)
-d, --no-data
不寫入表的任何行信息。如果你只想得到一個表的結構的導出,這是很有用的!
--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
應該給你為讀入一個MySQL伺服器的盡可能最快的導出。
-pyour_pass, --password[=your_pass]
與伺服器連接時使用的口令。如果你不指定「=your_pass」部分,mysqlmp需要來自終端的口令。
-P port_num, --port=port_num
與一台主機連接時使用的TCP/IP埠號。(這用於連接到localhost以外的主機,因為它使用 Unix套接字。)
-q, --quick
不緩沖查詢,直接導出至stdout;使用mysql_use_result()做它。
-S /path/to/socket, --socket=/path/to/socket
與localhost連接時(它是預設主機)使用的套接字文件。
-T, --tab=path-to-some-directory
對於每個給定的表,創建一個 table_name.sql文件,它包含SQL CREATE 命令,和一個table_name.txt文件,它包含數據。 注意:這只有在mysqlmp運行在mysqld守護進程運行的同一台機器上的時候才工作。.txt文件的格式根據--fields-xxx和 --lines--xxx選項來定。
-u user_name, --user=user_name
與伺服器連接時,MySQL使用的用戶名。預設值是你的Unix登錄名。
-O var=option, --set-variable var=option設置一個變數的值。可能的變數被列在下面。
-v, --verbose
冗長模式。列印出程序所做的更多的信息。
-V, --version
列印版本信息並且退出。
-w, --where=''''where-condition''''
只導出被選擇了的記錄;注意引號是強制的!
"--where=user=''''jimf''''" "-wuserid>1" "-wuserid<1"

1.2、最常見的mysqlmp的一個備份:
雖然mysqlmp支持的命令有很多,對於大多數人而言,我們只需要使用-opt這個命令就已經足夠了,為你的資料庫做一個完整的備份:

mysqlmp --opt database > backup-file.sql

但是它對用來自於一個資料庫的信息充實另外一個MySQL資料庫也是有用的:

mysqlmp --opt database | mysql --host=remote-host -C database

1.3、使用mysqlmp導出的文件恢復資料庫
由於mysqlmp導出的是完整的SQL語句,所以用mysql客戶程序很容易就能把數據導入了:

shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql

就是
shell> mysql 庫名 < 文件名
二、使用mysqlmp定時備份資料庫的腳本
2.1、備份腳本
使用腳本每天定期執行資料庫備份操作,對每個使用mysql資料庫的人來說都很有必要,這樣的腳本網上有很多,這里摘抄一個朋友的腳本 dbbackup:

這個腳本每天最多隻執行一次,而且只保留最近五天的備份在伺服器上。

dbbackup代碼:

#!/bin/bash
#This is a ShellScript For Auto DB Backup
#Powered by aspbiz
#2004-09

#Setting
#設置資料庫名,資料庫登錄名,密碼,備份路徑,日誌路徑,數據文件位置,以及備份方式
#默認情況下備份方式是tar,還可以是mysqlmp,mysqldot
#默認情況下,用root(空)登錄mysql資料庫,備份至/root/dbxxxxx.tgz
DBName=mysql
DBUser=root
DBPasswd=
BackupPath=/root/
LogFile=/root/db.log
DBPath=/var/lib/mysql/
#BackupMethod=mysqlmp
#BackupMethod=mysqlhot
#BackupMethod=tar
#Setting End

NewFile="$BackupPath"db$(date +%y%m%d).tgz
DumpFile="$BackupPath"db$(date +%y%m%d)
OldFile="$BackupPath"db$(date +%y%m%d --date=''''5 days ago'''').tgz

echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile
#Delete Old File
if [ -f $OldFile ]
then
rm -f $OldFile >> $LogFile 2>&1
echo "[$OldFile]Delete Old File Success!" >> $LogFile
else
echo "[$OldFile]No Old Backup File!" >> $LogFile
fi

if [ -f $NewFile ]
then
echo "[$NewFile]The Backup File is exists,Can''''t Backup!" >> $LogFile
else
case $BackupMethod in
mysqlmp)
if [ -z $DBPasswd ]
then
mysqlmp -u $DBUser --opt $DBName > $DumpFile
else
mysqlmp -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
mysqlhot)
rm -rf $DumpFile
mkdir $DumpFile
if [ -z $DBPasswd ]
then
mysqlhot -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
else
mysqlhot -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
fi
tar czvf $NewFile $DumpFile >> $LogFile 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
rm -rf $DumpFile
;;
*)
/etc/init.d/mysqld stop >/dev/null 2>&1
tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
/etc/init.d/mysqld start >/dev/null 2>&1
echo "[$NewFile]Backup Success!" >> $LogFile
;;
esac
fi

echo "-------------------------------------------" >> $LogFile

2.2、放入crontab定期執行dbbackup
假定dbbackup在/root目錄下。我們通過使用crontab命令,設置每天0點10分執行/root/dbbakup腳本。
1、 使用 crontab –e編輯crontab
2、 在crontab中加入:

#back for jabber database
10 0 * * * /root/dbbackup

Ⅶ Linux自動備份MySQL資料庫的實用方法


MySQL定期備份是一項重要的工作,但人工操作太繁瑣,也難避免有所疏漏,使用下面的方法即可讓系統定期備份數據。
◆1、創建備份文件夾
#cd /www
#makedir backup
◆2、編寫運行腳本
#vi autobackup
寫入以下內容:
filename=`date +%Y%m%d`
mysql_bin_dir/mysqlmp _opt dataname -u user -ppassword | gzip
/www/mysqlbackup/name$filename.gz
保存退枝褲出
說明:
(1)mysql_bin_dir:mysql的bin路徑;
(2)dataname:資料庫名;
(3)user:資料庫用戶名;
(4)password:陸搭歲用戶密碼;
(5)name:早睜自定義備份文件前綴標識。
如上例,將自動備份mysql資料庫,並以gzip壓縮方式存儲,文件名為name20080101.gz的形式。
◆3、為腳本添加執行許可權
#chmod +x autobackup
◆4、讓crontab來完成定期執行的任務
這一步中,Redhat的方法會不一樣,後面專門給出。
編輯crontab:
#vi /etc/crontab
在最後一行中加入:
01 5 * * * root /www/autobackup
每天5點運行腳本,也可以修改5為其他指定時間。
Redhat方法:
Redhat的crontab採用按時間調用4個目錄(/etc/cron.hourly:每小時;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中腳本出來運行的方式。
Redhat中只需要將剛才編輯的腳本復制到相應的目錄即可。
◆5、重啟crontab
#/etc/rc.d/init.d/crond restart
完成。

Ⅷ 在linux怎麼備份資料庫表

1:打開的資料庫的命令

mysql> use mysql
Database changed
2:查看資料庫的命令

mysql> show databases;
3:查看資料庫中表的命令
mysql> show tables;
4:查看錶的詳細結構
mysql> desc tablename;
5:新建資料庫
mysql> create database school;
Query OK, 1 row affected (0.00 sec)
6:新建表

mysql> create table user01(

-> id varchar(20) NOT NULL,

-> userName varchar(10) NOT NULL,

-> age int(11) default'0',

-> sex char(2) NOT NULL default'm',

-> PRIMARY KEY (id)

-> )TYPE=InnoDB;

Query OK, 0 rows affected, 1 warning (0.02 sec)mysql>desc student;
7:插入

mysql> insert into student(id,stuName) values('1','tomcat');

Query OK, 1 row affected (0.00 sec)

8:刪除

mysql> delete from student where id='1';

Query OK, 1 row affected (0.01 sec)

9:刪除表中所有數據

mysql> truncate table student;

Query OK, 1 row affected (0.01 sec)

10:創建新用戶並給予許可權

mysql>grant all privileges on *.* to dbsync@"127.0.0.1" identified by "1234";

11:更改Mysql用戶密碼

c:\Mysql5.0\bin>mysqladmin -u root -p password 1234

Enter password: ****
備份資料庫及表

我們用mysqlmp命令來備份資料庫

c:\mysql\bin\>mysqlmp –u root –p 3306 mysql>d:\backup.sql

執行此語句將把mydb 備份到D盤的backup.sql文件中

備份多個資料庫表

閱讀全文

與linuxmysql備份資料庫命令相關的資料

熱點內容
想創app軟體怎麼操作 瀏覽:199
為啥電腦總是顯示沒有文件夾 瀏覽:674
iphone顯示無法驗證app怎麼回事 瀏覽:968
推薦解壓好游戲 瀏覽:275
cpu伺服器過載怎麼辦 瀏覽:618
zip內存壓縮 瀏覽:311
阿里雲99元伺服器不可以退款 瀏覽:337
linux下安裝vnc 瀏覽:656
微信圖片加密編輯可見 瀏覽:704
江恩操盤術pdf 瀏覽:929
本機構所屬的伺服器是什麼意思 瀏覽:784
c編譯器有哪些段 瀏覽:863
qq原創表情在哪個文件夾 瀏覽:625
點點賺app現在怎麼不能用了 瀏覽:363
網紅阿里程序員事件 瀏覽:203
演算法設計心得體會 瀏覽:118
java修改ip 瀏覽:151
php不需要編譯嗎 瀏覽:136
特斯拉新車如何用app控制 瀏覽:187
文檔拖到文件夾就不見了 瀏覽:816