逆水行舟 —— MySQL主从复制
Posted msi-chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了逆水行舟 —— MySQL主从复制相关的知识,希望对你有一定的参考价值。
首先我们说说主从复制的原理,这个是必须要理解的玩意儿:
理解:
-
MySQL之间的数据复制的基础就是二进制日志文件bin log ,Master的所有操作都会纪录在二进制日志文件中,其他MySQL通过一个IO线程与其进行通信,监控这个日志文件的变化,并将变化赋值到Slave的中继日志relay中,然后SQL线程会执行中继日志中的相关操作,以此实现主从数据库的一致性,也就是主从复制
主从搭建,配置 Master
准备材料如下:
-
分别装在两台Linux服务器上的数据库
-
master:192.168.159.159
-
slave : 192.168.159.169
master数据库配置文件修改:my.cnf
各自的安装方式不一样,我是通过rpm方式安装的,
在这里扩展一下: 通过这两个命令,大致发现了我的MySQL的安装目录
当然我的配置文件在在 /etc/mysql/my.cnf 在[mysqld]段下添加如下内容
log-bin=mysql-bin
server-id=159
然后重启Mysql: service mysqld restart
登录到MySQL建立账户并授权给Slave
mysql> CREATE USER ‘chen‘@‘192.168.159.169‘ IDENTIFIED BY ‘chen‘; #创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.159.169‘; #为其权限
mysql>flush privileges; #刷新权限
然后查看master状态,记录二进制文件名( mysql-bin.000002 ) 和位置(787)
Master 到这里就配置完成了,下面配置 Slave
第一步修改从服务器的配置文件 : my.conf : server-id=135
第二步删除UUID文件: /var/lib/mysql/auto.cnf 后重新启动服务
第三步登入MySQL,进行从服务器的配置 ,并开启从服务器复制功能
-
change master to master_host=‘192.168.159.159‘,master_port=3306,master_user=‘chen‘,master_password=‘chen‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=787;
-
开启从服务器的复制功能 : start slave;
检查从服务器的复制功能状态:show slave status
以上是关于逆水行舟 —— MySQL主从复制的主要内容,如果未能解决你的问题,请参考以下文章