时间:2021-07-01 10:21:17 帮助过:15人阅读
操作系统环境:CentOS5.5
1.MySQL 主从流程图
2.MySQL 主从说明
a.主服务器一定要开启二进制日志文件.
b.MySQL使用3个线程来执行复制功能(其中1个在主服务器上,另两个在从服务器上。当发出START SLAVE时,从服务器创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。主服务器创建一个线程将二进制日志中的内容发送到从服务器。该线程可以识别为主服务器上SHOW PROCESSLIST的输出中的Binlog Dump线程。从服务器I/O线程读取主服务器Binlog Dump线程发送的内容并将该数据拷贝到从服务器数据目录中的本地文件中,即中继日志。第3个线程是SQL线程,是从服务器创建用于读取中继日志并执行日志中包含的更新。
3.主机信息
mysql(主):192.168.96.12
mysql(备):192.168.96.2
4.在主机跟备机上安装mysql
这里使用的是mysql5.5的源码安装.
具体安装过程请查看《CentOS5.5下源码安装mysql5.5》
地址:http://blog.csdn.net/m582445672/article/details/7649999
5.配置主机上的my.cnf文件.
[mysqld]
server-id = 1 # 服务的唯一标识符
log-bin=mysql-bin # 开启二进制日志,默认路径在data/下
binlog_format=mixed # 二进制文件的格式
# 这里有3种格式
# binlog_format=statement 将主库输入的SQL语句,直接写入二进制文件中
# binlog_format=row 将主库修改的行写入二进制文件中
# binlog_format=mixed 以上二种的混合模式
# 在不同二进制格式下,对存储过程,函数,触发器,事件的数据复制可以参考
《mysql5.5 主从复制 (触发器,函数,存储引擎,事件处理)说明》
# 地址:http://blog.csdn.net/m582445672/article/details/7670802
#============下面参数,在本次实验中,不配置========================================
replicate-do-db = test # 需要复制的数据库 (在这个试验中,我不用这个参数)
replicate-ignore-db = mysq # 不需要复制的数据库 (在这个试验中,我不用这个参数)
replicate-ignore-db = information_schema # 不需要复制的数据库 (在这个试验中,我不用这个参数)
# 不使用replicate-do-db,replicate-ignore-db参数就代表全库都复制
# ====================================================================================
启动mysql(主)
6.在主库上面添加一个复制帐号.
GRANT REPLICATION SLAVE on *.* to ‘mark‘@‘%‘ identified by ‘mark‘ WITH GRANT OPTION;
7.配置备机的my.cnf文件
server-id = 2 # 修改成2.
启动mysql( 备 )
#====下面只做讲解,不包含在本次实验中 ======================================
当然,备机上也能开启二进制文件.但在默认情况下.主库复制过来的数据不会写入备库的二进制文件中.
所以如果想A-->B-->C这样的复制.必须有logs-slave-updates = 1
[mysqld]
log-bin=mysql-bin
binlog_format=mixed
logs-slave-updates = 1
# ======================================================================
8.备机连接主机
a.先查看当前主机二进制的位置
mysql>show master status;
b.在备机上执行命令连接主机
mysql> change master to master_host="192.168.96.12", master_port=3306, master_user="mark", master_password="mark", master_log_file="mysql-bin.000004", master_log_pos=107 , master_connect_retry=10;
c.备机上启动IO线程和SQL线程
mysql>start slave;
d.在备机上查看主从状态
mysql>show slave status\G
9.测试主从复制
在主机上创建一个alex的数据库.
主机:
备机:
到这里,主从配置完成
10.主从复制几个非常重要的文件
a.master.info
用于记录连接到哪个服务器,账号和密码
还有记录复制到主服务器的哪个二进制文件和复制到二进制文件的哪个位置
从服务器的IO线程会先把所有的从主服务复制过来的数据全部都放到relay-log.info里面。
并且记录复制到的位置.IO线程只管复制
其余的行可以去看官方文档,上面有详细的介绍
b.relay-log.info
这个是在从服务器的中续日志,记录了写了多少数据到从服务里面.
./ip_lb-relay-bin.000002 # 中继日志的位置
336 # 复制到哪一行
mysql_bin.000004 #这个中继日志中对应主服务器2进制的log的文件名
190 # 对应的位置
特别注意,这里的如果复制到某一句有错,之后的二进制SQL就不会在继续复制了
这里的mysql_bin.000004 190 会在中继日志中有记录的.
SQL线程读取中序日志里面的信息,由relay-log.info信息记录.
11.从服务器复制信息
mysql> show slave status\G
[plain] view plain copymysql主从复制 详解
标签: