Welcome 微信登录

首页 / 数据库 / MySQL / Ubuntu Server 12.10 MySQL的主从复制笔记

OS:Ubuntu Server 12.10二台服务器,A的内网IP为192.168.1.111,B的内网IP为192.168.1.222,A做为master,B做为Slave1.  配置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 statusG  查看二进制日志的状态,看到类似以下的结果:
          +------------------+----------+--------------+------------------+
          | 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 statusG*************************** 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相关信息见Ubuntu 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=2Linux/Unix shell 脚本清除归档日志文件CentOS5.5下PHP5.2.10未安装MySQL模块的解决方式相关资讯      MySQL主从复制  Ubuntu Server 12.10 
  • CentOS搭建MySQL主从复制,读写分  (今 07:44)
  • MySQL主从复制原理应用基础  (08月27日)
  • MySQL主从复制 实践  (08月22日)
  • MySQL主从复制出现1205错误  (08月31日)
  • MySQL 主从复制原理  (08月22日)
  • 使用XtraBackup进行MySQL不锁表主  (08月09日)
本文评论 查看全部评论 (0)
表情: 姓名: 字数