
1导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p database > databasesql
2导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p database users > wcnc_userssql
复制来的 希望对你有帮助 学会搜索 我只是帮你的问题原封不动的去google搜索了下
用命令实现备份
MySQLl提供了一个mysqldump命令,我们可以用它进行数据备份。
按提示输入密码,这就把tm数据库所有的表结构和# mysqldump -u root -p tm > tm_050519sql数据备份到tm_050519sql了,因为要总进行备份工作,如果数据量大会占用很大空间,这时可以利用gzip压缩数据,命令如下:
# mysqldump -u root -p tm | gzip > tm_050519sqlgz
系统崩溃,重建系统时,可以这样恢复数据:
# mysqldump -u root -p tm < tm_050519sql
从压缩文件直接恢复:
#gzip < tm_050519sqlgz | mysqldump -u root -p tm
当然,有很多MySQL工具提供更直观的备份恢复功能,比如用phpMyAdmin就很方便。但我认为,mysqldump是最基本、最通用的。
二、利用crontab,系统每天定时备份mysql数据库
利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的。
1、创建保存备份文件的路径/var/backup/mysqlbak
# mkdir -p /var/backup/mysqlbak
2、创建/usr/sbin/bakmysql文件
#vi /usr/sbin/bakmysqlsh
#!/bin/bash
# mysql备份脚本
cd /var/backup/mysqlbak/
dateDIR=`date +"%y-%m-%d"`
mkdir -p $dateDIR/data
for i in `/usr/local/>
每天定时备份mysql数据库任务,删除指定天数前的数据,保留指定天的数据;
需求:
1,每天4点备份mysql数据;
2,为节省空间,删除超过3个月的所有备份数据;
3,删除超过7天的备份数据,保留3个月里的 10号 20号 30号的备份数据;
#创建shell文件
vim backup_mysqlsh
mysqldump -uroot -p123456 --all-databases > /data/dbdata/mysqlbak/`date +%Y%m%d`sql
find /data/dbdata/mysqlbak/ -mtime +7 -name '[1-9]sql' -exec rm -rf {} \;
find /data/dbdata/mysqlbak/ -mtime +92 -name 'sql' -exec rm -rf {} \;
#创建定时任务
crontab –e
0 4 /data/dbdata/backup_mysqlsh
一般是即时备份。做主从。或者是每天增量备份。
本文是在linux下,mysql 4114版本下测试的,经过适当修改可能适合mysql 40,50及其其他版本
本文适合于没有启动复制功能的mysql,如果启动了复制,可能不需要采取这种备份策略或者需要修改相关参数
每个人的备份策略都可能不同,所以请根据实际情况修改,做到举一反三,不要照搬照抄,可能会造成不必要的损失
希望你明白这个脚本要干什么工作!
脚本描述
每7天备份一次所有数据,每天备份binlog,也就是增量备份
(如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)
作者对shell脚本不太熟悉,所以很多地方写的很笨 :)
开启 bin log
在mysql 41版本中,默认只有错误日志,没有其他日志可以通过修改配置打开bin log方法很多,其中一个是在/etc/mycnf中的mysqld部分加入:
[mysqld]
log-bin
这个日志的主要作用是增量备份或者复制(可能还有其他用途)
如果想增量备份,必须打开这个日志
对于数据库 *** 作频繁的mysql,这个日志会变得很大,而且可能会有多个
在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的)
所以如果从来不备份,开启日志可能没有必要
完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据
完整备份脚本
如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了
#!/bin/sh
# mysql data backup script
# by scud >
1
写个自动备份的脚本autobackupsh,内容如下
#!/bin/bash
mysqldump
-p
databasename
>
mydatasql
2
更改其为可执行文件
chmod
+x
autobackupsh
3
通过crontab让系统自动运行这个脚本就好了,如crontab
-e
0
0
/路径到/autobackupsh
第一个0表示分钟,第二个0表示0小时也就是零辰第三个表示每天,第四个表示每月,第五个表示每周
方法一、适合所有格式的mysql数据库,通过对数据库导出导进写个脚本定时执行:
1导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > /存放路径/wcncsql
2导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc users> /存放路径/wcnc_userssql
3导出一个数据库结构 mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >/存放路径/wcnc_dbsql
定义:
-d 没有数据
--add-drop-table 在每个create语句之前增加一个drop table
4导入数据库 常用source 命令 进入mysql数据库控制台:
如mysql -u root -p mysql>use 数据库
方法二、针对mysql数据表格式为MyISAM的
假如数据文件在/var/lib/mysql
那么直接写个脚本
cp -r /var/lib/mysql /备份到的文件夹路径
隔机备份用rsync增量,或定时完整备份。
------建备份文件夹:
mkdir mysql_data_bak
建脚本文件:
touch autobackupmysqlsh
打开文件
vi autobackupmysqlsh
在脚本中加入如下内容:
filename=`date +%Y%m%d`
/usr/bin/mysqldump -uroot -proot boss >>/home/mysql_data_bak/$filenamesql
检查有没安装crond,如果没有,先安装
yum -y install vixie-cron
yum -y install crontabs
启动服务 :service crond start
在CentOS系统中加入开机自动启动: chkconfig --level 345 crond on
crontab -e
加入内容:00 03 source /root/autobackupmysqlsh 每天凌晨3点运行此文件,对数据库进行备份
service crond restart
完成ok 别的问题可以参考>
以上就是关于在linux系统下如何备份mysql数据库全部的内容,包括:在linux系统下如何备份mysql数据库、LINUX下如何直接对MYSQL数据库进行备份、Linux 怎么shell脚本定时备份mysql数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)