⑴ mysql怎樣導出表(表結構+數據)
定期的備份可使我們資料庫崩潰造成的損失大大降低。在MySQL中進行數據備份的方法有兩種,一種是使用mysqlmp程序,一種是使用mysqlhot、cp、tar或cpio等打包程序直接拷貝資料庫文件。mysqlmp程序備份資料庫較慢,但它生成的文本文件便於移植。使用mysqlhot等程序備份速度快,因為它直接對系統文件進行操作,需人為協調資料庫數據的備份前後一致性。
使用mysqlmp備份資料庫其實就是把資料庫轉儲成一系列CREATE TABLE和INSERT語句,通過這些語句我們就可重新生成資料庫。使用mysqlmp的方法如下:
% mysqlmp --opt testdb | gzip > /data/backup/testdb.bak
#--opt選項會對轉儲過程進行優化,生成的備份文件會小一點,後的管道操作會進行數據壓縮
% mysqlmp --opt testdb mytable1,mytable2 | gzip > /data/backup/testdb_mytable.bak
#可在資料庫後接數據表名,只導出指定的數據表,多個數據表可用逗號分隔
--opt選項還可激活--add-drop-table選項,它將會在備份文件的每條CREATE TABLE前加上一條DROP TABLE IF EXISTS語句。這可方便進行數據表的更新,而不會發生「數據表已存在」的錯誤。
用mysqlmp命令還可直接把資料庫轉移到另外一台伺服器上,不用生成備份文件。重復執行可定期更新遠程資料庫。
% mysqladmin -h remote_host create testdb
% mysqlmp --opt testdb | mysql -h remote_host testdb
另外還可通過ssh遠程調用伺服器上的程序,如:
% ssh remote_host mysqladmin create testdb
% mysqlmp --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把資料庫直接拷貝到遠程伺服器
在把資料庫直接拷貝到遠程主機時,應注意兩台機器必須有同樣的硬體結構,或者將拷貝的數據表全部是可移植數據表類型。
使用mysqlhot工具,它是一個Perl DBI腳本,可在不關閉伺服器的情況下備份資料庫,它主要的優點是:
它直接拷貝文件,所以它比mysqlmp快。
可自動完成數據鎖定工作,備份時不用關閉伺服器。
能刷新日誌,使備份文件和日誌文件的檢查點能保持同步。
下面是該工具的使用示例:
% mysqlhot 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 TABLES;
使用BACKUP TABLE語句備份的數據表可用RESTORE TABLE重新載入到伺服器。
InnoDB和BDB資料庫也可用mysqlmp和直接拷貝法進行備份。使用直接拷貝法時應注意需把組成InnoDB和BDB資料庫的所有文件都拷貝下來,如InnoDB的.frm文件、日誌文件和表空間配置文件;BDB的數據文件、日誌文件等。
使用鏡像機制進行備份,我們可用SLAVE STOP語句掛起從伺服器的鏡像,在從伺服器上通過直接拷貝法或其它工具製作備份。備份完成,用SLAVE START重新啟動鏡像,從伺服器重新與主伺服器同步,接收備份時主伺服器所做的修改。
在MySQL中沒有為資料庫重命名的命令,但我們可用mysqlmp轉儲資料庫,再創建一個新的空資料庫,把轉儲文件載入到該新資料庫,這樣就完成資料庫重命名的工作。如:
% mysqlmp old_db >db.sql #轉儲db資料庫數據
% mysqladmin create new_db #新建一個空的資料庫
% mysql new_db < db.sql #把db資料庫的數據載入到新的資料庫中
% mysqladmin drop old_db #刪除舊的資料庫
一個更簡單的重命名資料庫的方法是直接修改資料庫目錄名,但該方法不適用於InnoDB和BDB資料庫。注意,在更名後,需在許可權表中更新相關數據表信息,需執行以下語句:
mysql> UPDATE db SET db='new_db' WHERE db='old_db';
mysql> UPDATE tables_priv SET db='new_db' WHERE db='old_db';
mysql> UPDATE columns_priv SET db='new_db' WHERE db='old_db';
mysql> UPDATE host SET db='new_db' WHERE db='old_db';
⑵ 如何導出mysql資料庫到sql文件
方法如下:
1.在本地建一個與資料庫同名的資料庫。
2.選擇navicat中連接伺服器的資料庫,在菜單欄選擇工具-->數據傳輸。
3.在彈出的的窗口中「源」部分就是你要導出的源資料庫,「目標」就是本地的資料庫,點擊左下角全選後,再點擊開始按鈕。
4.點擊確定。
5.點擊關閉。
拓展資料:
導出資料庫用mysqlmp命令(注意mysql的安裝路徑,即此命令的路徑):
導出數據和表結構:mysqlmp
-u用戶名
-p密碼
資料庫名
>
數據名.sql#/usr/local/mysql/bin/
mysqlmp
-uroot
-p
abc
>
abc.sql,敲回車後會提示輸入密碼。
⑶ mysql如何導出、導入資料庫和表,詳細一點
你是要導出什麼樣的格式的?
這里推薦一款軟體 Navicat 8.2 MySQL
這是一款很不錯的mysql管理軟體,可以很好地處理mysql資料庫,可以遠程鏈接
有很多mysql數據備份工具和軟體,網路一下
⑷ mysql怎麼導出表結構
通過Navicat 工具,然後連接上庫後,右鍵導出表結構
⑸ mysql 怎樣導出一個表的結構和數據
具體方法步驟如下:
1、使用一個MySQL管理工具:SQLyog,點擊菜單欄「資料庫」下拉的最後一項:
2、要想轉成Excel格式的只需手動將該表復制到Excel中去。
⑹ mysql如何導出表結構為文本文件
Log File物理結構
log block結構分為日誌頭段、日誌記錄、日誌尾部
Block Header,佔用12位元組
Data部分
Block tailer,佔用4位元組
Block Header
這個部分是每個Block的頭部,主要記錄的塊的信息
Block Number,表示這是第幾個block,佔用4位元組,是通過LSN計算得來的,佔用4位元組
Block data len,表示該block中有多少位元組已經被使用了,佔用2位元組
First Rec offet,表示該block中作為第一個新的mtr開始的偏移量,佔用2位元組
Checkpoint number,表示該log block最後被寫入時的檢查點的值,佔用4位元組
⑺ mysql導出資料庫幾種方法
1、確保我們的資料庫已經正確的安裝在電腦上了,首先打開命令行窗口,win+R快捷鍵打開運行窗口,輸入cmd。
⑻ 怎樣將MySQL資料庫結構和數據導出或導入
在使用MySQL時,有時需要從資料庫中導出數據,以便用在本地或其它的資料庫系統之上,或者將現有數據導入MySQL資料庫中。做MySQL資料庫的結構和數據的導出和導入。要用到MySQL的mysqlmp工具,基本用法是:
shell> mysqlmp [OPTIONS] database [tables]
如果不給定任何錶,整個資料庫將被導出。
如果想看到mysqlmp的版本支持的各個選項及含義,可以執行這條命令:
shell> mysqlmp --help
下面來談談mysqlmp支持的主要選項及含義:
--add-locks :在每個表導出之前增加LOCK TABLES並且之後UNLOCK TABLE。
--add-drop-table :在每個create語句之前增加一個drop table。
--allow-keywords :允許創建是關鍵詞的列名字。這由表名前綴於每個列名做到。
-c, --complete-insert :使用完整的insert語句(用列名字)。
-C, --compress :如果客戶和伺服器均支持壓縮,壓縮兩者間所有的信息。
--delayed :用INSERT DELAYED命令插入行。
-e, --extended-insert :使用全新多行INSERT語法。(給出更緊縮並且更快的插入語句)
-#, --debug[=option_string] :跟蹤程序的使用(為了調試)。
--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。
-pyour_pass, --password[=PASSWORD] :與伺服器連接時使用的口令。如果你不指定"="PASSWORD"部分,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 :冗長模式。列印出程序所做的更多的信息。
-w, --where='where-condition' :只導出被選擇了的記錄;注意引號是強制的。
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"
我們可以用mysqlmp作整個資料庫的一個備份:
mysqlmp --opt database > backup-file.sql
或者我們將一個資料庫的信息填充到另外一個MySQL資料庫:
mysqlmp --opt database | mysql --host=remote-host -C database由於mysqlmp導出的是完整的SQL語句,所以用mysql客戶程序很容易就能把數據導入了:
shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql
⑼ 如何將mysql表結構導出成Excel格式的
將mysql表結構導出成Excel格式的,以下介紹方法:
1.
用Navicat
for
MySQL工具打開,右鍵表選擇轉存sql文件
2.
填寫導出名,格式修改為xls
3.
導出成功,關閉窗口
4.
查看excel文件,可看到表結構,表信息
將數據導出成excel格式:
1.
用Navicat
for
MySQL工具打開表,對表查詢
2.
將查詢的結果進行導出,點擊導出向導,選出導出的excel格式
3.
選擇導出本地路徑
勾選上列名
4.
點擊開始
導出完成,點關閉
5.
可以打開剛才導出的excel
⑽ 如何導出伺服器mysql資料庫備份
一、導出資料庫用mysqlmp命令(注意mysql的安裝路徑,即此命令的路徑):
1、導出數據和表結構:
mysqlmp
-u用戶名
-p密碼
資料庫名
>
資料庫名.sql
#/usr/local/mysql/bin/
mysqlmp
-uroot
-p
abc
>
abc.sql
敲回車後會提示輸入密碼
2、只導出表結構
mysqlmp
-u用戶名
-p密碼
-d
資料庫名
>
資料庫名.sql
#/usr/local/mysql/bin/
mysqlmp
-uroot
-p
-d
abc
>
abc.sql
註:/usr/local/mysql/bin/
--->
mysql的data目錄
二、導入資料庫
1、首先建空資料庫
mysql>create
database
abc;
2、導入資料庫
方法一:
(1)選擇資料庫
mysql>use
abc;
(2)設置資料庫編碼
mysql>set
names
utf8;
(3)導入數據(注意sql文件的路徑)
mysql>source
/home/abc/abc.sql;
方法二:
mysql
-u用戶名
-p密碼
資料庫名
<
資料庫名.sql
#mysql
-uabc_f
-p
abc
<
abc.sql
建議使用第二種方法導入。
注意:有命令行模式,有sql命令