MySQl主从复制

2019-01-28  本文已影响7人  Carrism

Mysql实现主从复制

数据库主从同步机制

主从服务器的配置

配置主服务器
  1. 更改配置文件,往服务器配置文件my.cnf中配置log-bin和server-id
[mysqlId]
log-bin=mysql-bin#开启二进制日志
server-id=1
  1. 创建用户可用于从服务器同步的账户
mysql> CREATE USER 'repl'@'从服务器地址' IDENTIFIED BY 'slavepass';#创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'从服务器地址';#分配权限
mysql>flush privileges;   #刷新权限
  1. 查看master状态,记录二进制文件名和位置
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000013 |      155 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
配置从服务器
  1. 修改mysql配置
[mysqld]
server-id=2 #设置server-id,必须唯一
  1. 重启mysql后设置同步SQL语句
mysql> CHANGE MASTER TO
    ->     MASTER_HOST='主服务器地址',
    ->     MASTER_USER='rep1',
    ->     MASTER_PASSWORD='slavepass',
    ->     MASTER_LOG_FILE='binlog.000013',
    ->     MASTER_LOG_POS=155;
  1. 启动slave同步进程
mysql>start slave;
  1. 查看slave状态
mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 主服务器地址
                  Master_User: rep1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: binlog.000013
          Read_Master_Log_Pos: 155
               Relay_Log_File: mysqld-relay-bin.000022
                Relay_Log_Pos: 11765
        Relay_Master_Log_File: binlog.000013
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB: 
        ...

当Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。此时便可以进行测试,当主数据库创建数据库,数据库表并插入数据的时候,查看从服务器上是否有增加相应的数据库,数据库表以及对应的数据

上一篇 下一篇

猜你喜欢

热点阅读