mysql主从复制实验

 一 首先主服务器要开启bin-log日志,然后执行全备,打包把数据传到从服务器,

这时候要注意:1、

 

vi /etc/my.cnf

server-id = 1

log-bin = log

binlog-do-db = repldb    //需要同步的数据库,如果没有本行,即表示同步所有数据库

binlog-ignore-db = mysql    //被忽略的数据库 (最好加上这个因为从服务器一般设置为read)

 

masters机上为slave机添加一同步账号

grant replication on *.* to 'rep'@'192.168.1.%' identified by '123456';

重启master机的mysql服务

 

如果从服务器是多少在通一个网段可以允许同一网段。

 

2、备份的时候记得锁表,(所以最好选择在凌晨或其他时候业务不太繁忙的时刻)

3、记录主服务器的2个状态

 

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 |      454 |              |                  |

+------------------+----------+--------------+------------------+

1 row in set (0.01 sec)

这是从服务器到主服务器上同步时需要知道的状态点。

二、把打包的数据导入从服务器的mysql,然后执行

 

l打开slave机中的my.cnf的配置文件,操作过程同master机一样

vi /etc/my.cnf,并添加如下字段

server-id = 2

master-host = 192.168.1.129

master-user = rep

master-password = 123456

master-port = 3306

master-connect-retry = 10 如果同步中断重新发起同步的时间。

然后重启slave机的mysql

进入mysql

mysql>change master to master_host='192.168.1.129',master_user='rep',master_password='123456',master_log_file='mysql-bin.000003', master_log_pos=454 ; 告诉从服务器从那里开始复制同步。 如果一主多从的情况可以写成脚本执行。

mysql>slave start ; 开启同步

mysql>show slave status\G;  查看同步信息

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 192.168.1.129

                  Master_User: rep

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000003

          Read_Master_Log_Pos: 454  和主服务器备份时刻的时间一致

               Relay_Log_File: mysqld-relay-bin.000013

                Relay_Log_Pos: 599

        Relay_Master_Log_File: mysql-bin.000003

             Slave_IO_Running: Yes  从服务器I/O运行正常

            Slave_SQL_Running: Yes  从服务器sql运行正常

              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: 454

              Relay_Log_Space: 900

              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: 

1 row in set (0.02 sec)


ERROR: 

No query specifi

##########################

Slave_IO_Running: Yes  从服务器I/O运行正常

Slave_SQL_Running: Yes  从服务器sql运行正常

如果可以看到这2行说明主从复制已经运行正常。也要注意一下Seconds_Behind_Master: 0  从服务器和主服务器延迟的时间

 

 

 

你可能感兴趣的:(mysql,数据库,知识)