<span >备份库中所有的表
MysqLdump
<span >备份库中部分表
MysqLdump -uroot -p123 db1 table1 table2 > D:\db1-table1-table2.sql <span >#<span >将数据库db1里的表table1和table2备份到D盘下名称为db1-table1-table2.sql的文件中
<span >#<span >多库备份
MysqLdump -uroot -p123 --databases db1 db2 MysqL db3 >D:\db1db2MysqL_db3.sql <span >#<span >将数据库db1,db2,MysqL,db3备份到D盘中
<span >#<span >备份所有库
MysqLdump -uroot -p123 --all-databases >D:\all.sql <span >#<span >将root用户的所有数据库全部备份到D盘中,文件名为all.sql
<span >#
<span >恢复单个库:<span ><span >方法一:不需要进入MysqL程序,直接在终端输入MysqL -uroot -p123 db1 <<span > D:\db1.sql
<span >#<span >方法二:
<span >从终端先进入MysqL程序,然后输入
MysqL><span > use db1;
MysqL><span > source D:\db1.sql
<span >#<span >注:如果备份/恢复单个库时,可以修改sql文件
DROP database <span >if<span > exists school;
create database school;
use school;
<div >
>MysqL -uroot -e +------------------+| tables_in_school |+------------------+| || course || score || student || teacher |+------------------+
三、备份/恢复案例数据库备份/1. /backup/`date +%F`_all.sql2. 3. 插入数据 //4. MysqL> set sql_log_bin=0; //>恢复:1. <span >#<span > mysqlbinlog 最后一个binlog > /backup/last_bin.log
2. MysqL> set sql_log_bin=<span >0;
MysqL> source /backup/2014-02-13_all.sql //<span >恢复最近一次完全备份
MysqL> source /backup/last_bin.log //<span >恢复最后个binlog文件<span >#<span >数据库备份/恢复实验二:如果有误删除
<span >备份:
1. MysqLdump -uroot -p123 --all-databases > /backup/
date +%<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">F
_all.sql2. MysqL -uroot -p123 -e <span >'<span >flush logs<span >' //<span >截断并产生新的binlog
3. 插入数据 //<span >模拟服务器正常运行
4. drop table db1.t1 //<span >模拟误删除
5. 插入数据 //<span >模拟服务器正常运行
恢复:
1. <span >#<span > mysqlbinlog 最后一个binlog --stop-position=260 > /tmp/1.sql <span >
MysqL> source /backup/2014-02-13_all.sql //<span >恢复最近一次完全备份
MysqL> source /tmp/1.log //<span >恢复最后个binlog文件
MysqL> source /tmp/2.log //<span >恢复最后个binlog文件
注意事项:
1<span >. 完全恢复到一个干净的环境(例如新的数据库或删除原有的数据库)
2. 恢复期间所有SQL语句不应该记录到binlog中
[root@egon ~]<span >#<span > vim /MysqL_back.sql<span ><span >!/bin/bash
back_dir=/<span >backup
back_file=date +%<span https://m.jb51.cc/tag/color/" target="_blank" >color</a>: #000000;">F
_all.sql
user=<span >root
<span >pass=123
<span >if [ ! -d /<span >backup ];then
mkdir -p /<span >backup
fi
<span >#<span > 备份并截断日志
MysqLdump -u${user} -p${<span >pass} --events --all-databases > ${back_dir}/<span >${back_file}
MysqL -u${user} -p${<span >pass} -e <span >'<span >flush logs<span >'
<span >#<span > 只保留最近一周的备份
<span >cd $back_dir
find . -mtime +7 -<span >exec rm -<span >rf {} \;
手动测试:
[root@egon ~]<span >#<span > chmod a+x /MysqL_back.sql
[root@egon ~]<span >#<span > chattr +i /MysqL_back.sql
[root@egon ~]<span >#<span > /MysqL_back.sql
<span >
配置cron:
[root@egon ~]<span >#<span > crontab -l
0 2 * /MysqL_back.sql
ERROR 1290 (HY000): The MysqL server <span >is running with the --secure-file-<span >priv option so it cannot execute this statement
MysqL
> show variables like <span >'<span >%secure%<span >'; <span >#<span >查看相关设置+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| require_secure_transport | OFF |
| secureauth | ON |
| securefile_priv | NulL |
+--------------------------+-------+<span >
set
<span >global secure_auth=<span >OFF;set secure_auth=<span >OFF;
以上两种直接更改设置的方法都是行不通的,需要更改配置文件
[MysqLd]
secure-file-priv=<span >'<span >E:\<span >'<span >
在配置文件里更改配置后,即可执行导出 *** 作
MysqL 命令导出文本文件
示例:
<span >
load data infile 导入文本文件(要按照表结构导入)
MysqL> load data infile <span >'<span >E:\student1.txt<span >'<span >
into table school.student1
fIElds terminated by <span >'<span >,<span >'<span >
(optionally enclosed by <span >'<span >”<span >'<span >)
lines terminated by <span >'<span >\n<span >';
以上是内存溢出为你收集整理的mysql数据备份与恢复全部内容,希望文章能够帮你解决mysql数据备份与恢复所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)