怎么恢复MySQL数据库

云数据库 RDS是阿里云提供的即开即用的关系型数据库服务,兼容了MySQL、SQL Server、PostgreSQL、PPAS(高度兼容Oracle)四种数据库引擎。在传统数据库的基础上,阿里云RDS提供了强大丰富的功能从而保证了高可用性、高安全性以及高性能。此外,RDS还提供了诸多便利功能提升了RDS的易用性。

如今数据对每个用户来说都是非常宝贵的财产,在使用阿里云RDS产品过程中,用户对数据库误操作引起的损失可以通过数据恢复功能最大程度地减少。接下来,我们会针对怎么恢复阿里云RDS数据库,进行做如下操作(以下操作以MySQL为列,不同引擎的操作方式请参考阿里云官方文档):

一、首先下载备份文件

二、其次,解压备份文件到指定目录

 1.下载 Xtrabackup:

 http://www.percona.com/downloads/XtraBackup/XtraBackup-2.0.6/RPM/rhel6/x86_64/percona-xtrabackup-2.0.6-521.rhel6.x86_64.rpm

 2.安装依赖包:

yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL mysql-devel

 3.安装 Xtrabackup:

rpm -ivh percona-xtrabackup-2.0.6-521.rhel6.x86_64.rpm

 4.将hins190855_xtra_20150312120203.tar.gz解压到指定目录(不会自动新建子目录,要先设计好)

 mkdir /home/mysql/mysqldb cd /home/mysql/mysqldb

 tar -izxvf hins190855_xtra_20150312120203.tar.gz

三、接着,恢复数据到一致的状态

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

 2.删除此目录下的mysql,重新生成mysql系统库从而拥有数据库的root权限

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

 3.更新目录权限

   chown -R mysql:mysql /home/mysql/mysqldb/  (备份文件所属目录)  并检查文件所属为mysql用户

注意:我们需要配置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 = /usr/local/lnmp/mysql/bin/mysqld_safe

mysqladmin = /usr/local/lnmp/mysql/bin/bin/mysqladmin

user = root

[mysqld1]

port = 3306

socket = /tmp/mysql.sock

datadir = /date/lnmp/mysql

pid-file = /date/lnmp/mysql/mysql1.pid

log-error = /date/lnmp/log1/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/lnmp/log1/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表打不开)

启动实例

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

/usr/local/lnmp/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 -proot -S /tmp/mysql2.sock

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

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

vi /etc/my.cnf

/wdzj/lnmp/mysql/my.cnf

[client]

default-character-set = utf8

#password       = your_password

port            = 3306

socket          = /wdzj/lnmp/mysql/mysql.sock

 # Here follows entries for some specific programs

 # The MySQL server

[mysqld]

port            = 3306

socket          = /wdzj/lnmp/mysql/mysql.sock

skip-external-locking

key_buffer_size = 16M

max_allowed_packet = 1M

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M

datadir         = /home/mysql/mysqldb

max_connections=1000

innodb_data_file_path=ibdata1:200M:autoextend

innodb_log_files_in_group=2

innodb_log_file_size=1048576000

四、最后,重新生成ROOT用户密码及权限

1. 重置ROOT密码:

service mysql start

cd /wdzj/lnmp/mysql

./bin/mysqladmin -u root password 'linux'

2. 为ROOT用户赋权

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

flush privileges;

 grant all on *.* to root@'%' identified by 'linux'  WITH GRANT OPTION;

flush privileges;

(建立新用户及赋权的语句要记得

grant all privileges on test.test to test@localhost identified by 'test' ;) 



参考

MySQL RDS 数据库恢复

时间: 2024-12-03 12:31:18

怎么恢复MySQL数据库的相关文章

通过binlog恢复mysql数据库

在上一篇文章,我们讲解了有关mysql的binlog日志的基础知识.这篇文章,我们来讲解如何通过mysql的binlog日志来恢复数据库. 在使用binlog日志来恢复数据库之前,我们有一些前提工作需要做.步骤如下: 1.创建新的数据库ailanni 2.创建新的表ilannitable 3.向表ilannitable插入数据 4.刷新mysqlbin日志 5.完整备份ailanni数据库 6.删除表ilannitable插入的部分数据 7.删除数据库ailanni 8.各个binlog日志的内

mysql mysql权限-如何恢复mysql数据库的root账户权限

问题描述 如何恢复mysql数据库的root账户权限 本人小白,在服务器装了mysql之后,在phpmyadmin里自作聪明创建了一个新的账号(newroot),然后给了所有权限(除了Grant),然后就把root账号的权限都取消了..现在发现这个新的账号,不能给新建账号分配数据库权限,很坑爹呀.. 求前辈们指点,如何恢复root权限

自动恢复MySQL数据库的日志文件思路分享及解决方案_Mysql

如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出.启用二进制日志的选项为 --log-b

Linux上通过binlog文件恢复mysql数据库详细步骤_Mysql

 一.binlog 介绍 服务器的二进制日志记录着该数据库的所有增删改的操作日志(前提是要在自己的服务器上开启binlog),还包括了这些操作的执行时间.为了显示这些二进制内容,我们可以使用mysqlbinlog命令来查看. 用途1:主从同步 用途2:恢复数据库(也是线上出现一次数据库文件丢失后,才对这个有所了解并学习的) mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ... <!--[if !supportLists]-->

恢复MySQL数据库的日志文件

恢复MySQL数据库教程的日志文件 如果MySQL服务器启用了二进制日志,你可以使用mysql教程binlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用于处理二进制日志文件的实用工具". 要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名.一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径.如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出

使用mysql workbench图形化备份恢复mysql数据库

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本文简要介绍一个简单好用的图形界面备份恢复mysql数据库的方法,使用workbench图形界面进行mysql数据库恢复备份.对那些不喜欢使用命令行的朋友相信有帮助. workbench是mysqlAB公司出的一款可视化操作mysql的工具,对于习惯使用windows图形化界面操控的用户来说,这是一个非常好的工具.当然还有一款大家很熟悉的基于

如何用PHP的页面备份、恢复Mysql数据库中的数据表

mysql|备份|恢复|数据|数据库|页面 <?           //备份数据       $i   =   0;       $crlf="\r\n";       $dbname="xgtqr";       global     $dbconn;       $dbconn   =   mysql_connect("localhost","root","root");       $db  

妙用phpMyBackupPro备份恢复Mysql数据库

phpMyBackupPro 是一个一个专业的MySql备份工具.可以备份多服务器.多数据库,可以将数据备份 到ftp或email,可以自动备份.可以设置备份的计划任务,可以还原数据库.在线执行SQL语句, 生成 UTF-8格式的文档. phpMyBackupPro简介 主要特点: 1.可以选择备份一个或几个数据库,并可以选择是只备份表格结构还是包含数据. 2.支持三种压缩类型(不压缩,gzip和zip). 3.按计划自动备份. 4.提供一个备份管理界面(查看,恢复,下载,删除). 5.可直接备

myloader恢复mysql数据库示例

     mydumper是针对mysql数据库备份的一个轻量级第三方的开源工具,备份方式为逻辑备份.它支持多线程,备份速度远高于原生态的mysqldump以及众多优异特性.与其相配套的恢复工具则是myloader,主要用于将dump出来的sql以并行的方式进行恢复.本文主要描述myloader的使用方法并给出示例.     有关mydumper的相关参考        mydumper备份mysql数据库示例           mydumper安装及安装故障汇总    1.单库的备份与恢复