您好,欢迎访问一九零五行业门户网

Ubuntu Server 12.10 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做为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则表示已经正常连接,可以进行复制了。
其它类似信息

推荐信息