Ubuntu Server 12.10 Mysql的主从复制笔记

二台服务器,A的内网IP为192.168.1.111,B的内网IP为192.168.1.222,A做为master,B做为Slave
1.  配置A的Mysql
     (1)  vim /etc/mysql/my.cnf
           去掉[mysqld]段中 server_id =1 和log_bin=/var/log/mysql/mysql-bin.log的#注释
           加上  binlog-do-db = s3     s3就是要同步的数据库的名称,如果没有这一行,表示同步所有的数据,另外 binlog_ignore_db = mysql。要表示忽略同步的数据库名称为mysql,如果有多个要指定同步或是忽略同步的数据,就配置多行,保存退出。
     (2) 创建一个复制用的账户(名称为repl,允许从远程连接,密码为123456):
          GRANT REPLICATION SLAVE, RELOAD,SUPER, NO *.* TO repl@'%' IDENTIFIED BY '123456';
        FLUSH PRIVILEGES;
     (3) 重启mysql服务,或是直接reboot机器也可以
     (4) 进入mysql,然后用 show master status\G  查看二进制日志的状态,看到类似以下的结果:
          +------------------+----------+--------------+------------------+
          | File                      | Position  | Binlog_Do_DB | Binlog_Ignore_DB |
          +------------------+----------+--------------+------------------+
          | mysql-bin.000003 |     1376  | s3                  |                           |
          +------------------+----------+--------------+------------------+
2.  配置B的Mysql
      (1) vim /etc/mysql/my.cnf
           去掉[mysqld]段中 server_id =1 和log_bin=/var/log/mysql/mysql-bin.log的#注释,把server_id改为2,要和master机器的不一样。并增加以下内容:
           binlog_do_db=s3
           log-slave-updates
          保存退出
     (2) 重启mysql服务
     (3) 进入mysql,执行
          CHANGE MASTER TO MASTER_HOST='192.168.1.111', MASTER_USER='repl',Master_Port=3306,MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=1376;
          SLAVE START;
          注意上面的CHANGE语句中,MASTER_LOG_FILE和MASTER_LOG_POS就是上面1.4中提到的show master status命令得到的结果,指定二进制文件的名称和开始同步的位置。
     (4) 查看SLAVE状态:    show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.111
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000003
          Read_Master_Log_Pos: 1376
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 1355
        Relay_Master_Log_File: mysql-bin.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: 1376
              Relay_Log_Space: 1512
              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
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 1
    上面的红色二行如果为YES则表示已经正常连接,可以进行复制了。

刚进场的时候戏就落幕

你可能感兴趣的:(Ubuntu Server 12.10 Mysql的主从复制笔记)