怎么恢复MySQL数据库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 云数据库 RDS是阿里云提供的即开即用的关系型数据库服务,兼容了MySQL、SQL Server、PostgreSQL、PPAS(高度兼容Oracle)四种数据库引擎。在传统数据库的基础上,阿里云RDS提供了强大丰富的功能从而保证了高可用性、高安全性以及高性能。此外,RDS还提供了诸多便利功能提升了
云数据库 RDS是阿里云提供的即开即用的关系型数据库服务,兼容了MySQL、SQL Server、PostgreSQL、PPAS(高度兼容Oracle)四种数据库引擎。在传统数据库的基础上,阿里云RDS提供了强大丰富的功能从而保证了高可用性、高安全性以及高性能。此外,RDS还提供了诸多便利功能提升了RDS的易用性。
如今数据对每个用户来说都是非常宝贵的财产,在使用阿里云RDS产品过程中,用户对数据库误操作引起的损失可以通过数据恢复功能最大程度地减少。接下来,我们会针对怎么恢复阿里云RDS数据库,进行做如下操作(以下操作以MySQL为列,不同引擎的操作方式请参考阿里云官方文档):
一、首先下载备份文件
629792c516da63c783d9f4492664cce71be66a2f
29e637e3e23e21dcd3705052262379250a792e43
二、其次,解压备份文件到指定目录
 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 
357786a71b4c20365b033dde92e83a42e89cc447
停止实例方法
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' ;) 

参考
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL 运维 关系型数据库
使用Binlog日志恢复误删的MySQL数据
今天文章的主题是如何使用Mysql内置的Binlog日志对误删的数据进行恢复,读完本文,你能够了解到: MySQL的binlog日志是什么?通常是用来干什么的? 模拟一次误删数据的操作,并且使用binlog日志恢复误删的数据。
867 1
|
存储 关系型数据库 MySQL
MySQL数据库系列(七)-------日志管理、备份与恢复
MySQL 的日志默认保存位置为/usr/local/mysql/data MySQL 的日志配置文件为 /etc/my.cnf,里面有个[mysqld]项。
178 0
MySQL数据库系列(七)-------日志管理、备份与恢复
|
存储 SQL 运维
大数据运维之MySQL备份及恢复
能够防止由于机械故障以及人为误操作带来的数据丢失,例如将数据库文件保存在了其它地方。 冗余: 数据有多份冗余,但不等备份,只能防止机械故障还来的数据丢失,例如主备模式、数据库集群。
278 0
大数据运维之MySQL备份及恢复
|
存储 SQL 安全
Mysql数据库的备份与恢复
Mysql数据库的备份与恢复
117 0
Mysql数据库的备份与恢复
|
关系型数据库 MySQL 数据库
MySQL数据库的备份与恢复(下)
一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。
150 0
|
安全 关系型数据库 MySQL
MySQL数据库的备份与恢复(中)
一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。
202 0
|
SQL 关系型数据库 MySQL
MySQL数据库的备份与恢复(上)
一、数据备份的重要性 备份的主要目的是灾难恢复。 在生产环境中,数据的安全性至关重要。 任何数据的丢失都可能产生严重的后果。
247 0
|
SQL 运维 关系型数据库
只有MYSQL数据目录如何挂载恢复
在使用云服务器的很多场景下,如遇一些linux系统级别问题,比如系统文件丢失,kernel panic等,无法正常在已有的主机系统上恢复系统启动,且也无之前系统正常时间创建的系统盘快照,需要通过初始化系统盘来恢复系统。 但是这样操作后系统可以恢复登录,但原有的系统盘内搭建的服务比如mysql等服务需要重新搭建,那么重新搭建的mysql如何指认原有的数据库目录,如何进行导出数据,本文将详细说明下操作恢复方法。
只有MYSQL数据目录如何挂载恢复
|
SQL 运维 关系型数据库
MySQL误删恢复方法2
实际工作中总会发生数据误删除的场景,在没有备份情况下,如何快速恢复误删数据就显得非常重要。 本文基于MySQL的binlog日志机制,当日志格式设置为“binlog_format=ROW”时,记录一步一步手动解析binlog、恢复误删数据的全过程,供大家参考使用。
141 0
|
SQL Oracle 关系型数据库
MySQL误删恢复方法1
MySQL不同于oracle,没有闪回查询这类概念,但网上流传几个闪回的开源工具如 binglog2sql、MyFlash,可以使用binglog日志进行误操作数据的恢复。
133 0