Linux下MySQL的mysqldump自动备份设置(自己制作)
linux mysqldump 备份用法
linux mysqldump 备份用法Linux Mysqldump 备份用法:在Linux系统中,使用Mysqldump命令可以方便地备份MySQL数据库。
Mysqldump是一个用于导出MySQL数据库的命令行工具,可以将数据库内容以SQL语句的形式导出到文件中,方便日后恢复或迁移数据库。
下面是几个常用的Mysqldump备份用法:1. 完整备份:要备份整个MySQL数据库,可以使用以下命令:```mysqldump -u [用户名] -p [密码] [数据库名] > [备份文件路径]```例如,要备份名为'exampledb'的数据库,并将备份文件保存为'/home/user/backup.sql',可以运行以下命令:```mysqldump -u root -p exampledb > /home/user/backup.sql```执行该命令后,Mysqldump会将数据库exampledb的内容导出到指定路径下的backup.sql文件中。
2. 备份指定表:如果只想备份数据库中的特定表,可以使用以下命令:```mysqldump -u [用户名] -p [密码] [数据库名] [表名1] [表名2] ... > [备份文件路径]```例如,要备份exampledb数据库中的两个表'table1'和'table2',并将备份文件保存为'/home/user/backup.sql',可以运行以下命令:```mysqldump -u root -p exampledb table1 table2 > /home/user/backup.sql```执行该命令后,Mysqldump会将指定的表的内容导出到指定路径下的backup.sql文件中。
3. 定时备份:若要定期进行数据库备份,可以使用Linux的定时任务工具Crontab。
Linux服务器mysql数据库7天备份方案和脚本
Linux服务器mysql数据库7天备份方案和脚本一、简介本文档介绍在linux如何使用crontab+shell+scp的方式,部署mysql数据库数据7天定期备份,包括本机备份和远程服务器备份,保证数据安全性。
二、本机备份数据库1、编写shell脚本# vi db_bak.sh2、输入内容如下#!/bin/shbak_path=/usr/local/dbbak # 数据库数据文件备份目录date_now=`date +%Y%m%d` # 当前日期date_dep=`date -d "-1 week" +%Y%m%d` # 7天前日期cd $bak_pathecho "================Backup database================" >> logif [ -d $date_dep ]; thenecho "`date '+%F %H:%M:%S'` Remove deprecated folder $date_dep." >> logrm -rf $date_dep # 删除7天前备份数据fiif [ ! -d $date_now ]; thenmkdir $date_now # 创建当前日期备份数据文件夹ficd $date_nowecho "`date '+%F %H:%M:%S'` Begin to backuptestdb1." >> ../logmysqldump -utest -ptest --opt --default-character-set=utf8 testdb1|gzip > testdb1.sql.gz # 使用mysqldump备份testdb1数据库实例并压缩成gzip格式,test为数据库登录用户名和密码echo "`date '+%F %H:%M:%S'` Finish to backuptestdb1." >> ../logecho "`date '+%F %H:%M:%S'` Begin to backuptestdb2." >> ../logmysqldump -utest -ptest --opt --default-character-set=utf8 testdb2|gzip > testdb2.sql.gz # 使用mysqldump备份testdb2数据库实例并压缩成gzip格式,test为数据库登录用户名和密码echo "`date '+%F %H:%M:%S'` Finish to backuptestdb2." >> ../logecho "" >> ../log3、输入“:wq”保存退出4、为db_bak.sh文件增加执行权限# chmod 777 db_bak.sh5、使用root用户在crontab中增加定时任务# vi /etc/crontab6、在crontab最后面增加如下task01 3 * * * root ./usr/local/dbbak/db_bak.sh # 每天早上的3点01分执行此任务7、重启crontab# /etc/init.d/crond restart8、检验等第二天或者把执行时间改到当前时间后1分钟,看是否执行三、远程拷贝数据库备份文件1、先配置好两台服务器scp不需要密码,具体如何配置可以百度下,此处不再赘述2、创建shell脚本,并拷贝内容如下#!/bin/shbak_path=/usr/local/dbbak # 数据库数据文件备份目录date_now=`date +%Y%m%d` # 当前日期date_dep=`date -d "-1 week" +%Y%m%d` # 7天前日期server=192.168.0.150 # 数据库备份文件所在服务器port=22 # scp端口user=test # scp用户cd $bak_pathecho "========================Backupdatabase========================" >> logif [ -d $date_dep ]; thenecho "`date '+%F %H:%M:%S'` Remove deprecated folder $date_dep." >> logrm -rf $date_dep # 删除7天前备份数据fiif [ ! -d $date_now ]; thenmkdir $date_now # 创建当前日期备份数据文件夹ficd $date_nowecho "`date '+%F %H:%M:%S'` Begin to copy db backup files from server $server." >> ../logscp -P $port $user@$server:/$bak_path/$date_now/*.gz . echo "`date '+%F %H:%M:%S'` Finish to copy db backup files." >> ../logecho "" >> ../log3、在crontab增加如下定时task,并重启crontab# 01 5 * * * root ./usr/local/dbbak/rcp.sh # 注意执行时间应该比数据库服务器备份文件慢4、检验等第二天或者把执行时间改到当前时间后1分钟,看是否执行。
linux mysql备份语句
linux mysql备份语句在Linux上备份MySQL数据库可以使用以下命令:1.使用`mysqldump`命令备份整个数据库:```bashmysqldump -u username -p database_name > backup.sql```其中,`username`是要备份的数据库的用户名,`database_name`是要备份的数据库的名称,`backup.sql`是备份数据存储的文件。
2.使用`mysqldump`命令备份特定的表:```bashmysqldump -u username -p database_name table_name > backup.sql```其中,`username`是要备份的数据库的用户名,`database_name`是要备份的数据库的名称,`table_name`是要备份的表的名称,`backup.sql`是备份数据存储的文件。
3.如果要备份多个表,可以在命令中列出这些表的名称:```bashmysqldump -u username -p database_name table1 table2table3 > backup.sql```其中,`username`是要备份的数据库的用户名,`database_name`是要备份的数据库的名称,`table1`, `table2`, `table3`是要备份的表的名称,`backup.sql`是备份数据存储的文件。
4.可以使用`--databases`参数备份多个数据库:```bashmysqldump -u username -p --databases database1 database2 > backup.sql```其中,`username`是要备份的数据库的用户名,`database1`, `database2`是要备份的数据库的名称,`backup.sql`是备份数据存储的文件。
linux服务器mysql如何每天定时备份数据库
2
2.新建备份的脚本vim /root/mysql_backup.sh
3 3.在mysql_源自ackup.sh中输入内容: backupdir=/mysqlbackup time=` date +%Y%m%d%H`mysqldump -uroot -proot abc | gzip > $backupdir/abc$time.sql.gzfind $backupdir -name “abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1
——————————————————————————————
说明:
backupdir = 备份文件存储文件夹time = 获取当前时间 年月日时(2014111417)2014年11月14日17点mysqldump 备份数据库指令 abc要备份的数据库find $backupdir -name “abc*.sql.gz" -type f -mtime +5 -exec rm {} \; > /dev/null 2>&1 删除5天前的备份文件
4
3 :wq 文件保存成功后
先按一下键盘上的 " esc " 然后输入 ” :wq “
5
执行一下脚本,看根目录下的mysql_backup文件夹是否有.sql.gz后缀名的文件
./mysql_backup.sh
6
写入每天的定时任务 修改 /etc/crontabvi /etc/crontab
Linux系统下如何进行备份mysql数据库
Linux系统下如何进行备份mysql数据库Linux系统下如何进行备份mysql数据库?只有定期做好备份,才能在发生意外时把损失降到最低。
那么让我们一起来看看怎么进行备份和恢复吧。
一、用命令实现备份MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份。
# mysqldump -u root -p tm > tm_050519.sql按提示输入密码,这就把tm数据库所有的表结构和数据备份到tm_050519.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:# mysqldump -u root -p tm | gzip > tm_050519.sql.gz系统崩溃,重建系统时,可以这样恢复数据:# mysql -u root -p tm < tm_050519.sql从压缩文件直接恢复:#gzip < tm_050519.sql.gz | mysql -u root -p tm当然,有很多MySQL工具提供更直观的备份恢复功能,比如用phpMyAdmin就很方便。
但我认为,mysqldump是最基本、最通用的。
二、利用crontab,系统每天定时备份mysql数据库利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建保存备份文件的路径/var/backup/mysqlbak# mkdir -p /var/backup/mysqlbak2、创建/usr/sbin/bakmysql文件#vi /usr/sbin/bakmysql.sh输入#!/bin/bash# mysql备份脚本cd /var/backup/mysqlbak/dateDIR=`date +"%y-%m-%d"`mkdir -p $dateDIR/datafor i in `/usr/local/www/mysql/bin/mysql -uroot -plin31415926 -e "show databases" | grep -v "Database"`do/usr/local/www/mysql/bin/mysqldump -uroot -plin31415926 --opt $i >/var/backup/mysqlbak/$dateDIR/data/${i}_${dateDIR}.sql done3、修改文件属性,使其可执行# chmod +x /usr/sbin/bakmysql4、修改/etc/crontab# crontab -e在下面添加01 3 * * * root /usr/sbin/bakmysql表示每天3点钟执行备份这样每天就可以在/var/backup/mysqlbak下看到备份的sql文件了!如果linux下命令行代码使用不熟悉,可以使用多备份的客户端,插件及托管模式进行备份。
linux定时备份mysql数据库linux服务器应用 电脑资料
linux定时备份mysql数据库linux效劳器应用电脑资料利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,到达备份的目的,
1、创立保存备份文件的路径/mysqldata
#mkdir /mysqldata
2、创立/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysql
输入
rq=` date +%Y%m%d `
tar zcvf /mysqldata/mysql$rq.tar.gz /var/lib/mysql
或者写成
rq=` date +%Y%m%d `
mysqldump --all-databases -u root -p密码 >
/mysqldata/mysql$rq.sql
/var/lib/mysql是你数据库文件的目录,局部用户是
/usr/local/mysql/data,每个人可能不同
/mysqldata/表示保存备份文件的目录,这个每个人也可以根据自己的要求来做,
3、修改文件属性,使其可执行
# chmod +x /usr/sbin/bakmysql
4、修改/etc/crontab
#vi /etc/crontab
在下面添加
01 3 * * * root /usr/sbin/bakmysql
表示每天3点钟执行备份
5、重新启动crond
# /etc/rc.d/init.d/crond restart
完成。
这样每天你在/mysqldata可以看到这样的文件mysqlxx0619.tar.gz
你直接下载就可以了。
linux命令行备份mysql数据库linux服务器应用-电脑资料
linux命令行备份mysql数据库linux服务器应用-电脑资料备份MySQL数据库的命令1mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql备份MySQL数据库为带删除表的格式备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库,。
1mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql直接将MySQL数据库压缩备份1mysqldump -hhostname -uusername -ppassword databasename |gzip> backupfile.sql.gz备份MySQL数据库某个(些)表1mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > back upfile.sql同时备份多个MySQL数据库1mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > m ultibackupfile.sql仅仅备份数据库结构1mysqldump –no-data –databases databasename1 databasename2 databasename3 > st ructurebackupfile.sql备份服务器上所有数据库1mysqldump –all-databases > allbackupfile.sql还原MySQL数据库的命令1mysql -hhostname -uusername -ppassword databasename < backupfile.sql还原压缩的MySQL数据库1gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename将数据库转移到新服务器1mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename。
MySQL数据备份之mysqldump的使用详解
MySQL数据备份之mysqldump的使⽤详解mysqldump常⽤于MySQL数据库逻辑备份。
1、各种⽤法说明A. 最简单的⽤法:mysqldump -uroot -pPassword [database name]> [dump file]上述命令将指定数据库备份到某dump⽂件(转储⽂件)中,⽐如:mysqldump -uroot -p123 test > test.dump⽣成的test.dump⽂件中包含建表语句(⽣成数据库结构哦)和插⼊数据的insert语句。
B. --opt如果加上--opt参数则⽣成的dump⽂件中稍有不同:. 建表语句包含drop table if exists tableName. insert之前包含⼀个锁表语句lock tables tableName write,insert之后包含unlock tablesC. 跨主机备份使⽤下⾯的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb-C指⽰主机间的数据传输使⽤数据压缩D. 只备份表结构mysqldump --no-data --databases mydatabase1 mydatabase2 mydatabase3 > test.dump将只备份表结构。
--databases指⽰主机上要备份的数据库。
如果要备份某个MySQL主机上的所有数据库可以使⽤--all-databases选项,如下:mysqldump --all-databases> test.dumpE. 从备份⽂件恢复数据库mysql [database name] < [backup file name]2、结合Linux的cron命令实现定时备份⽐如需要在每天凌晨1:30备份某个主机上的所有数据库并压缩dump⽂件为gz格式,那么可在/etc/crontab配置⽂件中加⼊下⾯代码⾏:30 1 * * * root mysqldump -u root -pPASSWORD --all-databases | gzip > /mnt/disk2/database_`date '+%m-%d-%Y'`.sql.gz前⾯5个参数分别表⽰分钟、⼩时、⽇、⽉、年,星号表⽰任意。
MySQL数据库自动备份
MySQL数据库⾃动备份MySQL 数据库⾃动备份MySQL 备份命令⼿抖、写错条件、写错表名、错连⽣产库造成的误删库表和数据总有听说,那么删库之后除了跑路,还能做什么呢,当然是想办法恢复,恢复数据的基础就在于完善的备份策略。
下⾯就来介绍下MySQL⾃带备份⼯具mysqldump。
mysqldump 介绍⽤法Usage: mysqldump [OPTIONS] database [tables]OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]OR mysqldump [OPTIONS] --all-databases [OPTIONS]常⽤参数--opt 如果有这个参数表⽰同时激活了mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数,它可以给出很快的转储操作并产⽣⼀个可以很快装⼊MySQL服务器的转储⽂件。
当备份⼤表时,这个参数可以防⽌占⽤过多内存。
(反之使⽤ --skip-opt)--single-transaction 设置事务的隔离级别为可重复读,然后备份的时候开启事务,这样能保证在⼀个事务中所有相同的查询读取到同样的数据。
注意,这个参数只对⽀持事务的引擎有效,如果有 MyISAM 的数据表,并不能保证数据⼀致性。
(⾃动关闭选项 --lock-tables)--default-character-set=charset 指定转储数据时采⽤何种字符集。
(默认使⽤数据库的字符集)--master-data=2 表⽰在备份过程中记录主库的 binlog 和 pos 点,并在dump⽂件中注释掉这⼀⾏,在使⽤备份⽂件做新备库时会⽤到-x --lock-all-tables 锁表备份。
由于 MyISAM 不能提供⼀致性读,如果要得到⼀份⼀致性备份,只能进⾏全表锁定。
自动备份Mysql数据库脚本(For Windows & Linux)
自动备份Mysql数据库脚本(For Windows & Linux)数据库2009-11-24 09:52:13 阅读66 评论0 字号:大中小一、对于Windows主机==============假想环境:MySQL 安装位置:C:\MySQL论坛数据库名称为:bbsMySQL root 密码:123456数据库备份目的地:D:\db_backup\程序代码@echo offC:\MySQL\bin\mysqladmin -u root --password=123456 shutdownC:\MySQL\bin\mysqldump --opt -u root --password=123456 bbs > D:\db_backup\bbs.sqlC:\MySQL\bin\mysqld-nt将以上代码保存为backup_db.bat然后使用Windows的“计划任务”定时执行该脚本即可。
(例如:每天凌晨5点执行back_db.bat)二、对于Linux主机===========假想环境:MySQL 安装位置:/usr/local/mysql论坛数据库名称为:bbsMySQL root 密码:123456数据库备份目的地:/var/db_backup/程序代码#! /bin/bash/usr/local/mysql/bin/mysqladmin -u root --password=123456 shutdown/usr/local/mysql/bin/mysqldump --opt -u root --password=123456 bbs > /var/db_backup/bbs.sql /usr/local/mysql/bin/mysqld_safe --user=mysql &将上述代码保存在/usr/local/sbin/backup_db.sh对该脚本赋予执行权限:# chmod 755 /usr/local/sbin/backup_db.sh加入crontab中自动执行:# crontab -e加入:程序代码0 5 * * * /usr/local/sbin/backup_db.sh。
如何在MySQL中设置定时备份任务
如何在MySQL中设置定时备份任务引言:MySQL是一款常用的开源数据库管理系统,它的稳定性和性能一直备受业界认可。
在日常运维中,数据库备份是非常重要的一项工作,能够有效地保障数据库的安全性和可靠性。
本文将介绍如何在MySQL中设置定时备份任务,以提供数据库备份的自动化和规范化。
1. 确定备份策略在设置定时备份任务之前,我们首先需要确定备份策略。
备份策略包括备份频率、备份方式以及备份的目标位置等。
1.1 备份频率备份频率应根据业务需求和数据变动情况而定。
通常情况下,每天进行一次全量备份,再结合每小时或每分钟的增量备份,能够较好地满足大部分应用的需求。
1.2 备份方式在MySQL中,备份方式主要有逻辑备份和物理备份两种。
逻辑备份是指将数据库逻辑结构导出,以SQL脚本的形式进行备份。
而物理备份则是直接备份MySQL数据库文件。
根据实际情况,我们可以选择逻辑备份或物理备份,或者两者结合使用。
1.3 备份目标位置备份的目标位置应该选择一个安全可靠的位置,最好是在不同的物理服务器上或者使用云存储服务。
这样可以避免单点故障导致备份数据丢失的风险。
2. 使用cron定时任务在Linux系统下,可以使用cron定时任务来设置MySQL定时备份。
cron是一个在固定时间间隔下执行指定任务的Linux工具。
我们可以通过编辑cron配置文件,添加备份命令来实现定时备份任务的自动化。
2.1 登录MySQL首先,我们需要登录MySQL数据库。
在命令行中输入以下命令:```mysql -u username -p```这里的“username”是你的MySQL用户名。
如果是root用户,则可以省略“-u username”部分。
2.2 创建备份脚本接下来,我们需要创建一个备份脚本。
在命令行中输入以下命令:```vim backup.sh```在打开的编辑窗口中,输入以下备份命令:```#!/bin/bashmysqldump -u username -p password --all-databases | gzip > /path/to/backup/$(date +%Y%m%d%H%M%S).sql.gz```这里的“username”是你的MySQL用户名,“password”是你的MySQL密码,“/path/to/backup/”是你的备份目标位置,可以根据实际情况进行修改。
MySQL中的自动备份和定时任务
MySQL中的自动备份和定时任务在数据库管理中,备份是一项至关重要的任务。
数据丢失可能会对企业造成巨大的损失,因此定期备份数据库是非常必要的。
MySQL是一个广泛使用的关系型数据库管理系统,为了确保数据的安全性,MySQL提供了自动备份和定时任务功能。
一、自动备份自动备份是指在预定的时间和频率下自动进行数据库备份。
MySQL提供了多种方法来实现自动备份,下面介绍两种常用的方法。
1. 使用mysqldump命令mysqldump是MySQL自带的备份工具,它可以将整个数据库或者指定的表以SQL文件的形式进行备份。
我们可以通过编写脚本来定时执行mysqldump命令进行备份。
以下是一个示例脚本:```bash#!/bin/bashDATE=$(date +%Y%m%d%H%M%S)BACKUP_DIR="/path/to/backup/directory"MYSQL_USER="username"MYSQL_PASSWORD="password"DATABASE_NAME="database_name"mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $DATABASE_NAME > $BACKUP_DIR/$DATE.sql```以上脚本通过获取当前日期和时间作为备份文件名,在指定的目录下生成备份文件。
然后使用mysqldump命令将数据库备份到SQL文件中。
2. 使用第三方工具除了使用mysqldump命令外,还可以使用第三方工具来自动备份MySQL数据库。
这些工具通常提供了更多的备份选项和功能,比如增量备份、压缩备份等。
常用的第三方备份工具有Percona XtraBackup、MyDumper等。
二、定时任务定时任务是指在预定的时间和频率下自动执行某个任务。
Linux系统提供了cron服务来实现定时任务,我们可以通过编辑cron配置文件来设置定时任务。
linux下如何使用mysqldump对数据库进行备份
mysqldump命令mysql数据库导出要用到MySQL的mysqldump工具,基本用法是:shell> mysqldump [OPTIONS] database [tables]如果你不给定任何表,整个数据库将被导出。
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
1.1、mysqldump支持下列选项:--add-locks在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。
(为了使得更快地插入到MySQL)。
--add-drop-table在每个create语句之前增加一个drop table。
--allow-keywords允许创建是关键词的列名字。
这由表名前缀于每个列名做到。
-c, --complete-insert使用完整的insert语句(用列名字)。
-C, --compress如果客户和服务器均支持压缩,压缩两者间所有的信息。
--delayed用INSERT DELAYED命令插入行。
-e, --extended-insert使用全新多行INSERT语法。
(给出更紧缩并且更快的插入语句)-#, --debug[=option_string]跟踪程序的使用(为了调试)。
--help显示一条帮助消息并且退出。
LOAD DATA INFILE--fields-terminated-by=...--fields-enclosed-by=...--fields-optionally-enclosed-by=...--fields-escaped-by=...--fields-terminated-by=...这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。
Linux自动备份MYSQL方法
MYSQL定期备份是一项重要的工作,但人工操作太繁琐,也难避免有所疏漏,使用下面的方法即可让系统定期备份数据。
1、创建备份文件夹#cd /www#makedir backup2、编写运行脚本#vi autobackup写入以下内容:filename=’/bin/date +%Y%m%d’mysql_bin_dir/mysqldump –opt dataname-u user-ppassword| gzip >/www/mysqlbackup/name$filename.gz保存退出?说明:(1)mysql_bin_dir:mysql的bin路径;(2)dataname:数据库名;(3)user:数据库用户名;(4)password:用户密码;(5)name:自定义备份文件前缀标识。
如上例,将自动备份mysql数据库,并以gzip压缩方式存储,文件名为name20080101.gz的形式。
3、为脚本添加执行权限#chmod +x autobackup4、让crontab来完成定期执行的任务这一步中,Redhat的方法会不一样,后面专门给出。
编辑crontab:#vi /etc/crontab在最后一行中加入:01 5* * * root /www/autobackup每天5点运行脚本,也可以修改5为其他指定时间。
Redhat方法:Redhat的crontab采用按时间调用4个目录(/etc/cron.hourly:每小时;/etc/cron.daily:每天;/etc/cron.weekly:每周;/etc/cron.monthly:每月)中脚本出来运行的方式。
Redhat中只需要将刚才编辑的脚本复制到相应的目录即可。
5、重启crontab#/etc/r c.d/init.d/crond restart完成其实原理很简单,自己制作一个脚本,让Linux系统自动运行。
我们还可以再扩展一下,编辑一个自动备份网站文件的脚本,让Linux来完成,每天自动备份整个网站,等等……1、创建保存备份文件的路径/mysqldata#mkdir /mysqldata2、创建/usr/sbin/bakmysql文件#nano /usr/sbin/bakmysql输入:#!/bin/shfilename=’/bin/date +%Y%m%d’mysqldump --all-databases -uroot -p密码 > /shlar/mysqlbak/mysql.sql注:--all-databases 为备份全部数据库到mysqlbak下的mysql.sql文件中,如果把--all-databases替换为test,则只备份test数据库。
Linux命令高级技巧使用mysqldump备份和恢复MySQL数据库
Linux命令高级技巧使用mysqldump备份和恢复MySQL数据库在Linux中,使用mysqldump命令可以非常方便地备份和恢复MySQL数据库。
mysqldump是MySQL数据库中一个非常常用的命令行工具,它可以将整个数据库或者特定的表以SQL格式导出,并可以恢复这些导出的SQL文件来恢复数据库。
一、备份MySQL数据库要备份MySQL数据库,我们可以使用以下命令:```$ mysqldump -u 用户名 -p 密码数据库名 > 备份文件名.sql```其中,`用户名`是数据库的用户名,`密码`是对应用户名的密码,`数据库名`是要备份的数据库的名字,`备份文件名.sql`则是你希望生成的备份文件的名字和路径。
例如,如果我们要备份名为`mydatabase`的数据库,并将备份文件保存在`/home/user/backup.sql`,可以使用以下命令:```$ mysqldump -u root -p mydatabase > /home/user/backup.sql```执行该命令后,mysqldump会将数据库`mydatabase`的内容以SQL 语句的形式导出到`/home/user/backup.sql`文件中。
二、恢复MySQL数据库要恢复MySQL数据库,我们可以使用以下命令:```$ mysql -u 用户名 -p 密码数据库名 < 备份文件名.sql```其中,`用户名`是数据库的用户名,`密码`是对应用户名的密码,`数据库名`是要恢复的数据库的名字,`备份文件名.sql`则是要导入的备份文件的名字和路径。
例如,如果我们要将名为`mydatabase`的数据库从备份文件`/home/user/backup.sql`中恢复,可以使用以下命令:```$ mysql -u root -p mydatabase < /home/user/backup.sql```执行该命令后,mysql会将备份文件`/home/user/backup.sql`中的SQL语句执行,从而恢复数据库`mydatabase`的内容。
[转]Linux使用mysqldump完整备份数据库
来源:/s/blog_5fd841bf0100s4bf.html作者:清风闲客1、创建备份目录#mkdir -p /backup/mysql/daily2、启用二进制日志采用binlog 的方法相对来说更灵活,省心省力,而且还可以支持增量备份。
启用binlog 时必须要重启mysqld。
首先,关闭mysqld,打开/etc/f,加入以下几行:[mysqld]log-bin然后启动mysqld 就可以了。
运行过程中会产生HOSTNAME-bin.000001 以及HOSTNAME-bin.index3、设置crontab任务,每天执行备份脚本#crontab -e 加入以下内容,每天1:00备份数据库0 1 * * * /usr/local/bin/mysqlFullBackup.sh > /dev/null 2>&1mysqlFullBackup.sh 注释:#!/bin/sh# Name:mysqlFullBackup.sh# PS:MySQL DataBase Full Backup.# Write by:i.Stone# Last Modify:2007-11-17## Use mysqldump --help get more detail. ## 定义变量,请根据具体情况修改# 定义脚本目录scriptsDir=`pwd`# 定义数据库目录mysqlDir=/usr# 定义用于备份数据库的用户名和密码user=rootuserPWD=5545445sa# 定义备份目录dataBackupDir=/backup/mysql# 定义邮件正文文件eMailFile=$dataBackupDir/email.txt# 定义邮件地址eMail=tobo1233@# 定义备份日志文件logFile=$dataBackupDir/mysqlbackup.logDATE=`date -I`echo "" > $eMailFileecho $(date +"%y-%m-%d %H:%M:%S") >> $eMailFilecd $dataBackupDir# 定义备份文件名dumpFile=mysql_$DATE.sqlGZDumpFile=mysql_$DATE.sql.tar.gz# 使用mysqldump备份数据库,请根据具体情况设置参数$mysqlDir/bin/mysqldump -u$user -p$userPWD \--opt --default-character-set=utf8 --extended-insert=false \--triggers -R --hex-blob --all-databases \--flush-logs --delete-master-logs \--delete-master-logs \-x > $dumpFile# 压缩备份文件if [[ $? == 0 ]]; thentar czf $GZDumpFile $dumpFile >> $eMailFile 2>&1 echo "BackupFileName:$GZDumpFile" >> $eMailFileecho "DataBase Backup Success!" >> $eMailFilerm -f $dumpFile# Delete daily backup files.cd $dataBackupDir/dailyrm -f *# Delete old backup files(mtime>2).$scriptsDir/rmBackup.sh# 如果不需要将备份传送到备份服务器或备份服务器为Windows,请将标绿的行注释掉# Move Backup Files To Backup Server.#适合Linux(MySQL服务器)到Linux(备份服务器)$scriptsDir/rsyncBackup.shif (( !$? )); thenecho "Move Backup Files To Backup Server Success!" >> $eMailFileelseecho "Move Backup Files To Backup Server Fail!" >> $eMailFilefielseecho "DataBase Backup Fail!" >> $emailFilefi# 写日志文件echo "--------------------------------------------------------" >> $logFile cat $eMailFile >> $logFile# 发送邮件通知cat $eMailFile | mail -s "MySQL Backup" $eMail。
linux mysql 备份
1、创建保存备份文件的路径/mysqldata#mkdir /usr/local/mysqldata2、创建/usr/sbin/bakmysql文件#vim /usr/sbin/bakmysql输入rq=` date +%Y%m%d `mysqldump --database 要备份的数据库名-u root -p密码> /usr/local/mysqldata/mysql$rq.sql3、修改文件属性,使其可执行# chmod +x /usr/sbin/bakmysql4、修改/etc/crontab#vi /etc/crontab在下面添加01 23 * * * root /usr/sbin/bakmysql表示每天23点钟1分执行备份5、重新启动crond# /etc/init.d/crond restart完成。
这样每天你在/usr/local/mysqldata可以看到这样的文件mysql20080507.sql你直接下载就可以了。
一、用命令实现备份首页进入mysql的bin目录1、备份数据#mysqldump -uusername -ppassword discuz > discuz_2010-04-01.sql这样就把discuz数据库所有的表结构和数据备份到discuz_2010-04-01.sql里了,如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:#mysqldump -uusername -ppassword discuz | gzip > discuz_2010-04-01.sql.gz系统崩溃,重建系统时,可以这样恢复数据:#mysql -uusername -ppassword discuz < discuz_2010-04-01.sql从压缩文件直接恢复:#gzip < discuz_2010-04-01.sql.gz | mysql -uusername -ppassword discuz二、利用crontab,系统每天定时备份mysql数据库1、创建保存备份文件的路径/mysqldata#mkdir /mysqldata2、创建/usr/sbin/bakmysql文件输入以下内容:mysqldump -umysql -p51uptry uptry | gzip > /mysqldata/uptry`date 空格+%Y-%m-%d_%H%M%S`.sql.gz3、修改文件属性,使其可以执行#chmod +x /usr/sbin/bakmysql4、修改/etc/crontab在下面添加01 3 * * * root /usr/sbin/bakmysql表示每天3点钟执行备份crontab使用说明5、重新启动crond#/etc/rc.d/init.d/crond restart完成。
linux下mysql数据备份命令
linux下mysql数据备份命令Linux下对数据库备份是很重要的,下面由店铺为大家整理了linux下mysql数据备份命令的相关知识,希望对大家有帮助!linux的mysql数据备份命令详解1.比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldump命令格式如下:[root@linuxsir01 root]# mysqldump -u root -p linux > /root/linux.sqlEnter password:在这里输入数据库的密码通过上面的命令,我们要明白两件事,首先备份数据库是要以数据库管理员的身份备份;其次:备份目的地是/root,备份的文件名是linux.sql。
其实备份的位置和文件名,根据自己的情况来定。
文件名可以自己来取,路径也可以自己来安排;2.比如我想把linux的数据库备份到/home/beinan,数据库的文件名为linuxsir031130.sql,所以应该输入如下的命令。
[root@linuxsir01 root]#mysqldump -u root -p linux > /home/beinan/linuxsir031130.sqlEnter password:在这里输入数据库管理员root的数据库密码如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:#mysqldump -u root -p tm | gzip > tm_050519.sql.gz这样我们到/home/beinan目录下就能发现mysql中名为linux 的数据库的备份文件linuxsir031130.sql综上所述,我们学习时要学会变通。
补充:linux下mysql数据恢复命令首先我们还是要操作上面几个过程,比如添加数据库管理员(如果您没有添加过mysql数据库管理员的话),创建数据库等。
比如我们要把在/home/beinan这个目录中的linuxsir031130.sql这个备份,导入名为linux的数据库中,应该如下操作;[root@linuxsir01 root]#mysql -u root -p linux < /home/beinan/linuxsir031130.sqlEnter password:在这里输入密码如果机器好,数据库比较小,几分钟就好了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L i n u x下M y S Q L的m y s q l d u m p自动备份设置下面是小脚本的步骤:
#c d/u s r/w e b//该目录可根据个人意愿任意选择
#m k d i r m y s q l b a c k//建立备份文件夹,名称可任意选择
#c h m o d–R777m y s q l b a c k//赋予权限
#v i m y s q l a u t o b a c k.s h//生成脚步文件
这个m y s q l a u t o b a c k u p.s h的文件里写入以下内容:
f i l e n a m e=`d a t e+%y%m%d`
/s e r v e r/m s y q l/b i n/m y s q l d u m p--o p t D B n a m e-u D B u s e r -p D B p a s s w o r d|g z i p> /w w w/m y s q l b a c k/d a t e n a m e$f i l e n a m e.g z
【注:/s e r v e r/m s y q l/b i n是指m y s q l的b i n路径,我安装m y s q l时候的路径是/s e r v e r/m y s q l,所以b i n路径根据m y s q l安装路径的不同而不同。
D B n a m e是指数据库名称。
D B u s e r是指数据库用户名。
D B p a s s w o r d是指数据库用户密码。
】
保存退出,然后把这个文件赋予可执行的权限:
#c h m o d777m y s q l a u t o b a c k.s h//赋予脚本权限
然后编辑c r o n t a b:
#v i/e t c/c r o n t a b
在最后一行加入以下内容:
1016***r o o t/w w w/m y s q l a u t o b a c k.s h
【“10”表示第10分钟,“16”表示16点,“***”三个“*”分别代表日、月、星期】
然后重启一下c r o n t a b:
#/e t c/r c.d/i n i t.d/c r o n d r e s t a r t
这样就搞定了,以后每天临晨的16点10分就会自动执行一次m y s q l自动备份的命令。