将阿里云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;

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

系统:centos7 x64 本地数据库版本为5.6.36

1.下载恢复文件

2.下载解压软件

rds_backup_extract.sh

3.安装恢复软件

yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum install percona-xtrabackup-24

4.恢复数据
解压
bash rds_backup_extract -f /home/mysql/backup/hins575175_xtra_20150429091224.tar.gz -C /home/mysql/data
恢复
innobackupex --defaults-file=/home/mysql/data/backup-my.cnf --apply-log /home/mysql/data
由于存在的版本问题,请将解压文件 backup-my.cnf 中的 innodb_fast_checksum、innodb_page_size 、innodb_log_block_size 注释掉

chown -R mysql:mysql /home/mysql/data
删除权限
delete from mysql.db where user<>'root' and char_length(user)>0;

delete from mysql.tables_priv where user<>'root' and char_length(user)>0;

flush privileges;
 

新安装的Oracle,netca无法使用的解决办法

这个问题实在是让人头疼,不过花了2天时间,终于找到了解决方案。。。。。

1.找到netca.cl 把他复制一份,并且修改名字为netca.bat

2.修改内容去掉Command=(

3.去掉jrew中的w

4.去掉最后的)

5.保存,运行!

是不是可以了?哈哈哈,我在Oracle9i可以用的哦

OCS4J.properties找不到的解决办法

工作需要,又要弄Oracle9i。安装的过程中OCS4J文件找不到,谷歌一下,找到了解决办法,感谢提供办法的朋友

如果安装遇到这个,可以自己创建 OCS4J.properties 文件, 然后拷贝到提示的路径,如 D:\oracle \ora92\ocs4j\admin 然后点击retry即可

在自己创建的 OCS4J.properties 文件中写入以下内容:

# discoveryAddress is a list of cache servers and ports

discoveryAddress = %s_hostName%:%s_cachePort%

diskPath = %s_diskPath%

logFileName = %s_ocs4jAdmin%\logs\ocs4j.log

sqlserver 获取时间的一些例子

1.显示本月第一天

SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0)
select convert(datetime,convert(varchar(8),getdate(),
120)+’01’,120)
2.显示本月最后一天

select dateadd(day,-1,convert(datetime,convert
(varchar(8),dateadd(month,1,getdate()),120)+’01’,120))
SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate())+1,0))
3.上个月的最后一天

SELECT dateadd(ms,-3,DATEADD(mm,DATEDIFF(mm,0,getdate()),0))
4.本月的第一个星期一i

select DATEADD(wk,DATEDIFF(wk,0, dateadd(dd,6-datepart(
day,getdate()),getdate())),0)
5.本年的第一天

SELECT DATEADD(yy,DATEDIFF(yy,0,getdate()),0)
6.本年的最后一天

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0))
7.去年的最后一天

SELECT dateadd(ms,-3,DATEADD(yy,DATEDIFF(yy,0,getdate()),0))
8.本季度的第一天

SELECT DATEADD(qq,DATEDIFF(qq,0,getdate()),0)
9.本周的星期一

SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
10.查询本月的记录

select * from tableName where DATEPART(mm, theDate)
=DATEPART(mm, GETDATE()) and DATEPART(yy, theDate)
= DATEPART(yy, GETDATE())
11.查询本周的记录

select * from tableName where DATEPART(wk, theDate) = DATEPART
(wk, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
12查询本季的记录 注:其中:GETDATE()是获得系统时间的函数。

select * from tableName where DATEPART(qq, theDate) = DATEPART
(qq, GETDATE()) and DATEPART(yy, theDate) = DATEPART(yy, GETDATE())
13.获取当月总天数:

select DATEDIFF(dd,getdate(),DATEADD
(mm, 1, getdate()))

select datediff(day,
dateadd(mm, datediff(mm,”,getdate()), ”),
dateadd(mm, datediff(mm,”,getdate()), ‘1900-02-01’))
14.获取当前为星期几

DATENAME(weekday, getdate())