導航:首頁 > 程序命令 > mysql導出表結構命令

mysql導出表結構命令

發布時間:2022-07-27 17:45:57

⑴ 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命令

    閱讀全文

    與mysql導出表結構命令相關的資料

    熱點內容
    如何刪掉多餘的伺服器 瀏覽:220
    c編程演算法 瀏覽:833
    堵車如何緩解壓力 瀏覽:17
    喜鵲快貸app怎麼了 瀏覽:263
    海龜編輯器積木編程怎麼安裝 瀏覽:185
    程序員理發店生意怎麼樣 瀏覽:603
    程序員羅技 瀏覽:180
    軟考初級程序員課程2021下載 瀏覽:491
    杭州程序員奶奶 瀏覽:880
    不聽命令造成錯誤 瀏覽:981
    kool系統源碼 瀏覽:610
    流氓app在哪裡看 瀏覽:98
    域名購買了怎麼指向伺服器 瀏覽:121
    安卓手機如何讓照片顏色反轉 瀏覽:859
    怎麼下載卓睿安手機版 瀏覽:514
    h3crange命令 瀏覽:468
    php前景和python 瀏覽:338
    php壓縮圖片內存大小 瀏覽:495
    在哪裡可以查看雲伺服器的信息 瀏覽:70
    python讀取非txt文件 瀏覽:799