在操作MYSQL中注意两个概念:

干什么都记得 flush privileges;

grant all on *.* to root@'localhost' identified by 'password'  WITH GRANT OPTION 

记得要加WITH GRANT OPTION

=========================

2,RDS MySQL 使用开源软件 Xtrabackup 对 MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。

将下载好的文件*.tar.gz 放到linux服务上

mkdir /mysql2/ cd /mysql2/

tar -izxvf *.tar.gz

innobackupex --defaults-file=./backup-my.cnf --apply-log ./

rm -rf mysql    #这里删除mysql目录是为了以后连接数据库权限

3,关键在这里了,我们需要配置my.cnf ,如果说你之前linux服务器就已经有一个实例了,那么现在你还要创建一个实例(也就是一台多个mysql服务)

/usr/local/lnmp/mysql/bin/mysql_install_db --user=mysql --datadir=/mysql2/

vi /etc/my.cnf

[client] 
default-character-set = utf8

[mysqld_multi]
mysqld = /mysql/bin/mysqld_safe
mysqladmin = /mysql/bin/bin/mysqladmin
user = root

[mysqld1]
port = 3306
socket = /tmp/mysql.sock
datadir = /date/
pid-file = /date/mysql1.pid
log-error = /date/mysql_error.log
skip-locking
max_connections = 600
event_scheduler=ON
server-id = 1

[mysqld2]
port = 3307
socket = /tmp/mysql2.sock
datadir = /mysql2
pid-file = /mysql2/mysql.pid
log-error = /date/mysql_error2.log
innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1048576000
      #这三行很重要,在/mysql2/mysql-my.cnf中有,复制过来就可以了,不然innodb表打不开

启动实例

/mysql/bin/mysqld_multi
--defaults-file=/etc/my.cnf start 1

/mysql/bin/mysqld_multi
--defaults-file=/etc/my.cnf start 2

停止实例方法

kill -9 `ps -ef | grep 3307 | grep -v
grep | awk '{print $2}' | xargs`

修改mysql数据库用户名

mysql -uroot -pxxxx -S /tmp/mysql2.sock

grant all on *.* to root@'localhost'
identified by 'xxxx'  WITH GRANT OPTION

4,以上第3步是针对一台多个实例,如果就一个实例的话就不需要那么麻烦了,第3步就是如下了:

vi /etc/my.cnf

[mysqld]

********

innodb_data_file_path=ibdata1:200M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=1048576000
    #只要加这三行就可以了

********

~~~~~~~~~~~~

重置密码的方法:

方法一:
1.关闭mysql
   # service mysqld stop
2.屏蔽权限
   # mysqld_safe --skip-grant-table
   屏幕出现: Starting demo from .....
3.新开起一个终端输入
   # mysql -u root mysql
   mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
   mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
   mysql> \q

~~~~~~~~~~~~~

还原时的注意事项:

MySQL报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

解决办法:

mysql> set global read_only=0;
(关掉新主库的只读属性)

flush privileges;

set global read_only=1;(读写属相)

flush privileges;

~~~~~~~~~~~~~~~~~

阿里的操作指南:

1. 概述
 
RDS MySQL 使用开源软件 Xtrabackup 对 MySQL 数据库进行备份。需要下载该软件,然后使用该软件进行恢复。
 
1.1 需要安装的软件
目前RDS使用Xtrabackup的版本是2.0.6,点击下载地址 并选择与你操作系统版本对应的原件。
例如,我们这里下载RHEL6/x86_64版本。并使用rpm命令进行安装:
sudo rpm -ivh percona-xtrabackup-2.0.6-521.rhel6.x86_64.rpm
 
1.2 快速恢复手册
这是一个快速恢复说明,适用于了解Linux环境和RDS管理控制台的用户。详细说明参考本文后面"step by step说明"。这里假设从管理控制台下载的备份文件为backup-20130819.tar.gz,恢复过程在/SOME-USER-DIR下进行。
 
解压备份文件(*需要加-i参数*)
   cp BAK.tar.gz /SOME-USER-DIR
   cd /SOME-USER-DIR
   tar -izxvf BAK.tar.gz
 
恢复数据到一致的状态
  innobackupex --defaults-file=./backup-my.cnf --apply-log ./
  这一步如果看到类似如下输出,表示执行成功:
  111225 01:08:13  innobackupex: completed OK!
 
这时,当前目录下数据就是一个完整的可以使用的数据文件了,将该目录下的所有文件拷贝到数据库数据目录下,再开启数据库,即完成恢复。
 
 
2. step by step说明
 
2.1 管理控制台中下载备份文件
 
2.1.1 在RDS控制台中的备份与恢复->备份列表,选择一个备份文件进行下载,如下图
 
 
2.1.2 点击下载后,会弹出对话框,将备份文件下载到本机,如下图
 
 
2.1.3 下载文件成功后,将备份文件上传至linux系统,上传成功后在Linux系统上检测,如下图
 
 
2.2 解压备份文件
 
2.2.1 解压备份文件
 
执行命令: tar vizxf hins47160_xtra_20130819181504.tar.gz ,如下图
 
 
2.2.2 查询解压后生成的文件,其中蓝色字体的目录文件为备份生成时RDS存在的数据库
 
 
2.3 恢复数据文件
 
进入解压目录,执行如下命令:
innobackupex --defaults-file=./backup-my.cnf --apply-log ./
这一步如果看到类似如下输出,表示执行成功:
 
 
2.4 配置文件修改
 
由于存在的版本问题,请将解压文件backup-my.cnf中的innodb_fast_checksum,innodb_page_size ,innodb_log_block_size 注释掉并且添加datadir=/xxx/xxx/(备份文件解压路径),如下图:
 
 
2.5 重装mysql系统库以及修改文件属主
 
