linux上mysql库的迁移-程序员宅基地

技术标签: shell  操作系统  数据库  

两种办法

第一种:

首先将/var/lib/mysql这个目录备份起来,

在恢复的时候直接将mysql目录下的数据库拷贝到另外一个系统的数据库中即可,另外还需拷贝/mysql/下的ibdata1这个文件到另外一个系统数据库/var/lib/mysql目录下,如该目录下有,就覆盖。

后重新启动mysql数据库,若打开页面出现系统错误,请重新启动服务器(reboot)

 此种方法有局限容易出错,不推荐使用

第二种

原理: 备份+还原

1.

在原机器上:

mysqldump -u root -p 数据库名称 > 备份文件名称
提示输入密码,开始备份。

出现mysqldump: Got error: 1045: Access denied for user 'root'@'localhost' (using password: YES) when trying to connect的问题,解决方法是,

#mysql -u root -p
>update mysql.user set password=password('123') where user='root';
>quit

出现mysqldump: Got error: 1045: Access denied for user 'smb_behavior'@'localhost' (using password: YES) when trying to connect的问题,解决方法是,

#vi /etc/my.cnf 在[mysql]添加skip-grant-tables,保存退出
#mysql –u root
>update mysql.user set password=password('123') where user='root';
>quit

在目标机上:

#mysql -u root -p
>create database 数据库名称;
#mysql -u root -p 数据库名称 < 备份文件名称

出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)问题,解决方法是,

#mysql -u root -p
>grant all on *.* to root@localhost  identified by '123';
>quit 



2. 直接从目标机器上备份并还原到本地机器上

>mysqldump --no-defaults -u[username] -p[password] --host=[目标机器ip] --opt databasename1|mysql -u[username] -p[password] -C databasename2




3.

3.1     结合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个参数分别表示分钟、小时、日、月、年,星号表示任意。date '+%m-%d-%Y'得到当前日期的MM-DD-YYYY格式。

3.2     一个完整的Shell脚本备份MySQL数据库示例

#vi /backup/backup.sh#!bin/bash
cd /backupecho "You are in backup dir"
mv backup* /oldbackup
echo "Old dbs are moved to oldbackup folder"
File = backup-$Now.sql
mysqldump -u user -p password database-name > $File
echo "Your database backup successfully completed"

     上面脚本文件保存为backup.sh,并且系统中已经创建两个目录/olcbackup和/backup。每次执行backup.sh时都会先将/backup目录下所有名称为backup开头的文件移到/oldbackup目录。

      为上述脚本制定执行计划如下:

#crontab -e30 1 * * * /backup.sh

3.3     mysqldump全量备份+mysqlbinlog二进制日志增量备份

    从mysqldump备份文件恢复数据会丢失掉从备份点开始的更新数据,所以还需要结合mysqlbinlog二进制日志增量备份。确保my.ini或者my.cnf中包含下面的配置以启用二进制日志,或者mysqld ---log-bin:

[mysqld]
log-bin=mysql-bin

mysqldump命令必须带上--flush-logs选项以生成新的二进制日志文件:

mysqldump --single-transaction --flush-logs --master-data=2 > backup.sql

 这样生成的增量二进制日志文件比如为mysql-bin.000003,那么恢复数据时如下:

shell> mysql -uroot -pPwd < backup_sunday_1_PM.sql

shell> mysqlbinlog mysql-bin.000003 | mysql -uroot -pPwd

此外mysqlbinlog还可以指定--start-date、--stop-date、--start-position和--stop-position参数,用于精确恢复数据到某个时刻之前或者跳过中间某个出问题时间段恢复数据,直接摘录MySQL文档说明中相关内容如下:

