前言
如果使用图形化界面,那么可以通过几个点击即可导入、导出。本文是假定你没有安装那些如Navicat等GUI管理软件。
场景
假设在电脑A和电脑B中都装有MySQL数据库管理系统,并且在电脑A的MySQL中有2个数据库,分别为:shop1和shop2。在shop1和shop2数据库中都存有3张表,分别为:user、good、cart,并且这三张表中都存有一些数据。
需求及解决方法
1、将电脑A的MySQL中的全部数据库(即shop1和shop2)以及这些数据库的每一张表的表结构(数据字典)导出到d:/all_db_without_data.sql文件中。
mysqldump -uroot -proot -d --all-databases > d:/all_db_without_data.sql
其中-uroot 表示用户名为root,-proot 表示密码为root,-d表示with no data(如果没有-d,则表示将数据也一同导出),--all-databases表示选中全部数据库
2、将电脑A的MySQL中的全部数据库(即shop1和shop2)、这些数据库的每一张表的表结构、每一张表的全部数据导出到d:/all_db_with_data.sql文件中。
mysqldump -uroot -proot --all-databases > d:/all_db_with_data.sql
没有-d,则表示将数据也一同导出;--all-databases表示选中全部数据库
3、将电脑A的MySQL中的shop1数据库以及这个数据库中所有表的表结构导出到d:/shop1_without_data.sql文件中。
mysqldump -uroot -proot -d -B shop1 > d:/shop1_without_data.sql
-B shop1 表示选中shop1数据库,利用-B参数可以选择多个数据库,形如:-B name1 name2 name3
4、将电脑A的MySQL中的shop1数据库、这个数据库中所有表的表结构、每一张表的全部数据导出到d:/shop1_with_data.sql文件中。
mysqldump -uroot -proot -B shop1 > d:/shop1_with_data.sql
5、将电脑A的MySQL中的shop1数据库、这个数据库中user表和good表的表结构导出到d:/user_without_data.sql文件中。
mysqldump -uroot -proot -d -B shop1 -T user good > d:/user_without_data.sql
-T user good 表示选中user表和good表,利用-T参数可以选择多个表,形如:-T name1 name2 name3
6、将电脑A的MySQL中的shop1数据库、这个数据库中user表和good表的表结构、user表和good表的全部数据导出到d:/user_with_data.sql文件中。
mysqldump -uroot -proot -B shop1 -T user good > d:/user_with_data.sql
7、将电脑A中导出的文件(比如d:/test.sql)导入到电脑B的MySQL中。
进入mysql命令行(即mysql -uroot -proot后)
source d:/test.sql
总结
- 导出:mysqldump -u[用户名] -p[密码] [-d] [--all-databases] [-B db1 db2 db3 ...] [-T tb1 tb2 tb3 ...] > [output_file_name]
- 导入:source [file]