好久没来写博客了,发现人都懒了。呵呵!记得去年研究完mysql duplicate之后就懒得再弄,最近把它用在生产环境,发现还不错。数据库安全了很多。
由于mysql网上说集群需要至少要5-6台机器,而且性能提高不大,不适合规模较小的应用。所以我们采用的是主从机方案,可以一定程度上满足要求,从机平时用来作备份,及数据分析,主机用来生产。以下详细记录一下过程,为已后留个记录。
一、首先需要做的是在两台机器上安装mysq,版本要一致,mysql官方说duplicate在不断改进过程中,所以版本要一致。
二、需要确保数据库及表内容一致。我当时直接将生产机上(需要程序都停下来)的所有内容,连数据库,及表,scp拷贝到从机上。
三、在主机上创建主从机专用用户。命令如下:
GRANT REPLICATION SLAVE ON *.* TO 'xxx'@'%192.168.1.57' IDENTIFIED BY 'xxx‘;
FLUSH PRIVILEGES;
四、主机修改配置文件(实际上不修改)
server-id = 1
log-bin=mysql-bin
五、从机修改配置文件
由于从机原来配置也是主机形式,需要注掉上面俩行。
#server-id = 1
#log-bin=mysql-bin
server-id = 2
master-host = 192.168.1.1
master-user = xxx
master-password = xxx
master-port = 3306
report-host = 192.168.1.2
六、启动主从机,查寻状态
SHOW MASTER STATUS
SHOW SLAVE STATUS
如果主机显示类似如下状态Position不为0,表示正确。
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
|mysql-bin.000006 | 7809 | |
如果发现从机 Last_SQL_Errno, Last_SQL_Error: 出现什么异常,需要设定忽略。
STOP SLAVE
SET GLOBAL SQL_slave_SKIP_COUNTER = n ;
START SLAVE
如果看见如下俩行内容,说明slave从机工作正常。
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
六、其他命令:
显示主机状态命令
SHOW MASTER STATUS
显示主从状态命令
SHOW SLAVE STATUS
开始从机工作
START SLAVE
停止从机工作
STOP SLAVE
设定跳过
SET GLOBAL SQL_slave_SKIP_COUNTER = n ;
显示连入主机的从机
show slave hosts
七、还找其它配置及命令
配置:
report-host xxx.xxx.xx.xxx 设置之后,主机可以用show slave hosts查到从机
忽略错误
slave-skip-errors=1062,1053
忽略所有错误
slave-skip-errors=all
复制特定数据库(可以设定多个)
replicate-do-db=db_name
忽略 复制特定数据库
replicate-ignore-db=db_name
复制特定表
replicate-do-table=db_name.tbl_name
忽略复制特定表
replicate-ignore-table=db_name.tbl_name
同上但可以加模糊匹配‘% ’和‘_ ’
replicate-wild-do-table=db_name.tbl_name
replicate-wild-ignore-table=db_name.tbl_name