精华内容
下载资源
问答
  • 将windows下mysql数据进行冷备份并在linux下做数据恢复,这样做是什么问题的,至少我没有遇见问题。当然最是mysql版本保持一致,下面就是操作步骤。一、数据备份将WINDOWS下的mysql数据库文件整个复制至linux下/...

    将windows下mysql数据进行冷备份并在linux下做数据恢复,这样做是没什么问题的,至少我没有遇见问题。当然最是mysql版本保持一致,下面就是操作步骤。

    一、数据冷备份

    将WINDOWS下的mysql数据库文件整个复制至linux下/db/data目录。至于怎么样进行win→linux数据CP,这我在之前的文章中已经写过,在此不在重复。

    二、删除linux原本自带mysql

    rpm  -qa | grep  mysql(查看原来系统配有的mysql)

    rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps

    cd /etc/

    ls my*

    三、建立mysql 用户

    groupadd mysql

    useradd -g mysql mysql

    chown -R mysql:mysql /opt/data

    chmod -R 755 /opt/data

    四、yum install mysql

    安装mysql-service

    service mysqld start(开启mysql服务)

    五、修改my.cnf

    修改datadir

    添加 skip-grant-tables

    六、寻找mysql的bin文件/usr/bin

    ./mysqladmin -uroot password 'admin888'

    七、设置远程连接

    mysql -u root -p

    grant all on *.* to 'root'@'%' identified by 'admin888';

    使用客户端(phpadmin等客户端软件)远程连接数据库查看,迁移的数据库恢复没有。

    microblog.png?1转发至微博

    microblog.png?1转发至微博

    展开全文
  • 办法,最后从内网扒数据,一顿操作猛如虎,搞到晚上12点。还好最终修复了。(生产数据库),为了有效的阻止此类事件的再次发生,记录一下。1、开启binlog日志找到my.cnf位置并打开此文件,加...

    背景:昨天误操作数据库,执行了一个update操作,where条件没有生效,原因是set某值的时候value里有引号,导致悲剧的发生。悲剧发生之后第一时间查了一下binlog日志有没有打开,果然,没有打开。没办法,最后从内网扒数据,一顿操作猛如虎,搞到晚上12点。还好最终修复了。(生产数据库),为了有效的阻止此类事件的再次发生,记录一下。

    1、开启binlog日志

    找到my.cnf位置并打开此文件,加入下边命令

    log_bin=ONlog_bin_basename=/var/lib/mysql/mysql-binlog_bin_index=/var/lib/mysql/mysql-bin.index/**三个参数来指定,第一个参数是打开binlog日志第二个参数是binlog日志的基本文件名,后面会追加标识来表示每一个文件第三个参数指定的是binlog文件的索引文件,这个文件管理了所有的binlog文件的目录*/

    2、每天定时备份数据库

    如:

    cd /u02touch start.shvim start.sh 并将以下内容复制进去#备份整个数据库#设置要备份的表空格隔开databases="XXXXXX";#需要备份的数据库username="root"password='XXXXXX';logtime=$(date "+%m%d");mysqltime=$(date "+%H%M");mysqllogdir="/u02/log/mysql/"${logtime}mysqlbackdir="/u02/back/mysql/"${logtime}/${mysqltime};if  [ ! -d "${mysqllogdir}" ] ;thenmkdir -p ${mysqllogdir};fi ;if  [ ! -d "${mysqlbackdir}" ] ;thenmkdir -p ${mysqlbackdir};fi ;echo 【$(date "+%Y-%m-%d%H:%M:%S")】"触发了备份数据库操作"${databases} >>${mysqllogdir}/${logtime}.log 2>&1 &/usr/local/mysql/bin/mysqldump --defaults-extra-file=/etc/my.cnf -u${username} -hlocalhost -p${password} --databases ${databases} >${mysqlbackdir}/${databases}.sql#然后将此脚本在定时器中打开执行crontab -e输入: 03 20 * * 0-6 /u02/start.sh

    因领导担心数据库重启有问题,故没有将数据库重启,binlog暂时未生效。只能通过第二种方式备份了。

    3c1811301c50855dcf754d48ea3b480b.png
    展开全文
  • 之前也写过了,但是思路很简单,写个导出数据库结构和数据的sql,然后定时调度就ok了。于是搜了一发,看下xshell脚本的语法,以及Linux系统上怎么做定时任务:1、编写备份脚本#!/bin/sh cd /www/server/mysql/bin/...

        本人是个java程序员,朋友自己做了个游戏,前段时间因为数据挂了没有备份导致数据丢失,想找我帮忙写个定时备份的脚本。


    之前也没写过了,但是思路很简单,写个导出数据库结构和数据的sql,然后定时调度就ok了。于是搜了一发,看下xshell脚本的语法,以及Linux系统上怎么做定时任务:


    1、编写备份脚本

    #!/bin/sh
    cd /www/server/mysql/bin/
    DATE=`date +%Y%m%d_%H%M%S`
    mysqldump -uyouruser -pyourpassword databasename > /home/mysql_bak/mhzx_$DATE.sql
    cd /home/mysql_bak
    gzip databasename_$DATE.sql

    简单解释下脚本,第一步进入mysql的安装目录(换不换目录都可以的);第二步声明个变量——当前时间;第三步开始备份,导出指定库的表结构和数据;第四步是压缩文件。


    2、配置定时任务(crontab命令可以在指定的时间执行一个shell脚本或者一系列Linux命令

    crontab -e

    输入完以上命令会出来一个可编辑态文件,如下图:


    添加一个任务,表达式+空格+要执行的脚本的路径,这里的表达式有5个参数,和java里面的cron表达式差不多,从左往右依次为分钟、小时、天、月、星期

    编辑完保存就OK了

    展开全文
  • 脚本描述每7天备份一次所有数据,每天备份binlog,也就是增量备份.(如果数据少,每天备份一次完整数据即可,可能必要做增量备份)作者对shell脚本不太熟悉,所以很多地方写的很笨 :)开启 bin log在mysql 4.1版本中,默认...

    脚本描述

    每7天备份一次所有数据,每天备份binlog,也就是增量备份.

    (如果数据少,每天备份一次完整数据即可,可能没必要做增量备份)

    作者对shell脚本不太熟悉,所以很多地方写的很笨 :)

    开启 bin log

    在mysql 4.1版本中,默认只有错误日志,没有其他日志.可以通过修改配置打开bin log.方法很多,其中一个是在/etc/my.cnf中的mysqld部分加入:

    [mysqld]

    log-bin

    这个日志的主要作用是增量备份或者复制(可能还有其他用途).

    如果想增量备份,必须打开这个日志.

    对于数据库操作频繁的mysql,这个日志会变得很大,而且可能会有多个.

    在数据库中flush-logs,或者使用mysqladmin,mysqldump调用flush-logs后并且使用参数delete-master-logs,这些日志文件会消失,并产生新的日志文件(开始是空的).

    所以如果从来不备份,开启日志可能没有必要.

    完整备份的同时可以调用flush-logs,增量备份之前flush-logs,以便备份最新的数据.

    完整备份脚本

    如果数据库数据比较多,我们一般是几天或者一周备份一次数据,以免影响应用运行,如果数据量比较小,那么一天备份一次也无所谓了.

    下载假设我们的数据量比较大,备份脚本如下:(参考过网络上一个mysql备份脚本,致谢 :))

    #!/bin/sh

    # mysql data backup script

    # by scud http://www.jscud.com

    # 2005-10-30

    #

    # use mysqldump --help,get more detail.

    #

    BakDir=/backup/mysql

    LogFile=/backup/mysql/mysqlbak.log

    DATE=`date +%Y%m%d`

    echo " " >> $LogFile

    echo " " >> $LogFile

    echo "-------------------------------------------" >> $LogFile

    echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile

    echo "--------------------------" >> $LogFile

    cd $BakDir

    DumpFile=$DATE.sql

    GZDumpFile=$DATE.sql.tgz

    mysqldump --quick --all-databases --flush-logs

    --delete-master-logs --lock-all-tables > $DumpFile

    echo "Dump Done" >> $LogFile

    tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1

    echo "[$GZDumpFile]Backup Success!" >> $LogFile

    rm -f $DumpFile

    #delete previous daily backup files:采用增量备份的文件,如果完整备份后,则删除增量备份的文件.

    cd $BakDir/daily

    rm -f *

    cd $BakDir

    echo "Backup Done!"

    echo "please Check $BakDir Directory!"

    echo "copy it to your local disk or ftp to somewhere !!!"

    ls -al $BakDir

    上面的脚本把mysql备份到本地的/backup/mysql目录,增量备份的文件放在/backup/mysql/daily目录下.

    注意:上面的脚本并没有把备份后的文件传送到其他远程计算机,也没有删除几天前的备份文件:需要用户增加相关脚本,或者手动操作.

    增量备份

    增量备份的数据量比较小,但是要在完整备份的基础上操作,用户可以在时间和成本上权衡,选择最有利于自己的方式.

    增量备份使用bin log,脚本如下:

    #!/bin/sh

    #

    # mysql binlog backup script

    #

    /usr/bin/mysqladmin flush-logs

    DATADIR=/var/lib/mysql

    BAKDIR=/backup/mysql/daily

    ###如果你做了特殊设置,请修改此处或者修改应用此变量的行:缺省取机器名,mysql缺省也是取机器名

    HOSTNAME=`uname -n`

    cd $DATADIR

    FILELIST=`cat $HOSTNAME-bin.index`

    ##计算行数,也就是文件数

    COUNTER=0

    for file in $FILELIST

    do

    COUNTER=`expr $COUNTER + 1 `

    done

    NextNum=0

    for file in $FILELIST

    do

    base=`basename $file`

    NextNum=`expr $NextNum + 1`

    if [ $NextNum -eq $COUNTER ]

    then

    echo "skip lastest"

    else

    dest=$BAKDIR/$base

    if(test -e $dest)

    then

    echo "skip exist $base"

    else

    echo "copying $base"

    cp $base $BAKDIR

    fi

    fi

    done

    echo "backup mysql binlog ok"

    增量备份脚本是备份前flush-logs,mysql会自动把内存中的日志放到文件里,然后生成一个新的日志文件,所以我们只需要备份前面的几个即可,也就是不备份最后一个.

    因为从上次备份到本次备份也可能会有多个日志文件生成,所以要检测文件,如果已经备份过,就不用备份了.

    注:同样,用户也需要自己远程传送,不过不需要删除了,完整备份后程序会自动生成.

    访问设置

    脚本写完了,为了能让脚本运行,还需要设置对应的用户名和密码,mysqladmin和mysqldump都是需要用户名和密码的,当然可以写在脚本中,但是修改起来不太方便,假设我们用系统的root用户来运行此脚本,那么我们需要在/root(也就是root用户的home目录)创建一个.my.cnf文件,内容如下

    [mysqladmin]

    password =password

    user= root

    [mysqldump]

    user=root

    password=password

    注: 设置本文件只有root可读.(chmod 600 .my.cnf )

    此文件说明程序使用mysql的root用户备份数据,密码是对应的设置.这样就不需要在脚本里写用户名和密码了.

    自动运行

    为了让备份程序自动运行,我们需要把它加入crontab.

    有2种方法,一种是把脚本根据自己的选择放入到/etc/cron.daily,/etc/cron.weekly这么目录里.

    一种是使用crontab -e放入到root用户的计划任务里,例如完整备份每周日凌晨3点运行,日常备份每周一-周六凌晨3点运行.

    展开全文
  • 最近买了个云服务器搭了个博客,突然想到博客的数据安全问题,虽然这博客现在什么有价值的东西,毕竟以后也可能积累出一些经验和心得,养成良好的备份习惯是很有必要的。搜索了相关资料,过程其实很简单,从学习到...
  • 由于项目要求,必须要写一个定时任务来备份mysql数据库的数据。由于之前的时候从来没有接触过linux脚本命令,所以对我来说就是简直了。办法,来查吧,查了半天,按照人家说的也写了半天,就是不行。后来找大牛给看...
  • 一行命令搞定mysql所有库备份问题 数据安全 Play more and more important role in our daily life! 耶!居然第一次查字典把英文打全了。。。屌丝中的战斗机啊! 老板要求我一条命令搞定所以数据库的备份。。 ...
  • 在实际项目中,数据库是要经常备份的,就是为了防止突发情况,前段时间,我的数据库就遭遇了入侵要支付B特比的,结果数据了,哎,还好当时只是个测试库,不过有了这次危机,也就开始意识到了这个问题了。...
  • 将windows下mysql数据进行冷备份并在linux下做数据恢复,这样做是什么问题的,至少我没有遇见问题。当然最是mysql版本保持一致,下面就是操作步骤。一、数据备份将WINDOWS下的mysql数据库文件整个复制至linux下/...
  • 我说没有啊,他说最好弄一个自动备份的吧,万一哪天数据没了,那可就悲催了。我一想也是。于是在网上找了一下,看到一个利用linux 自带的定时任务来实现mysql自动定时备份的,感觉不错,于是就弄了一个。下面就开始...
  • 数据备份非常重要,在单服务器时代(还做集群架构),每天自己去导一遍数据库保存起来,实在是太麻烦,而且容易忘,那么如何来解决这个问题呢?解决方案mysqldump -u[用户名] -p[密码] [数据库名称] > /backup/db/...
  • mysql数据备份今天遇到一个很傻逼的问题,有人登上开发服务器,不知是有意还是无心;把mysql里面的库全部删除了。。。那个人结果如何,我们就不作讨论了。。。办法我只能写个shell脚本,用crontab跑下定时;做些...
  • 搭建两台MySQL服务器,实现主主复制做双机热备份 环境 主数据库1: 192.168.1.39 主数据库2: 192.168.1.40 mysql版本都是5.7.25, for linux 数据库准备 保证两个数据库中的库和数据是一致的 要点 主主...
  • java备份MySQL (windows linux)

    千次阅读 2009-12-08 18:01:00
    作为初级的管理员,每天都要备份数据,自动的任务不会设置,于是‘基本靠手’,这样不但繁琐,还保不齐甲流隔离了,有手处使。 所以写个java类吧,加载到SPRING程序的自动运行任务中。思路就是使用java调用系统的...
  • 作为初级的管理员,每天都要备份数据,自动的任务不会设置,于是‘基本靠手’,这样不但繁琐,还保不齐甲流隔离了,有手处使。 所以写个java类吧,加载到SPRING程序的自动运行任务中。思路就是使用java调用系统的...
  • 在实际项目中,数据库是要经常备份的,就是为了防止突发情况,前段时间,我的数据库就遭遇了入侵要支付B特比的,结果数据了,哎,还好当时只是个测试库,不过有了这次危机,也就开始意识到了这个问题了。...
  • 使用备份文件恢复大文件编辑器,glogg-latest-x86_64-setup通过该文件打开备份文件,虽然过程稍慢,但是能够打开,且正常读取编辑信息,要恢复的数据量不大时采取是问题的,但是如果表几十万行,操作起来就比较...
  • 备份数据库,也应该进行异地备份,因为假如这个城市发生了不可挽回的灾难,整个城市都处于灾难中,那在这个城市的数据肯定全了,如果做了异地备份,那数据还可以找回。 备份数据库其实就是crontab定时执行shell...
  • 数据库备份提高系统的高可用性和灾难恢复性,在数据库系统崩溃时,没有数据库备份办法找到数据 使用数据库备份还原数据库,是数据库崩溃时提供数据恢复最小代价的最优方案,如果让用户重新添加数据,代价未免太...
  • 今天犯了一个天大的错误,我一星期的实验数据了,我的手啊,怎么这么欠呢,眼睛怎么那么歪呢,看准,把delete看成select了,备份,没有办法,后来问谁都没有办法,自己从网上搜琢磨出点门道,有的好心人说...
  • 第三十一章 MySQL备份和恢复基础 一、备份的意义 运维就是作两件事:一个是保护公司的数据,另一个是网站7*24小时提供服务。那么,哪个更重要?要具体看业务和公司。 银行等金融业:数据最重要,一条都不能丢,但...
  • 打开mysql的bin log功能:对于mysql也是支持增量备份,但要打开mysql的bin log功能。我们修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安装目录/my.ini我们在[mysqld]下面加上log-bin一行代码,如下面...
  • 记一次MySQL中的data文件操作经历想拿到一个项目的最新的数据,做功能升级使用,备份一份数据同时也作为本地测试数据,文件有些大,我直接通过远程的phpmyadmin程序导出,不能愉快的玩耍,直接联系了IDC的同事帮忙导...
  • 搭建两台MySQL服务器,实现主主复制做双机热备份,宿主机Linux MYSQLLinux上用docker安装一个MySQL实现主主复制 环境 主数据库: 192.168.1.52:3306 主数据库: 192.168.1.52:13306 mysql版本都是5.6.49, for linux ...
  • CentOS7 MySQL定时自动备份实现

    万次阅读 2019-12-22 18:37:39
    本文70%转载自:linux mysql定时自动备份实现 生产环境遇到得最幸福得事情就是,某些场景办法避免去update或者delete的时候,某个参数没有注意。完蛋了 完蛋了,数据被我搞崩了怎么办,赶紧去运营找备份呀!运营...
  • 本文讲述的是在Linux环境下的Mysql 5.7的数据库整库备份,是作为我们去年数据库备份工具。 一、为什么选择XtraBackup 公司组建开发团队,以前公司系统外包出去。去年年初到了现在的公司,一顿检查吓了一大跳。.
  • mysql数据恢复

    2016-07-22 13:42:36
    对于mysql也是支持增量备份,但要打开mysql的bin log功能。 我们修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安装目录/my.ini 我们在[mysqld]下面加上log-bin一行代码,如下面。 [mysqld] log...

空空如也

空空如也

1 2 3 4
收藏数 63
精华内容 25
关键字:

linux备份mysql没数据

linux 订阅
mysql 订阅