美文网首页
linux下导入、导出mysql数据库的命令

linux下导入、导出mysql数据库的命令

作者: _Irving | 来源:发表于2019-03-08 11:07 被阅读0次

一、导出数据库用mysqldump命令

1.导出数据和表结构:
mysqldump -u用户名 -p(密码) 数据库名 > 数据库名.sql
mysqldump -uroot -p abc > abc.sql

2、只导出表结构
mysqldump -u用户名 -p(密码) -d 数据库名 > 数据库名.sql
mysqldump -uroot -p -d abc > abc.sql

二、导入数据库

1、首先建空数据库:create database abc;

2、导入数据库
   方法一:
use abc;
set names utf8;
source /home/abc/abc.sql;

方法二:
mysql -u用户名 -p 密码 数据库名 < 数据库名.sql
mysql -uroot -p abc < abc.sql

2、备份多个数据库

  语法:

mysqldump -u username -p --databases dbname2 dbname2 > Backup.sql

  加上了--databases选项,然后后面跟多个数据库

mysqldump -u root -p --databases test mysql > D:\backup.sql

  3、备份所有数据库

  mysqldump命令备份所有数据库的语法如下:

mysqldump -u username -p -all-databases > BackupName.sql

  示例:

mysqldump -u -root -p -all-databases > D:\all.sql

三、启用二进制日志

4、 启用二进制日志(binlog)

采用 binlog 的方法相对来说更灵活,省心省力,而且还可以支持增量备份。

启用 binlog 时必须要重启 mysqld。首先,关闭 mysqld,打开 my.cnf,加入以下几行:

server-id = 1

log-bin = binlog

log-bin-index = binlog.index

然后启动 mysqld 就可以了。运行过程中会产生 binlog.000001 以及 binlog.index,前面的文件是 mysqld 记录所有对数据的更新操作,后面的文件则是所有 binlog 的索引,都不能轻易删除。关于 binlog 的信息请查看手册。

需要备份时,可以先执行一下 SQL 语句,让 mysqld 终止对当前 binlog 的写入,就可以把文件直接备份,这样的话就能达到增量备份的目的了:

FLUSH LOGS;

如果是备份复制系统中的从服务器,还应该备份 master.info 和 relay-log.info 文件。

备份出来的 binlog 文件可以用 MySQL 提供的工具 mysqlbinlog 来查看,如:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001

该工具允许你显示指定的数据库下的所有 SQL 语句,并且还可以限定时间范围,相当的方便,详细的请查看手册。

恢复时,可以采用类似以下语句来做到:

/usr/local/mysql/bin/mysqlbinlog /tmp/binlog.000001 | mysql -uyejr -pyejr db_name

把 mysqlbinlog 输出的 SQL 语句直接作为输入来执行它。

如果你有空闲的机器,不妨采用这种方式来备份。由于作为 slave 的机器性能要求相对不是那么高,因此成本低,用低成本就能实现增量备份而且还能分担一部分数据查询压力,何乐而不为呢?

mysqlbinlog恢复数据

mysqlbinlog mysql-bin.000006 > 1.sql

查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复

mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

重新登录,查看数据,OK,已经成功恢复了

/usr/bin/mysqlbinlog binlog.000001 --start-position=1075 --stop-position=1194 | mysql -u root -p mysql

把 mysqlbinlog 输出的 SQL 语句直接作为输入来执行它。

如果你有空闲的机器,不妨采用这种方式来备份。由于作为 slave 的机器性能要求相对不是那么高,因此成本低,用低成本就能实现增量备份而且还能分担一部分数据查询压力,何乐而不为呢?

相关文章

网友评论

      本文标题:linux下导入、导出mysql数据库的命令

      本文链接:https://www.haomeiwen.com/subject/husktftx.html