您的位置:新葡亰496net > 网络数据库 > 新葡亰496net:mysql主从复制笔记,MySQL主从分离

新葡亰496net:mysql主从复制笔记,MySQL主从分离

发布时间:2019-08-09 16:12编辑:网络数据库浏览(62)

    属性越来越好的新服务器申请下来了,我们决定在2台新服务器上选拔mysql5.7,并且使用基本同步、读写分离架构,很不幸这些职分落到了本人的头上。读写分离是在业务代码中完结的,在此不做详述,介绍一下自身搭建MySQL主从的经过。

    MySQL主从告别

    mysql主从复制笔记,mysql主从笔记

    一:测量试验境遇介绍

           主从复制测量试验情况是ubuntu mysql5.7,master服务器ip是192.168.71.135,slave服务器ip是192.168.71.137,ubuntu情况是从一台已铺排好条件的服务器克隆的。

    二:mysql主从配置

    1:)  master配置

    a 在mysql 目录下(/etc/mysql),mysql.cnf文件中增添server-id和Log-bin.主从服务器的server-id不能够同一

    log-bin=mysql-bin

    server-id=100

    新葡亰496net 1

    安装好后,使用show master status;查询一下意况

    新葡亰496net 2

    设置从服务器连接的账号,密码等

    布局连接用户

    GRANT REPLICATION SLAVE ON *.* to 'mysql账号'@'%' identified by '密码';这里是测量试验,未有一些名从服务器的ip.如需点名ip,施行下边三个发令

    GRANT REPLICATION SLAVE ON *.* to 'mysql账号'@'192.168.71.137' identified by '密码';

    布局好后记录重启mysql.

    2:)配置从数据库

    2.1  Slave的布局与master类似(配置文件名称:mysql.cnf,在/etc/mysql目录,你的蒙受可能不是该目录),你陈设完结后照旧需求重启slave的MySQL。配置参数如下:
    log_bin= mysql-bin
    server_id= 110
    relay_log=mysql-relay-bin
    log_slave_updates=1
    read_only=1
    server_id是必须的,何况独一。slave无需开启二进制日志,可是在局地气象下,必须安装,比方,就算slave为别的slave的master,必须设置bin_log。在此处,大家张开了二进制日志,何况展现的命名(暗中认可名叫hostname,然则,假使hostname改造则会油不过生难点)。
    relay_log配置中继日志,log_slave_updates表示slave将复制事件写进自个儿的二进制日志(后边会看到它的用途)。
    稍微人张开了slave的二进制日志,却尚无设置log_slave_updates,然后查看slave的多寡是不是改动,那是一种错误的布局。所以,尽量接纳read_only,它防止改换多少(除了特殊的线程)。可是,read_only并是很实用,特别是那个必要在slave上成立表的施用。

     

    2.2  配置完成后再一次启航mysql

    /etc/init.d/mysql restart

    2.3   施行同步SQL语句

    mysql> change master to
    master_host=’192.168.71.135’,
    master_user=’syncuser’,
    master_password=’123456’,
    master_log_file=’mysql-bin.000001’, -- 该值来源于主库,施行show master status 后的File字段
    master_log_pos=443;
    -- 该值来源于主库,实践show master status 后的position字段**

    2.4 查询从库状态

    start slave;

    show slave statusG

    新葡亰496net 3

     

     三:主库SQL测试

    主库创立数据库:

    Create database copytest;

    创建表:

    Create table tu (uid bigint primary key);

    增添一条数据

    Insert into tu (1);

    现行反革命大家来看从数据库:

    新葡亰496net 4

    从图中可以看看,主库的数据,已经复制到了从库。

    五:总括难题

    1:施行同步语句,出错

    mysql> change master to
    master_host=’192.168.71.135’,
    master_user=’syncuser’,
    master_password=’123456’,
    master_log_file=’mysql-bin.000001’,
    master_log_pos=443;

    并发如下错误:

    Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.

    消除办法:

    删除slave的mysql库的表

    drop table slave_master_info;
    drop table slave_relay_log_info;
    drop table slave_worker_info;
    drop table innodb_index_stats;
    drop table innodb_table_stats;

    重新启航slave数据库:/etc/init.d/mysql restart;

    2:配置好的,slave施行show slave statusG语句后,slave_io_running: no显示no

    slave_io_running: yes工夫健康复制,为no时不恐怕复制,能够观察有三个荒唐,

    Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

    意思是master和slave的uuid重复了,用show variables like '%server_uuid%'查询出uuid,鲜明两台机子的uuid同样,所以出现了上边的错误.

    新葡亰496net 5

    因为基本的utunbu意况是仿制的,所以出现了那几个难题,大家进去mysql的data 目录,修改auto.cnf文件,通过show variables like '

    本文由新葡亰496net发布于网络数据库,转载请注明出处:新葡亰496net:mysql主从复制笔记,MySQL主从分离

    关键词: