记一次MySQL的主从

一、理论篇

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的主从)