5.9.3.1. 指定恢复时间
对于MySQL 4.1.4,可以在mysqlbinlog语句中通过--start-date和--stop-date选项指定DATETIME格式的起止时间。举例说明,假设在今天上午10:00(今天是2005年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:
mysqlbinlog --stop-date="2005-04-20 9:59:59" /var/log/mysql/bin.123456 \
     | mysql -u root -pmypwd
该命令将恢复截止到在--stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:

mysqlbinlog --start-date="2005-04-20 10:01:00" /var/log/mysql/bin.123456 \
     | mysql -u root -pmypwd \
在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。

5.9.3.2. 指定恢复位置
也可以不指定日期和时间,而使用mysqlbinlog的选项--start-position和--stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。操作方法为:
mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00" \
      /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
该命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面内容:

mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456 \
    | mysql -u root -pmypwd 
 
mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456 \
    | mysql -u root -pmypwd \ 
上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间。


转载于:https://my.oschina.net/zmf/blog/336615

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34337265/article/details/91574556

智能推荐

Python AES_ECB_PKCS5加密代码_python rsa pkcs5-程序员宅基地

文章浏览阅读2.8k次。#!/usr/bin/env python# coding=utf-8# Created by slowchen on 2018/1/10 13:48.import base64import refrom Crypto.Cipher import AESclass AESECB: def __init__(self, key): self.key =_python rsa pkcs5

数据结构课设:中国计算机设计大赛赛事统计_编程大赛统计数据-程序员宅基地

文章浏览阅读328次。本次课程设计要求协助中国大学生计算机设计大赛江苏省组委会,设计一款赛事管理系统,实现赛务相关的数据管理及信息服务该系统能够为省级赛事管理解决以下问题:(1)能够管理各参赛队的基本信息(包含参赛队编号,参赛作品名称,参赛学校,赛事类别,参赛者,指导老师),赛事类别共11项(参见大赛官网包括增加、删除、修改参赛队伍的信息。(2)从team.txt中读取参赛队伍的基本信息,实现基于二叉排序树的查找。_编程大赛统计数据

cocos2d-js:cc.LoaderScene.preload_cocos2d js preload 替换-程序员宅基地

文章浏览阅读3.5k次。cc.LoaderScene()最基本的加载一个场景cc.LoaderScene.preload(res,function,tag)是可以在加载一个场景的过程中,返回一个加载资源进度的进度条,在完成资源加载后,回调function函数。_cocos2d js preload 替换

NIFI源码Maven打包遇到问题记录_nifi1.25.0 idea-程序员宅基地

文章浏览阅读764次,点赞12次,收藏15次。2.文件swagger-ui-3.12.0.tar.gz解压后放在D:\DataCenter\code\nifi-rel-nifi-1.25.0\nifi-registry\nifi-registry-core\nifi-registry-web-api\target下,需解压,target文件没有时,自己创建;这个C:\Users\z00050365\AppData\Local\Temp目录下,下载了一个commons-daemon-1.2.1-bin-windows.zip包,去网上没下下来。_nifi1.25.0 idea

深度学习经典网络解析图像分类篇(六):GoogLeNet_辅助分类器-程序员宅基地

文章浏览阅读3.6k次,点赞8次,收藏21次。深度学习经典网络解析(五):VGG1.背景介绍2.GoogLeNet创新点3.串联结构(如VGG)存在的问题4.GoogLeNet4.1 网络架构4.1.1 INPUT层4.1.2 Conv 1×14.1.2 Conv 3×34.1.3 Inception 3a层4.1.4 Inception 3b层4.1 Inception模块4.2 取消全连接层4.3 辅助分类器5. 思考5.1 平均池化向量化与直接展开向量化有什么区别?5.2 利用1x1卷积进行压缩会损失信息吗?6.GoogLeNet相关论文及下载地_辅助分类器

Acwing-基础算法课笔记之搜索与图论(bellman-ford算法)-程序员宅基地

文章浏览阅读1k次,点赞24次,收藏24次。bellman-ford算法适用于负权边的图,求 1 到 n 的最多经过k条边的最短距离。123dist0∞\infty∞∞\infty∞⇓\Downarrow⇓123dist01∞\infty∞⇓\Downarrow⇓123dist012此过程中出现了串联的结果,所以是错误的,此时需要进行备份操作。i < k;i++){//backup存的是上一次迭代的结果j < m;j++){

随便推点

八年级上学期计算机教学计划,八年级信息技术教学计划-程序员宅基地

文章浏览阅读130次。一、学生基本情况及指导思想本计划针对八年级四个班的全体学生,根据学校工作计划和中学信息技术《课程指导意见》以及学生的具体情况,明确中学信息技术课程的任务:培养学生对信息技术的兴趣和意识,让学生了解或掌握信息技术基本知识和技能,使学生具有获取信息、传输信息、处理信息和应用信息技术手段的能力,形成良好的信息技术素养,为他们适应信息社会的学习、工作和生活打下必要的基础。通过上年的学习,学生对办公软件例..._八年级上册计算机课程内容

蓝桥试题集-基础练习-BASIC-18~21-矩阵面积交-完美的代价-数的读法-Sine之舞_basic-21-程序员宅基地

文章浏览阅读144次。BASIC-18 矩阵面积交资源限制时间限制:1.0s 内存限制:512.0MB问题描述平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入格式输入仅包含两行,每行描述一个矩形。 在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出格式输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 32 2 4 4样例输出_basic-21

ExtJS4.2学习(15)树形表格-程序员宅基地

文章浏览阅读203次。本节为ExtJS表格学习的最后一节,学完我将学习表单与输入控件的内容。树形表格(TreeGrid)同时具备树形的分级结构和表格的丰富内容。先引入扩展组件,老规矩://引入扩展组件 Ext.Loader.setConfig({enabled: true}); Ext.Loader.setPath('Ext.ux', '../Ext..._extjs treegrid

opencv3 视频稳像_stabframe未响应-程序员宅基地

文章浏览阅读4.1k次,点赞6次,收藏24次。OpneCV3.x中提供了专门应用于视频稳像技术的模块,该模块包含一系列用于全局运动图像估计的函数和类。结构体videostab::RansacParams实现了RANSAC算法,这个算法用来实现连续帧间的运动估计。videostab::MotionEstimatorBase是基类中所有全局运动估计方法,videostab::MotionEstimatorRansacL2描述了一个健壮的RANSA_stabframe未响应

山东大学软件学院2022网络安全期末试题_山东大学软件安全期末考试-程序员宅基地

文章浏览阅读1k次。这次考的是b卷,比较难,我有几个地方没有复习到一共十道题,顺序记不清了题目1.异常检测和误用检测是什么有什么优缺点2.dmz是什么和作用3.sql注入和csrf及其防护4.ipsec的传输模式和隧道模式 这个我没复习到5.syn cookie原理6.举例缓冲区溢出攻击7.ip flux和domain flux 画图解释8.符号化执行是什么,用途和优缺点9.病毒的四个部分10.设计算法实现消息传递的真实性和完整性并画图..._山东大学软件安全期末考试

基于SpringBoot+Vue的高校教师工作量管理系统(源码+文档+部署+讲解)-程序员宅基地

文章浏览阅读914次,点赞20次,收藏20次。高校教师工作量管理系统采用B/S架构,数据库是MySQL。网站的搭建与开发采用了先进的java进行编写,使用了springboot框架。该系统从两个对象:由管理员和教师来对系统进行设计构建。主要功能包括:个人信息修改,对教师、教师工作量、通知公告等功能进行管理。本系统是一个高效的、动态的、交互友好的高校教师工作量管理系统。本系统在设计过程中,很好地发挥了该开发方式的优势,让实现代码有了良好的可读性,而且使代码的更新和维护更加的方便,操作简单,对以后的维护减少了很多麻烦。_高校教师工作量管理系统

推荐文章

热门文章

相关标签