mysql数据库备份

linux服务器安装的mysql备份,适用场景:涉及到数据库迁移,从一台服务器迁移到另一台服务器,比如我在阿里云买了一年的使用权,安装了数据库,结果到期了续费有点小贵,所以打算做数据迁移,指的就是这种,既备份数据库对象结构,还备份数据库数据。
对innodb表,备份如下

一、在linux环境做备份,

首先要查找你的mysql安装在哪里了

ps -ef|grep mysql

加粗样式
进入目录:cd /app/mysql/bin ,然后在bin目录下写导出数据库的命令:
导出数据文件到服务器某指定路径,然后用命令导入指定的数据库

第一种:适用于数据量不大的情况

导出:将数据库passport 的数据做备份,导出到服务器磁盘/root/temp/上,以 passport20190121.sql 作为存储文件。

mysqldump -uroot -p --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob --single-transaction passport > /root/temp/passport20190121.sql;
回车后会提示敲入数据库连接密码

导入:将/root/temp/passport20190121.sql; 路径下的数据库文件导入passport190121数据库

mysql -uroot -p passport190121 < /root/temp/passport20190121.sql;
回车后会提示敲入数据库连接密码
第二种:适用于数据量比较大的情况,数量级不确定,要以实际使用为准,亲测比第一种快。

导出:将数据库zkbc 的数据做备份,导出到服务器磁盘/root/temp/上,以 zkbc20190121.sql 作为存储文件。
数据量太大可以不看日志什么的,直接备份,去掉--opt 还有 --extend--insert=false 【没有指定 --quick 或 --opt 选项,则会将整个结果集放在内存中。如果导出大数据库的话可能会出现问题。我们这里去掉了–opt,但加上了-q,该项在导出大表时很有用,它强制 mysqldump 从服务器查询取得记录直接输出而不是取得所有记录后将它们缓存到内存中。】

mysqldump -uroot -p --default-character-set=utf8   --triggers -R --hex-blob --single-transaction -q  zkbc > /root/temp/zkbc20190121_1.sql;
回车后会提示敲入数据库连接密码

导入:将/root/temp/zkbc190121.sql; 路径下的数据库文件导入 zkbc_new数据库,导入的两种方式①②如下
①可以登录mysql ,输入mysql -uroot -p密码,如图
mysql数据库备份_第1张图片
在mysql连接的当前会话里,输入如下命令

set session sql_log_bin=0;  
use zkbc_new
source /root/temp/zkbc190221.sql

②直接执行脚本即可,不用连接mysql数据库
直接在服务器创建两个文件,

.sh用来在linux环境执行的脚本,内容:

#!/bin/bash
/usr/bin/mysql -uroot -p'msds007'  < /root/temp/import_sql_file.txt

第二个文件import_sql_file是.txt文件,只是.sh文件用来加载的,文件内容为要执行的导入指令:

set session sql_log_bin=0;
use zkbc_new;
source /root/temp/zkbc190121.sql

想导入的话,直接执行脚本 ./import_db.sh 即可.

  • 以上导出语句如果有想知道的具体什么意思,可以参看https://blog.csdn.net/lcathm/article/details/54925906 或者 http://blog.51cto.com/kerry/177570 实际上以上写法基本就是标准的了
二、我的电脑不是linux系统弄,是在mysql第三方连库工具上查看linux服务器安装的mysql数据库的数据的。

这种是很快的,也比较推荐,经过测试,对表数据的删除是可以恢复的,但是修改不可以恢复,所以建议想恢复某表a,则先清空表a,然后恢复备份即可。
mysql数据库备份_第2张图片

你可能感兴趣的:(mysql,linux,数据库)