如何备份linux下的mysql数据库

如何备份linux下的mysql数据库,第1张

1 写个自动备份的脚本autobackupsh,内容如下#!/bin/bashmysqldump -p databasename > mydatasql2 更改其为可执行文件 chmod +x autobackupsh3 通过crontab让系统自动运行这个脚本就好了,如crontab -e0 0 /路径到/autobackupsh第一个0表示分钟,第二个0表示0小时也就是零辰第三个表示每天,第四个表示每月,第五个表示每周

方法/步骤

1 在根目录下新建定时备份存储文件夹mkdir /mysql_backup

2新建备份的脚本vim /root/mysql_backupsh

3在mysql_backupsh中输入内容:

backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqldump -uroot -proot abc | gzip > $backupdir/abc$timesqlgzfind $backupdir -name “abcsqlgz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1

——————————————————————————————

说明:

backupdir = 备份文件存储文件夹time = 获取当前时间 年月日时(2014111417)2014年11月14日17点mysqldump 备份数据库指令 abc要备份的数据库find $backupdir -name “abcsqlgz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 删除5天前的备份文件

3 :wq 文件保存成功后

先按一下键盘上的 " esc " 然后输入 ” :wq “

执行一下脚本,看根目录下的mysql_backup文件夹是否有sqlgz后缀名的文件

/mysql_backupsh

写入每天的定时任务 修改 /etc/crontabvi /etc/crontab

按键盘上的"i",开始输入

02 4 root /root/mysql_backupsh

表示每天4点2分执行备份任务

先按一下键盘上的 " esc " 然后输入 ” :wq “ 表示保存

重新启动crond

service crond restart 或 /etc/rcd/initd/crond restart

把以前写的一个发你看看

脚本要求:编写shell脚本,每天凌晨1点备份td_oa库,到mysql-back目录,并将备份文件压缩,压缩名称为备份的日期,只保留连续七天的备份文件

#!/bin/bash

mysql-uroot-p123456-e"flushtableswithreadlock;"锁住表

/usr/local/mysql/bin/mysqlmp-uroot-p123456td_oa--flush-logs--single-transaction

mysql-uroot-p123456-e"unlocktables;"解锁

a=`/bin/date%Y-%m-%d`#在这里加上时间,压缩的时候加上时间,会失败。

echo$a

cd/gxl

/bin/tar-czf$atar/fjp/td_oasql

b="$atar"

cp-p$b/root/fjp

forcin`find/root/fjp-ctime7`

do

/bin/rm-rf$c

done

Copyright © 1999-2020, CSDNNET, All Rights Reserved

mysql

登录

Linux 关于MYSQL数据库命令(查看,备份等 *** 作) 原创

2016-04-19 11:22:33

fuwen1989

码龄7年

关注

1Linux系统下启动MySQL的命令:

/ect/initd/mysql start (前面为mysql的安装路径)

2linux下重启mysql的命令:

/ect/initd/mysql restart (前面为mysql的安装路径)

3linux下关闭mysql的命令:

/ect/initd/mysql shutdown (前面为mysql的安装路径)

4连接本机上的mysql:

进入目录mysql\bin,再键入命令mysql -u root -p, 回车后提示输入密码。

5打开数据库后的 *** 作命令

查看数据库的命令

mysql> show databases;

打开mydb库

mysql> use mydb;

查看数据表的详细结构

mysql> desc funtb;

新建数据库

mysql> create database school;

新建表

mysql> create table user01(

-> id varchar(20) NOT NULL,

-> userName varchar(10) NOT NULL,

-> age int(11) default'0',

-> sex char(2) NOT NULL default'm',

-> PRIMARY KEY (id)

-> )TYPE=InnoDB;

Query OK, 0 rows affected, 1 warning (002 sec)

mysql>desc student;

插入

mysql> insert into student(id,stuName) values('1','tomcat');

删除

mysql> delete from student where id='1';

删除表中所有数据

mysql> truncate table student;

删除表

mysql> drop table temp;

创建新用户并给予权限

mysql> grant all privileges on to dbuser@localhost identified by '1234'

with grant option;

更改Mysql用户密码

c:\Mysql50\bin>mysqladmin -u root -p password 1234

Enter password:

备份数据库及表(新版数据库不加3306端口号)

c:\mysql\bin\>mysqldump –u root –p mydb >d:\backupsql

执行此语句将把数据库mydb 备份到D盘的backupsql文件中

备份多个数据库表

c:\mysql\bin\>mysqldump –u root –p 3306 school user01 user >d:\backupsql

此句的意思是把school库中的user01表和user表的内容和表的定义备份到D盘backupsql文件中。

备份所有的数据库

c:\myql\bin>mysqldump –u root –p 3306 –all –database>d:backupsql

还原Mysql数据库

c:\mysql\bin\mysql –u root –p 3306 school

还原其中的一个表

mysql> source d:\bookssql;

退出Mysql连接

mysql>quit(exit)

windows关闭mysql服务

C:\mysql\bin>net mysql

1、你可以在数据库A做计划任务,用exp或者expdp导出,然后scp或者rsync到服务器B

例如计划任务0 0 /data1/backup/expdp_db_baksh;

expdp_db_baksh内容:

#!/bin/sh

~/bash_profile

dst=/data1/backup/db_bak

today=`date +%F`

bakfile=expdp_db_${today}dmp

logfile=expdp_db_${today}log

expdp 'user01/778899' DIRECTORY=expdp_dir1 parallel=2 \

dumpfile=$bakfile SCHEMAS=user01 logfile=$logfile COMPRESSION=all

scp -P22 $bakfile oracle@1721615:/data1/backup/db_bak

exit 0;

2、也可以在服务器B用exp直接导出数据

exp 'user01/778899@DB01' file=$bakfile FULL=Y log=baklog

3、开启归档模式,在服务器A用rman 做全备或增量备份,然后将备份同步到服务器B

指定路径

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/data1/rman/full_%d_%U';

全备份,默认Format

backup incremental level 0 database;

增量备份

backup incremental level 1 database;

将备份rsync 到服务器B

/usr/bin/rsync -av '-e ssh -p 22' oracle@1721611:/data1/rman /data1

4、开启归档模式,在服务器AB间配置DATAGURAD,同步数据

1导出整个数据库

mysqldump -u 用户名 -p 数据库名 > 导出的文件名

mysqldump -u wcnc -p database > databasesql

2导出一个表

mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

mysqldump -u wcnc -p database users > wcnc_userssql

一、每日23:00自动删除临时文件

首先查看一下crontab的任务列表:

crontab

-l

然后新建:

crontab

-e

添加一行:

00

03

rm

-rf

/>

以上就是关于如何备份linux下的mysql数据库全部的内容,包括:如何备份linux下的mysql数据库、如何在linux下实现mysql数据库每天自动备份、linux中mysql如何备份与恢复(mysql备份和恢复数据库命令)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10199460.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存