现在的位置: 首页 > 综合 > 正文

MySQL主库已经存在的基础上搭建从库的过程–> (旧资料整理)

2013年10月11日 ⁄ 综合 ⁄ 共 2587字 ⁄ 字号 评论关闭

【备注】:

主机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
binlog-ignore-db=information_schema

 

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服务也可以不重启),从服务器重启

 

主服务器已经运行很长时间,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,启动复制功能。执行start slave;

Mysql> start slave;

 

 

抱歉!评论已关闭.