MySQL主从同步机制及同步中的问题处理

Publish: September 29, 2013 Category: MySQL 45 Comments

MySQL主从配置的搭建
具体步骤:
1. 安装MySQL。首先要在两台服务器上安装MySQL,完成之后应该确认能否两台服务器能否互相访问。 这是因为缺省的my.cnf设置有
bind-address = 127.0.0.1,这条语句应该被注释掉。
2. 创建账号。数据库中缺省的帐户的host值是localhost,所以应该创建一个可以远端访问的帐号。比如:root@’%’ or root@10.x.x.x
3. 配置主Server。
在主服务器(数据库源)上的my.cnf配置[mysqld]之后加入如下条目:

log_bin = /var/log/mysql/mysql-bin.log
server-id = 1 //1代表主数据库(源) 2代表辅数据库(目的)
binlog_do_db = testmirror //要做同步的数据库名字,可以是多个数据库,之间用分号分割。

阅读剩余部分...

Makefile 里字符串替换

Publish: September 24, 2013 Category: Shell 51 Comments

有这个么需要,执行以下命令时,把变量替换成用户指定的参数:

make install DESTDIR=/usr/local/webservice/test

这时,Makefile的写法,是把HOME替换成DESTDIR的参数:

...

install:
        @echo "${DESTDIR}"
        @echo $(subst /,\\/, ${DESTDIR})

        sed -i 's/HOME/$(subst /,\/,${DESTDIR})/g' ./conf.ini

...

rsync 配置

Publish: September 11, 2013 Category: Shell No Comments

一、不需要密码的简单方法:

    B为rsyncd服务器,需要A从B上推或拉文件,B的配置如下:    

# 编辑配置文件
vim /etc/rsyncd.conf

# 输入配置内容
use chroot = no
pid file = /var/run/rsyncd.pid
lockfile = /var/run/rsync.lock

[rsync]
uid = root
gid = root
path = /home/kyosold/rsync
read only = no
hosts allow = 127.0.0.0/16 10.218.10.0/24
"/etc/rsyncd.conf" 30L, 600C 


使用方法:

    从A上执行如下命令:

rsync -av abc.txt 127.0.0.1::rsync


二、需要密码的方法:

A 和 B 服务器做rsync同步文件,A为server,从B上同步A文件过来,使用认证方式

A: 100.0.0.1

B: 100.0.0.2


A的配置:

vim /etc/rsyncd.conf

use chroot = no
pidfile = /var/run/rsyncd.pid
lockfile = /var/run/rsync.lock

[public]
uid = root
gid = root
patch = /home1/download       #要被同步的目录
list = yes
read only = no
auth users = lykst          #同步用户
secrets file = /etc/rsyncd.secrets   #密码文件
hosts allow = 100.0.0.2 127.0.0.1

其中 /etc/rsyncd.secrets 为密码文件,格式为:username:password

vim /etc/rsyncd.secrets

lykst:123123


B:在B上执行以下命令:

rsync -av --password-file=/root/rsync.passord rsync://lykst@100.0.0.1/public/tools.tar.bz2 .

其中:rsync://lykst@100.0.0.1/public ,lykst为用户名,100.0.0.1为服务器A的IP,public为A的模块,tools.tar.bz2 为被同步的文件

/root/rsync.passord 为存放密码的文件,格式为:password
123123

注意:两边服务器上的密码文件都要:
chmod 600 /etc/rsyncd.secrets
chmod 600 /root/rsync.passord

RPM打包

Publish: September 5, 2013 Category: Shell 220 Comments

为什么要打包?
制作 rpm 不仅仅是打包,更可以解决菜单创建、打补钉、完成大量预配置、与其他软件包互动等操作。使用源代码安装要求用户了解基本的编译过程、能够应付各种不能编译 的意外、必须自己完成抽象的配置、甚至懂得软件开发,能够自己打补钉,……对非计算机专业的用户而言简直就是天方夜谭。这是把软件开发的最后一步抛给了用 户,作为发行版,这是极不负责任的!也是不现实的,除非用 lfs,但那是一本菜谱,不是真正的发行版。

软件作者发布源代码是正确的,负责的作者一般都同时提供 rpm 和 deb 包以及它们的源代码包。除非他们不会制作。愿意使用什么,那是个人的自由,但对外就不能只想到自己。GNU 精神是一种公益精神,没有奉献精神,在自由软件领域是要遭唾弃的!

直 接使用其他发行版的 rpm 常常是不行的。不知道大家看没看“恼人的依赖关系”这个帖子。可以在技术支持区搜索一下。任何两个发行版本在二进制上都是不能兼容的!他们实际是不同的操 作系统。不仅使用的库文件不同,配置也迥异。特别是同一个发行版的不同版本更不兼容。任何包都必须在本地重新编译,而且不一定通得过,因为还有 spec 宏的兼容问题!如果要在别的发行版上使用,必须用源码编译,这是常识。考虑文件布局和配置问题,有时直接编译也是不够的,必须修改 spec,甚至自己打补丁。

阅读剩余部分...