Chinaunix首页 | 论坛 | 博客
  • 博客访问: 999722
  • 博文数量: 116
  • 博客积分: 3758
  • 博客等级: 中校
  • 技术积分: 1316
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-17 11:49
个人简介

这家伙很懒。。。

文章分类

全部博文(116)

文章存档

2016年(3)

2015年(2)

2014年(1)

2013年(9)

2012年(25)

2011年(50)

2010年(12)

2009年(14)

分类: Mysql/postgreSQL

2011-03-04 16:16:18

一、环境 
主机: 
master操作系统:centos 5.2
 IP:192.168.0.98
 MySQL版本:5.0.45 
        
 从机:          
  slave操作系统:centos 5.2
  IP:192.168.0.99 
   MySQL版本:5.0.45

二、创建数据库 
分别登录master机和slave机的mysql:mysql –u root –p 
创建数据库:create database repl; 
三、master机和slave机的相关配置 
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下 
在[mysqld]配置段添加如下字段 
server-id=1 
log-bin=log 
binlog-do-db=repl //需要同步的数据库,如果没有本行,即表示同步所有的数据库 
binlog-ignore-db=mysql //被忽略的数据库 
在master机上为slave机添加一同步帐号 
grant replication slave on *.* to 'repl'@'192.168.0.99' identified by '123456'; 
重启master机的mysql服务:service mysqld restart 
用show master status 命令看日志情况 
mysql>show master status; 
+-----------------+------------+-------------------+-----------------------+ 
| File                | Position     | Binlog_Do_DB   | Binlog_Ignore_DB | 
+-----------------+------------+-------------------+-----------------------+ 
|    log.000003 |           98  | repl                 | mysql                    | 
+-----------------+------------+-------------------+-----------------------+ 
1 row in set (0.00 sec) 
我的master配置文档 master.zip   

2、修改slave机中mysql配置文件 
同样在[mysqld]字段下添加如下内容 
server-id=2 
master-host=192.168.0.98
master-user=repl 
master-password=123456 
master-port=3306 
master-connect-retry=60 
# replicate-ignore-db=mysql 忽略的数据库 
# master-connect-retry=60 如果从服务器发现主服务器断掉,重新连接的时间差(秒) 
#replicate-do-db=repl //同步的数据库(需要备份的数据库名),不写本行 表示 同步所有数据库 
然后重启slave机的mysql 
我的slave配置文档 slave.zip   
在slave机中进入mysql 
mysql>start slave; 
mysql>show slave status\G; 
如果Slave_IO_Running、Slave_SQL_Running状态为Yes则表明设置成功。 

四、出现的问题 
当我在执行start slave这条命令时,系统提示 
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO
解决方案:
执行 slave stop; 
再执行 
change master to master_host='192.168.1.222',master_user='repl',master_password='123456', master_log_file='log.000003' ,master_log_pos=98; 
然后执行 slave start; 
这时 再执行show slave status\G 
显示如下: 
*************************** 1. row *************************** 
             Slave_IO_State: Waiting for master to send event 
                Master_Host: 192.168.0.98
                Master_User: repl 
                Master_Port: 3306 
              Connect_Retry: 60 
            Master_Log_File: log.000003 
        Read_Master_Log_Pos: 98 
            Relay_Log_File: mysqld-relay-bin.000002 
              Relay_Log_Pos: 229 
      Relay_Master_Log_File: log.000003 
           Slave_IO_Running: Yes 
          Slave_SQL_Running: Yes
 
            Replicate_Do_DB: 
        Replicate_Ignore_DB: 
         Replicate_Do_Table: 
     Replicate_Ignore_Table: 
    Replicate_Wild_Do_Table: 
Replicate_Wild_Ignore_Table: 
                 Last_Errno: 0 
                 Last_Error: 
               Skip_Counter: 0 
        Exec_Master_Log_Pos: 98 
            Relay_Log_Space: 229 
            Until_Condition: None 
             Until_Log_File: 
              Until_Log_Pos: 0 
         Master_SSL_Allowed: No 
         Master_SSL_CA_File: 
         Master_SSL_CA_Path: 
            Master_SSL_Cert: 
          Master_SSL_Cipher: 
             Master_SSL_Key: 
      Seconds_Behind_Master: 0 
1 row in set (0.00 sec) 
显示红色那两行,说明配置成功。 

五、测试主从服务器是否能同步 
在主服务器上面新建一个表,必须在repl数据下 
mysql> use repl 
Database changed 
mysql> create table test(id int,name char(10)); 
Query OK, 0 rows affected (0.00 sec) 
mysql> insert into test values(1,'aaa'); 
Query OK, 1 row affected (0.00 sec) 
mysql> insert into test values(1,'bbb'); 
Query OK, 1 row affected (0.00 sec) 
mysql> select * from test; 
+------+------+ 
| id    | name | 
+-------+------+ 
|    1    | aaa   | 
|    1    | bbb | 
+-------+------+ 
2 rows in set (0.00 sec) 
在从服务器查看是否同步过来 
mysql> use repl; 
Database changed 
mysql> select * from test; 
+------+------+ 
| id    | name | 
+------+------+ 
|     1 | aaa  | 
|     1 | bbb | 
+------+------+ 
2 rows in set (0.00 sec) 
说明已经配置成功。

这里给大家一些资料可以加深理解: mysql_master_slave_配置总结.zip   




阅读(1077) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~