MySQL5.1版本的主从复制搭建
【备注】:</span></span> 主机192.168.250.20 备机192.168.250.40 主从复制 1主机上面已经有了MySQL5.1.53-log版. 2备机上没有mysql数据库,需要在备机上安装MySQL5.1.53-log软件,具体参考svn文档“system\mysql\document\IT_SYS_MySQL_Installation.docx”。 3再次确定主服务器与从服务器的MySQL版本一致 Showvariables like 'version'; 4在主服务器上位服务器设置一个连接账号,赋予replication slave权限。 MySQL> grant replication slave, super,reload on *.* to 'rel'@'192.168.250.40 identified by'slavepwd1229'; 5 确保主服务器上的my.cnf文件的[mysqld]部分包括一个log-bin选项。如下: [mysqld] ……… log-bin=mysql-bin server-id=1 binlog-ignore-db=mysql 6 确保从服务器,确保在my.cnf文件中添加以下的行: [mysqld] log-bin=mysql-bin server-id=2 log_slave_updates = 1 read_only=1 # 这个参数表示只有supser relay-log=relay-bin relay-log-index=relay-bin replicate-ignore-db=mysql replicate-ignore-db=information_schema log_bin_trust_function_creators= 1 7 主服务器重启(如果配置了master服务也可以不重启),从服务器重启 n 主服务器已经运行很长时间,binlog不是从0001开始。 8 在主服务器上查看master状态 mysql> show master status; +------------------+-----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+-----------+--------------+------------------+ | mysql-bin.000075 | 875653787 | | | +------------------+-----------+--------------+------------------+ 1 row in set (0.00 sec) 9 启动从服务器,设置复制断点 先从250.20上面copy数据文件到250.40上面,然后chown数据权限,最后刷新表 Mysql> flush tables; 从102上面导入所有的存储过程以及存储函数: /usr/local/mysql/bin/mysqldump -h192.168.250.20-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R csf_maec > /tmp/cm20101230.sql; /usr/local/mysql/bin/mysqldump -hlocalhost-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R csf > /tmp/csf20101230.sql; /usr/local/mysql/bin/mysqldump -hlocalhost-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R csf_pub > /tmp/csf_pub20101230.sql; /usr/local/mysql/bin/mysqldump -hlocalhost-uroot -pguNNhtqhjUnfky6ahyVh -ntd -R reuters_interface >/tmp/reuers_inter20101230.sql; Mysql> change master tomaster_user='rel', master_password=' slavepd1012301151' , master_host='192.168.250.20’, master_log_file='mysql-bin.000075', master_log_pos=875653787; mysql> start slave; mysql> show slave status \G; 10如果复制状态Slave_IO_Running,Slave_SQL_Running都为Yes,说明复制已经配置正确,如下: Slave_IO_Running: Yes Slave_SQL_Running: Yes Ok,下面insert、delete、update、drop、truncate等等都测试成功。 意外1: 主机停机,备机正常:主机重启之后,备机仍然可以正常进行复制同步。 意外2: 主机不停机,备机停机:备机重启后,备机开启手工复制功能如下: Mysql> start slave; 意外3: 主机停机,备机停机: (1) 先开启slave,启动mysql,进入mysql Mysql> stop slave; Mysql> show slave status \G;记下最后一个pos与binlog值为mysql-bin.000079、875653787 (2) 重新指定master目标: Mysql> change master tomaster_user='rel', master_password=' slavepd1012301151' , master_host='192.168.250.20, master_log_file='mysql-bin.000079', master_log_pos=875653787; (3) 启动master (4) 进入slave,启动复制功能。
binlog-ignore-db=information_schema