阿里RDS数据库 全量备份恢复到本地MYSQL
1.首先下载RDS的全量备份
下载完成后上传到服务器备用
2.安装MySQL 5.6
首先删除机上其他的MySQL版本
检查系统是否安装其他版本的MYSQL数据
#yum list installed | grep mysql
#yum -y remove mysql-libs.x86_64
groupadd mysql #添加mysql组
useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
mkdir -p /home/data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql /home/data/mysql #设置MySQL数据库目录权限
下载Linux通用版mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz
cd /usr/local/src
直接给出下载地址使用wget下载
解压到/usr/local目录,解压即用
tar zxf mysql-5.6.41-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
cd /usr/local/mysql #进入MySQL目录
cp ./support-files/my-defhuge.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加下面一行
datadir = /home/data/mysql #添加MySQL数据库路径
:wq! #保存退出
初始化MySql数据库
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/alidata/mysqldata
执行mysql_install_db命令的时候后面的参数一定要加上,--user代表运行用户,--basedir代表MySql安装目录,--datadir代表数据库数据所在目录,每个人的配置不一样,根据自己的修改一下
把Mysql加入系统启动
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入开机启动
vi /etc/rc.d/init.d/mysqld #编辑
basedir = /opt/mysql #MySQL程序安装路径
datadir = /home/data/mysql #MySQl数据库存放目录
service mysqld start #启动
vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/opt/mysql/bin
:wq! #保存退出
source /etc/profile #生效配置
下面这两行把myslq的库文件链接到系统默认的位置,这样你在编译类似PHP等软件时可以不用指定mysql的库文件地址。
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
MySQL密码设置
/usr/local/mysql/bin/mysqladmin -u root -p password "123456"#修改密码
service mysqld restart #重启
到此,mysql安装完成!
3.恢复RDS的全量备份
操作系统中已安装数据恢复工具Percona XtraBackup。MySQL 5.6及之前的版本需要安装 Percona XtraBackup 2.3。MySQL 5.7版本需要安装 Percona XtraBackup 2.4。可以从Percona XtraBackup官网下载安装,安装指导请参见官方文档 Percona XtraBackup 2.3、Percona XtraBackup 2.4。https://www.alibabacloud.com/help/zh/doc-detail/26212.htm
阿里的文档说5.6及之前版本需要安装Percona XtraBackup 2.3,我自己按下面的方法安装了 innobackupex version 2.4.12 Linux (x86_64) 可以使用
安装如下
先安装依赖 yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-6/percona-release-0.1-6.noarch.rpm
percona-release-0.1-6.noarch.rpm
$ rpm -ivh percona-release-0.1-6.noarch.rpm
yum install percona-xtrabackup-24
安装完成
mkdir -p /home/data/mysql2 #新建个数据目录用来存放备份导出数据
#解压数据
tar zxf hins4538771_data_20180909031616.tar.gz -C /home/data/mysql2
恢复数据文件
cd /home/data/mysql2
innobackupex --defaults-file=./backup-my.cnf --apply-log ./
系统显示innobackupex: completed OK!,则数据恢复成功。
修改配置文件。将解压文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size、innodb_log_block_size注释掉,并且添加 datadir=/home/data/mysql2,如
下所示。
datadir=/home/data/mysql2 这个数据目录官网说要加实际按我的操作可以不加,可以先加上不影响
#修改/etc/my.cnf 把数据目录改成 datadir=/home/data/mysql2
#修改启动脚本中的数据目录
vim /etc/rc.d/init.d/mysqld
#进入数据目录,开启MySQL
cd /home/data/mysql2 #进入数据目录
chown mysql.mysql -R * #加权限
mysqld_safe & #启动MySQL
ps -ef | grep mysql #查看是否有进程
service mysqld restart #检查重启是否正常
正常的话你已经可以使用RDS的账号密码登录MySQL了
修改下MySQL root 密码
vim /etc/my.cnf
加入 skip-grant-tables
重启mysql
service mysqld restart
登录并修改MySQL的root密码
# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 3.23.56
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> USE mysql ;
Database changed
mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2 Changed: 0 Warnings: 0
mysql> flush privileges ;
Query OK, 0 rows affected (0.01 sec)
mysql> quit
登录
mysql -u root -h127.0.0.1 -p(password)
#这边的root限制是只有本地能登录,你可以自己添加需要的远程账户
grant all on *.* to 'user'@'%' identified by 'password';
完成