美文网首页
记一次MySQL的主从

记一次MySQL的主从

作者: 土豆与番茄 | 来源:发表于2017-11-17 15:04 被阅读0次

    一、理论篇

    1、企业中单台MySQL问题

    1)单点故障

    2)服务不可用无法处理大量的高并发数据请求

    3)数据丢是没有办法恢复

    4)数据丢失导致前端无法正常工作

    解决办法

    1、增加MySQL数据库服务器,对数据进行备份,形成主备

    2、确保准备的MySQL数据库服务器是一样的

    3、主服务器宕机,备份服务器继续工作,数据有保证

    MySQL主从复制与读写分离是密切相关的

    读写分离是基于主从复制来实现的

    二、主从服务器工作原理

    MySQL主从复制的类型:

    1)基于语句的复制

    2)基于行的复制

    3)混合类型的复制

    工作步骤:

    1、MySQL从服务器开启I/O线程,项主服务器请求数据同步(获取主服务器上的二进制日志)

    2、MySQL主服务器开启I/O线程回应从服务器

    3、从服务器得到主的二进制日志写入中继日志中

    4、从服务器开启SQL线程将二进制日志内容执行,实现数据同步。

    实验一、使用三台服务器器,一台主两台从

    mysql-master192.168.11.102

    MySQL-slave1192.168.11.103

    mysql-slave2192.168.11.106

    一、首先在主MySQL上安装时间同步工具ntp

    1、yum -y install ntp

    2、编辑/etc/ntp.conf配置文件

    vim/etc/ntp.conf

    添加下面两句

    server127.127.1.0

    fudge127.127.1.0 startum 8

    sed -n '25,28p' /etc/ntp.conf查看

    3、重启ntp服务

    service ntp restart 

    4、在两台从MySQL上安装ntpdate工具

    yum -y install ntpdate

    1、在两台从服务器上输入ntpd +主MySQL的IP地址

    ntpdate 192.168.11.102将自己的时间同步到主MySQL上

    2、多刷新几次后发现时间差越来越小

    因为时间在前行的时候会有偏差。所以时间同步命令要不时的去执行。所以就要设置一个周期性计划任务来解决

    这样三台服务器的时间就是同步的了

    二、安装MySQL服务

    在主MySQL上配置

    1、cp /usr/share/doc/mysql-server-5.1.71/my-medium.cnf

    /etc/my.cnf

    vim /etc/my.conf

    【mysqld】中

    添加log-slave-updates=true

    修改server-id= 11

    2、重启MySQL

    如果遇到这个错误就是说明你只装了服务端而没有主客户端

    3、在主上给从服务器授权

    grant replication slave on *.* to

    'mysqlslave'@'192.168.11.%' identified b y '123123';

    flush privileges;

    4、查看授权表:mysql> show

    master status;

    三、编辑从服务器两台配置一样,但是server-id的数字不能一样

    1、修改配置文件指定从日志索引

    [root@localhost ~]# vim /etc/my.conf

    添加

    relay-log=relay-log-bin

    relay-log-index=salve-relay-bin.index

    修改server-id= 12

    2、重启

    /etc/init.d/mysqld restart

    3、登陆MySQL授权

    mysql -uroot -p123123

    change

    master to master_host='192.168.11.102',master_user='myslave',master_password='123123'

    ,master_log_file='mysql-bin.000003',master_log_pos=550;

    start slave;

    show slave status\G;

    在主MySQL上创建一个库

    查看从服务器,操作是否同步。

    相关文章

      网友评论

          本文标题:记一次MySQL的主从

          本文链接:https://www.haomeiwen.com/subject/nwdjvxtx.html