1、需求分析
每个月数据一张历史表,每天把前一天数据放到对应历史表中
数据库、目录权限:
# 查看MySQL某个用户的权限:
show grants for 用户名
#给 xiaogang 分配所有的权限
grant all on *.* to 'xiaogang'@'%';
chmod 777 tmp #临时文件存储权限
2、 迁移脚本实现(三种方式)
#!/bin/bash
HOST=127.0.0.1 # host 视情况决定
USER=root
PASSWPORD=000000
DATABASE=testdb
TAB_NAME=t_order
TEMP_PATH=/data/tmp
KEEP_DAYS=30
CURRENT_DATE=`date +'%Y_%m'`
LOG_PATH=/home/cib/logs # 赋值顶格
LOG=${LOG_PATH}/database.logs
tabNameHis=${TAB_NAME}_${CURRENT_DATE}
tempFIle=${TEMP_PATH}/${TAB_NAME}_temp.txt
sqlConnect="mysql -h ${HOST} -u ${USER} -p${PASSWPORD} -d ${DATABASE}"
if [ ! -d ${LOG_PATH} ]
then
mkdir -p ${LOG_PATH}
chmod 777 ${LOG_PATH}
fi
# 查询表是否存在当月历史表 -N
tableExist=`mysql -N -h ${
HOST} -u ${
USER} -p${
PASSWPORD} -d ${
DATABASE} -e "select count(*) from information_schema.TABLES where TABLE_NAME = '${TAB_NAME}';"`
if [ ${count} -ne 1 ]
then
echo $(TAB_NAME) does not exist >> ${LOG}
exit
fi
# 导出一个以前的数据到临时文件,使用!^分割 outfile需