centos下如何创mysql中间库并定时更新数据
背景
我是将中间库和主库放在同一台服务器上面的,只是给的账号权限不同。
创建mysql中间库
用navicat连接上服务器,新建数据库temp,字符集选择utf-8.。
编写数据库脚本
创建免密码自动验证登录文件
root@localhost# mysql_config_editor set --login-path=chen --host=localhost --user=root --password
上面命令的login-path=chen中的chen是自定义的,相当于一个密钥,运行成功后会在当前用户目录下生成一个密钥文件。
root@localhost# cd ~
root@localhost# ls -l -a
如图:
编写数据导出脚本
创建脚本文件
root@localhost# vim /home/temp/dump.sh
在脚本文件中写入
#!/bin/sh
rm -rf /home/temp/zs*
# mysqldump --login-path=chen 数据库名 表名 >/home/temp/表名.sql
# 如下所示
mysqldump --login-path=chen fzmjtc zs_enroll >/home/temp/zs_enroll.sql
mysqldump --login-path=chen fzmjtc zs_enroll_apply >/home/temp/zs_enroll_apply.sql
编写数据导入脚本
创建脚本文件
root@localhost# vim /home/temp/insert.sh
#!/bin/sh
mysql --login-path=chen temp < /home/temp/zs_enroll.sql
mysql --login-path=chen temp < /home/temp/zs_enroll_apply.sql
编写启动脚本
root@localhost# vim report_sync.sh
填入内容
#!/bin/sh
/home/temp/dump.sh
/home/temp/insert.sh
授权
[root@localhost temp]# chmod u+x /home/temp/*.sh
开启定时任务
将report_sync.sh移动到/usr/bin下
[root@localhost temp]# mv report_sync.sh /usr/bin
打开定时器面板
root@localhost# crontab -e
在里面添加一行数据
0 0 * * * /usr/bin/report_sync.sh
前面几个选项分别是:分 时 日 月 周,*代表“每”,esc按:wq保存,这样服务器就会每天自动执行了,没报错就成功了。
随便定一个最近的时间,过一会查看新的数据库是否有数据。