海天无影's Blog

MySQL mysqldump数据导出详解

/ 0评 / 0

在更换服务器的时候,数据库的导出导入是避免不了的环节,之前海天都是直接将服务器中的mysql数据库文件复制到新服务器,这种方法虽然简单,但是如果mysql的版本一致,很容易出现数据无效的情况。

后来海天就手动的使用phpmyadmin导出导入,操作麻烦不说,如果数据库文件过大,导出导入都会出错。

直到今天海天发现了这个神器,mysqldump。下面就介绍一些mysqldump常见的功能和操作。

PS:以下代码都以账号密码都为root举例,实际使用时记得更改。

导出所有数据库

mysqldump -uroot -proot --all-databases >/tmp/all.sql

导出db1、db2两个数据库的所有数据

mysqldump -uroot -proot --databases db1 db2 >/tmp/user.sql

导出db1中的a1、a2表

mysqldump -uroot -proot --databases db1 --tables a1 a2  >/tmp/db1.sql

导出指定表只能针对一个数据库进行导出,且导出的内容中和导出数据库也不一样,导出指定表的导出文本中没有创建数据库的判断语句,只有删除表-创建表-导入数据

导出db1表a1中id=1的数据

mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1'  >/tmp/a1.sql

如果多个表的条件相同可以一次性导出多个表

只导出表结构不导出数据 --no-data

mysqldump -uroot -proot --no-data --databases db1 >/tmp/db1.sql

跨服务器导出导入数据

mysqldump --host=h1 -uroot -proot --databases db1 |mysql --host=h2 -uroot -proot db2

将h1服务器中的db1数据库的所有数据导入到h2中的db2数据库中,db2的数据库必须存在否则会报错

以上就是mysqldump常用的一些导出功能,但其实mysqldump的功能远不止导出这一点功能,可以在很多mysql数据操作中使用到,更深入的使用方法,这里就不多说了。

数据库导出了怎么导入,可以使用source,具体看这篇文章《mysql 数据库导入,一定要试试source命令导入》。或者直接使用

mysql -uroot -proot < db1.sql

进行导入。

发表评论

电子邮件地址不会被公开。