方式一:mysqldump
使用mysqldump进行数据备份
在MYSQL 的bin目录下cmd,然后执行以下语句,
c
mysqldump -u用户名 -p --single-transaction 数据库名称> 目的文件.sql
然后输入密码。
例如: mysqldump -upenghai1 -p --single-transaction commercial_air_conditioner > commercial_air_conditioner_dump.sql
数据量过大的话会执行一段时间,不要动即可。
commercial_air_conditioner_dump.sql文件即为数据库最后的文件内容。
在目标服务器运行SQL文件
将目的文件.sql 复制到目标服务器MYSQL 的bin目录下,然后cmd,然后执行以下语句:
c
mysql -u用户名 -p 数据库名称< 目的文件.sql
然后输入密码。
例如:mysql -upenghai1 -p commercial_air_conditioner < commercial_air_conditioner_dump.sql
如果不想放置在MYSQL 的bin目录,"<"符号后面的文件名称则为全路径名称。
方式二:使用binlog
(ps:迁移时发现binliog没开,后续实际应用后补全该方式。有需要的同学具体可参考MySQL使用binlog日志恢复数据 )
先检查是否启用了binlog
c
SHOW VARIABLES LIKE 'log_bin';
value的内容为on则表示启用。
找到包含你需要恢复数据的事件的binlog文件和位置。
使用mysqlbinlog工具来解析binlog并将数据导出。
将导出的SQL语句应用到数据库中以恢复数据。
在MYSQL 的bin目录下cmd,然后执行以下语句
c
# 查看所有的binlog日志文件
mysql> SHOW BINARY LOGS;
# 查看特定binlog文件的内容
mysql> SHOW BINLOG EVENTS IN 'mysql-bin.000001';
# 导出特定时间范围内的binlog事件
mysqlbinlog --start-datetime="2021-03-01 00:00:00" --stop-datetime="2021-03-02 00:00:00" \
--database=dbname mysql-bin.000001 > binlog_output.sql
# 导出特定位置范围的binlog事件
mysqlbinlog --start-position=123 --stop-position=456 \
--database=dbname mysql-bin.000001 > binlog_output.sql
# 应用导出的SQL语句到数据库以恢复数据
mysql -u username -p dbname < binlog_output.sql