Linux下mysql数据库一主一从同步配置

    xiaoxiao2021-12-10  14

    MySQL主从同步配置

    mmj 16.09.29

    1.确认运行环境

    1.1确认主从IP

    主服务器(master):192.168.3.10

    从服务器(slave):192.168.3.18

    1.2确认数据库版本

    都为5.5.31

    2.主服务器上配置

    2.1修改MySQL配置文件

    路径: /etc/mysql/my.cnf

    添加以下内容:在[mysqld]下方

    server-id=1

    log-bin=mysql-bin

    binlog-do-db=tt

    binlog-ignore-db=js_xy

    其中server-id是服务器id

    log-bin=mysql-bin启用二进制日志

    binlog-do-db是需要同步的数据库

    2.2重启service

    在命令行:sudo/etc/init.d/mysql restart

    (Win中可以在服务中停止,再开启服务)

    如果重启失败:说明设置的参数不正确(检查大小写,空格,单词拼写)

    2.3注册用户

    2.3.1注册可访问主库文件的用户

    root登录输入:grantreplication slave on *.* to 'slave'@'%' identified by '123456';

    给所有ip分配一个访问二进制文件权限的用户slave.

    2.3.2 从库连接测试

    在从库上进行测试 slave用户是否能连接到主库的mysql:mysql -h 192.168.3.10 -uslave -p123456

    2.4展示主库日志信息

    (前提:在此时数据库不能进行数据交互。否则就要进行锁表)

    mysql>showmaster status;

    例子:

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

    |File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

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

    |mysql-bin.000011 | 107 |tt |js_xy |

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

    1row in set (0.00 sec)

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

    记录下 : mysql-bin.000011 107

    3.从服务器上配置(Windows也适用)

    3.1修改MySQL配置文件

    路径:/etc/mysql/my.cnf win上是my.ini

    server_id=2

    log-bin=mysql-bin

    replicate-do-db=tt

    replicate-ignore-db=mysql

    保证server-id和主库不同

    3.2重启server= 2.2步骤

    3.3设置同步

    3.3.1重置同步

    清除此前可能进行的同步配置 :mysql> reset slave;

    3.3.2停止同步

    停止同步,默认同步是开启的:mysql>slavestop;

    3.3.3配置同步

    mysql>changemaster to

    master_host='192.168.3.10',

    master_user='slave',

    master_password='123456',

    master_log_file='mysql-bin.000011',

    master_log_pos=107

    master_host表示是主库的IP

    master_user表示主库master上允许同步的用户

    maser_password表示同步用户的密码

    master_log_file表示从哪个binlog文件开始同步

    master_log_pos表示从该binlog文件的那个pos节点位置开始同步.

    注意:master_log_filemaster_log_pos,就是我们在第四步记录的binlog文件名和pos位置节点。

    3.3.4开启同步

    重新开启同步 :mysql>slavestart;

    3.4查看同步状态

    mysql>show slave status\G;

    当命令窗信息中 Slave_IO_Running YES同时Slave_SQL_Running YES

    说明此时同步已经配置成功了!

    如果Slave_IO_RunningNO,说明可能是从库与主库的网络不通。

    如果Slave_SQL_RunningNO,说明很可能是从库与主库的数据不一致。

    可能原因有:

    1.防火墙

    2.selinux

    3.网络通不通

    4.pos不对

    5.配置打错

    6.更改配置或其他操作以后:slavestop然后再slavestart

    7. 进行3.3.1重置同步

    转载请注明原文地址: https://ju.6miu.com/read-700158.html

    最新回复(0)