萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> MySQL數據導入導出實例教程手冊

MySQL數據導入導出實例教程手冊

mysql中數據庫或數據的導入導出我們用到命令有mysqldump與source命令了,它們分別有自己的優點與作用,下面我來介紹利用mysqldump導出數據與利用source導入備份的數據。

mysqldump是mysql自帶的一個數據導入導出工具,其官方注釋為:

shell> mysqldump [options] db_name [tbl_name ...]
shell> mysqldump [options] –databases db_name …
shell> mysqldump [options] –all-databases

使用mysqldump命令將整個數據庫導出

 代碼如下 復制代碼 mysqldump -h 127.0.0.1 -P 3306 -u root -p123456 crazyant –skip-lock-tables > crazyant.sql

其中-h後面是主機名,-P後面是端口號,-u後面是用戶名,-p後面是密碼;crazyant是要導出的數據庫名;

由於導出過程中出現了這個錯誤:

mysqldump: Got error: 1044: Access denied for user 'root'@'127.0.0.1' to database 'crazyant' when using LOCK TABLE

所以在最後面,我加上了–skip-lock-tables這個選項,就沒有錯誤了。

mysqldump命令導出時設定不需要導出的表

有時候一個數據庫中有一些表我們不想導出,這時候可以使用mysqldump的–ignore-table命令來設定過濾的表,該參數的用法如下:

–ignore-table=name Do not dump the specified table. To specify more than one
                      table to ignore, use the directive multiple times, once
                      for each table.  Each table must be specified with both
                      database and table names, e.g.,
                      –ignore-table=database.table.

可以看出其用法:

• –ignore-table=database.table
•每次只能指定一個表,如果要指定多個表,該選項需要寫多次
使用實例:

 代碼如下 復制代碼

mysqldump -h 127.0.1.1 -P 3306 -u root -p123456 crazyant –skip-lock-tables –ignore-table=crazyant.table1 –ignore-table=crazyant.table2 –ignore-table=crazyant.table3 –ignore-table=crazyant.table4 > crazyant.sql

使用mysqldump命令只導出1個表或指定表的方法

也可以在mysqldump的database後面跟上要1個要導出的表,來只導出單個表。

 代碼如下 復制代碼

mysqldump -h 127.0.0.1 -P 3306 -u root -p123456 –skip-lock-tables crazyant  table_a >dump_table_a.sql

也可以寫上多個要導出的表,以空格分開它們即可:

 代碼如下 復制代碼

mysqldump -h 127.0.0.1 -P 3306 -u root -p123456 –skip-lock-tables crazyant table_a table_b >dump_two_tables.sql

可以看出,只要用“database_name tablename1 tablename2 tablename3”的方式寫出導出數據庫的表即可。

使用mysqldump命令只導出表結構的方法

mysqldump還有一個選項能夠只導出表的結構,而不導出表的內容:

-d, –no-data       No row information

使用實例:

 代碼如下 復制代碼

mysqldump –opt -d  -h 127.0.0.1 -P 3306 -u root -p123456 crazyant –skip-lock-tables

使用source命令導入數據

使用mysql的source命令,可以將mysqldump的導出結果直接Load到數據表裡面;

使用方法如下:

 代碼如下 復制代碼

> mysql -h 127.0.1.1 -P 3306 -u root -p123456

mysql>  use crazyant;

mysql> source /home/crazyant.net/mysqldump_crazyant.sql

這樣就完成了導入,如果是全量導入,有時候有必要使用truncate table的方式先將數據清空;

總結

使用MySQL自帶的mysqldump和source命令,能夠很方便的將數據庫的數據導出,也能夠將導出的數據導入到庫中;

copyright © 萬盛學電腦網 all rights reserved