MySQL同步机制以及SVN自动发布

Windows下面的MYSQL同步(非主从线程同步机制)

大家都知道MySQL的主从同步机制,原理就是通过修改MySQL配置文件my.ini(Linux下面是my.cnf)进行设置相应的选项即可,这样就简单实现了MySQL的主从同步,但这样操作有好处也有坏处,好处是:可以直接使用MySQL内部机制进行数据同步,减少繁琐的事件驱动;坏处是:应用不方便如果需要更改同步机制,需要修改配置文件并重启数据库(即不能热机切换配置),因此如果需要了解主从同步可以移步各大论坛或者求助Google,另外关于MySQL的内部同步机制可以移步 MySQL5.6主从配置和定时备份 参考。

好了,了解了一点MySQL的同步机制,众所周知的是大家都知道Linux下面有crontab定时任务,这点可以方便我们定时执行某一些特定的任务。那相对应的Windows机器呢?它是否也有自己的定时任务处理呢?答案是有的。现在就让我们在Windows机器上来一起设置一个MySQL的同步脚本。

脚本编写:首先我写了两个简单的脚本文件(文末附上链接,后缀是.bat文件,根据自己的需求更改文件)一个是自动同步数据库脚本(修改完配置参数,加入定时任务就能自动运行),另一个是手工同步脚本(即自己输入数据库信息并手动同步),脚本文件都很简单(里面有具体的命令解释说明,相信大家都能看明白),步骤大致分为以下六步:

  • 设置MySQL的安装路径;

  • 设置导出SQL的临时存放目录;

  • 设置导出MySQL服务器相关的配置信息;

  • 设置导入MySQL服务器相关的配置信息;

  • 执行导出任务;

  • 执行导入任务;

完成上述六步即完成了整个同步脚本。

好了,做到到这里时MySQL的同步机制并没有完成,手工同步则可以直接运行脚本,这里可以略过,现在只介绍自动同步的后续工作。

设置定时任务:Windows机器大家都常用,按下win键(即Windows图徽,左Crtl右边这个键),点击“控制面板”,如下图:

222

在弹出的窗口中右上方选择“查看方式”为小图标,继而选择里面的“管理工具”,如下图所示:

2

点击“管理工具”选择“任务计划程序”快捷图标进入任务计划控制台,在左侧的“任务计划程序库”右键选择“创建任务”,选择顶部菜单栏“常规”选项卡并如下图填写:

3

选择顶部菜单栏“触发器”选项卡如下图填写:(我这里一分钟执行同步一次)

4

点击确定,在选择顶部菜单栏“操作”选项卡,如下图填写:

5

到这里为止,定时任务基本完成,如有容错机制,可以将顶部菜单栏后续的几个选项卡中设置调整为自己的模式即可。

创建成功如下图:

6

Tips:到这里,这个任务为挂起状态,我们如果需要关闭这个页面会报错,因此需要将这个任务结束才能关闭。

Linux主机上的SVN自动发布

在linux主机上SVN仓库中修改hooks目录下面的post-commit.tmp钩子文件 并重命名为post-commit文件

可以复制下面代码至文件中并修改相应程序路径:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
REPOS="$1"                          #版本库
REV="$2"                            #版本号
export LANG=zh_CN.UTF-8   #自动同步脚本防止乱码
SVN=/usr/local/svn/bin/svn  #SVN程序路径,这里根据个人安装路径修改
WEB=/usr/local/web/hanggecrazy   #SVN程序发布位置(项目路径),这里根据个人安装路径修改
echo `date`
echo "用户":`whoami`" 将版本库:"$REPOS" 更新至 "$REV" 版本号" >> /date1/logs/svn_hook.log   #注:log文件路径,用于记录svn更新记录
$SVN update --username ********** --password *********** $WEB  >> /date1/logs/svn_hook.log

#同步代码从SVN服务器到WEB服务器

1
/usr/bin/rsync -vaztpH  --timeout=60  $WEB *******@192.168.1.100:/www/hanggecrazy

但是最后同步操作还没有绕过不用输入用户和口令验证,这点待完善。。。

分享一点小知识,希望大家了解一些。。。。

SQL_auto_mallay

(The End)

坚持原创技术分享,您的支持将鼓励我继续创作!