将阿里云RDS数据库恢复到本地

这个问题已经困扰很久了,终于解决了,把过程写下来,可能仅仅方便自己记录

1、要有个Linux操作系统,我使用的是CentOs 7

2、在阿里云的rds中下载备份文件,hins开头的tar.gz文件。

3、开始centos的操作

yum upgrade

yum install  mysql-5.6-community

下载解压工具

wget http://oss.aliyuncs.com/aliyunecs/rds_backup_extract.sh

解压数据库

sh rds_backup_extract.sh -f /root/hins*.tar.gz -C /data

修改数据库目录的所属用户

chown mysql:mysql -R /data/

建立mysql启动的配置文件

vim /data/my.cnf

[mysqld]

datadir = /data/

port = 3306

server_id = 3

socket = /data/mysqld.sock

max_allowed_packet=32M

log-error = /data/error.log

default-storage-engine=INNODB

保存

恢复的数据库root账号是没有密码的,为空,启动数据库

/usr/bin/mysqld_safe –-defaults-file=/data/my.cnf &

链接数据库

mysql -h127.0.0.1 –uroot -p

直接回车。。恢复成功了

CentOS 彻底干掉mysql

yum remove  mysql mysql-server mysql-libs mysql-server;

find / -name mysql 将找到的相关东西delete掉;

rpm -qa|grep mysql(查询出来的东东yum remove掉)

Mysql中查询汉字

SELECT name FROM user WHERE NOT (name REGEXP "[\u0391-\uFFE5]");

SELECT name, length(name), char_length(name) FROM user;

在存储过程中,循环插入每天日期

DROP PROCEDURE IF EXISTS `insertManyDate`;

CREATE DEFINER =  PROCEDURE `insertManyDate`(IN `beginDate` date,IN `endDate` date)
COMMENT ‘根据输入的起止日期,循环插入每天的时间’
BEGIN

DECLARE nowdate date DEFAULT NOW();
DECLARE endtmp date DEFAULT NOW();
set nowdate = DATE_FORMAT(beginDate,’%Y%m%d’);
set endtmp = DATE_FORMAT(endDate,’%Y%m%d’);
WHILE nowdate<endtmp
DO
INSERT INTO belial.date(date) VALUES(nowdate);
set nowdate = DATE_ADD(nowdate,INTERVAL 1 DAY);
END WHILE;

END;