2.5.1 用户可以删除现有的mysql目录,重新生成mysql系统库从而拥有数据库的root权限
删除mysql库,命令:rm -rf mysql 并确认删除成功,如下图:
 
 
2.5.2 初始化mysql默认库
命令: mysql_install_db --user=mysql --datadir=/xxx/xxx/ (备份文件所属目录) 并确认操作成功,如下图:
 
 
2.5.3 修改文件属主 
命令:chown -R mysql:mysql /xxx/xxx/  (备份文件所属目录)  并检查文件所属为mysql用户
 
 
2.6 启动mysqld进程并且登录验证
2.6.1 启动mysqld进程,并验证启动成功
命令:mysqld_safe --defaults-file=/xxx/xxx/backup-my.cnf &  (备份文件所属目录) 
 
 
2.6.2 客户端登录mysql验证
命令:mysql -u root -p ,如图:
 
 
 
3. 其他问题
 
因为软件限制,目前恢复只支持Linux下进行。Linux下恢复的数据文件,无论Windows、Linux下,MySQL都可以正常使用

Xtrabackup 对MYSQL进行备份还原的更多相关文章

  1. MySQL数据库备份还原(基于binlog的增量备份)

    MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份      增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...

  2. c# Process cmd 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据

    c# Process 执行完回调 Proc_OutputDataReceived mysql mysqldump mysql source备份还原数据 直接贴代码 前提:mysql5.7 vs2017 ...

  3. mysql innobackupex xtrabackup 大数据量 备份 还原

    大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 一.Xtrabackup介绍 1, ...

  4. mysql innobackupex xtrabackup 大数据量 备份 还原(转)

    原文:http://blog.51yip.com/mysql/1650.html 作者:海底苍鹰 大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推 ...

  5. MySQL数据库备份还原

    本文以CentOS 7 yum安装的MariaDB-server5.5为例,说明MySQL的几种 备份还原方式 将服务器A(192.168.1.100)上的数据库备份,还原到B(192.168.1.2 ...

  6. 使用mysqldump进行mysql数据库备份还原

    mysqldump是mysql自带的备份还原工具,默认在安装目录的bin下 可通过cmd命令行启动,然后运行: 还原一个数据库: mysql -h 主机 -u 用户名 -p密码 数据库名 < 指 ...

  7. MySql的备份还原

    备份数据是数据库管理最常用的操作.为了保证数据库中数据的安全,数据管理员需要定期进行数据备份.一旦数据库遭到破坏,便可通过备份的文件来还原数据库.因此,数据备份是一项很重要的工作. 数据备份 使用my ...

  8. java实现mysql的备份还原

    此文章是基于 1. 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 2. jquery+springMVC实现文件上传 一. 简介 备份和导入是一个互逆的过程. ...

  9. ubuntu docker 搭建 mongodb,开启授权访问 redis,mysql mssql 备份还原

    命令安装docker 如果您想从Ubuntu存储库安装docker版本,则可以运行下面的apt命令. sudo apt install docker.io等到安装完成后,您可以启动Docker并使用s ...

随机推荐

  1. 找第k大数,最坏时间复杂度O(n)

    (转载请注明出处,http://www.cnblogs.com/fangpei/p/3538331.html ) 以前写过的一篇,搬过来. 上算法课的时候听到老师讲这个问题,觉得还是蛮有意思的.已知数 ...

  2. 安全控件开发原理分析 支付宝安全控件开发 C++

    浏览器安全控件是如果支付宝一样结合web程序密码数据安全处理的程序,采用C++语言开发 通常的安全控件分为两种,一种是指支持IE内核的浏览器,一种支持所有内核的浏览器,支付宝采用的是支持所有内核的浏览 ...

  3. 非常有利于seo的主题(红黄蓝绿)通用教程

    这篇教程是帮助刚使用Wordpres的朋友们的,免得自己弄得一头雾水.大江网络来教大家了解下如何设置自定义导航菜单. 一.首先进入后台,点击“外观”,选择“菜单”按钮,如下图: 然后看到右边界面中菜单 ...

  4. apply 与arguments的用法

    一个小练习: 用一个 函数来代替console.log()的功能 function log(a){ console.log.apply(null,arguments);//arguments 是传的实 ...

  5. ulimit开启coredump时核心转储

    [root@localhost ~]# ulimit -c [root@localhost ~]# ulimit -a core data seg size (kbytes, -d) unlimite ...

  6. Java做acm所需要的基础知识之排序问题

    Java做acm所需要的基础知识. 以前做acm的题都是用C/C++来写代码的,在学习完Java之后突然感觉Java中的方法比C/C++丰富很多,所以就整理一下平时做题需要用到的Java基础知识. 1 ...

  7. CF380C Sereja and Brackets [想法+线段树]

    题意: 给出一串括号 给出一些询问,问某个区间[l,r]内的能合法匹配的括号数有多少个 分析: 我们能够实现处理两个数组 sum[i] 1....i中已经能匹配的右括号的数目 left[i] 1... ...

  8. root用户改动普通用户文件

    首先使用别的用户登录入LINUX系统,切换成root用户.进入到须要改动的用户主文件夹,对该用户文件夹下的文件进行改动

  9. 用switch判断月份的练习

    import java.util.Scanner; public class SwitchTest01 { public static void main(String[] args) { Syste ...

  10. Android实现真正的ViewPager【平滑过渡】+【循环滚动】!!!顺带还有【末页跳转】。

    实现真正的ViewPager[平滑过渡]+[循环滚动]!!!顺带还有[末页跳转]. 首先呢, 我要对网上常见的3种ViewPager的循环滚动方法做个概述.急需看真正实现方法的同志请选择性忽略下面这一 ...