最近在恢复阿里云RDS数据库,操作如下:
1,下载备份文件
二,解压备份文件到指定目录
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用户
[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' ;)