Mysql 主从主主复制总结(详细)

时间:2022-09-14 20:20:43

环境:Centos 6.9,Mysql 8.0


配置准备:1、为Centos配置好网络,使用远程工具连接。

               2、安装mysql,途径不限。mysql8.0和5.7区别不大,8.0在配置主从的时候默认开启了binlog,5.7手动起一下就好,下文有启动方法。(我使用rpm包安装,安装后要先启动msyql服务,命令service mysqld start)

               3、mysql安装后的默认密码在 /etc/my.cnf 中 log-error配置项所指向的log地址中 /var/log/mysqld.log  

                    Mysql 主从主主复制总结(详细)

主从复制

好处:多节点性能变优,安全性更高,提高服务器负载。

应用场景:数据库备份、读写分离


 

步骤: 首先。确定一个主节点master,其他为从节点slave。

   1、配置主节点。创建用户授予权限;如果binlog没开启,打开binlog日志;

      2、配置从节点。配置同步日志;确定主节点的ip,端口,用户;启动从节点;

    

主节点(Master):

  修改mysql配置文件,vim /etc/my.cnf 配置server-id的值,与从节点不能重复。

        创建创建一个用户。 create user 'repl'@'192.168.110.%' identified by 'Repl_123456';

                  在主服务器赋予它 replication slave 权限。grant replication slave on *.* to 'repl'@'192.168.110.%';

         mysql 日志类型:

      Error log 错误日志

      General query log普通查询日志

      Slow query log 慢查询日志(记录哪些查询比较慢 )

      Binary log二进制日志文件(1、用于增量备份。2、主从)

          查看是否已开启binlog:show variables like '%log_bin%';

            如果没开启,配置 :vim /etc/my.cnf加上  server-id=1(多台节点值不能重复)和 log_bin=/var/lib/mysql/mysql-bin 保存退出 重启mysql服务。

            查看binlog日志:在mysql中 show binlog events  in '文件名';  在系统中 mysqlbinlog  文件名; 

            每次重新启动mysql都会新建一个binlog。查看当前是哪个binlog文件:show master status;

       show msater logs;(查看所有日志文件),reset master(清空所有日志文件)

  binlog日志恢复数据

       mysqlbinlog 文件名 | mysql -u root -p

 

从节点(Slave):

    修改mysql配置文件,vim /etc/my.cnf 

    配置server_id(不能与主节点重复,且必须为数字)

           配置同步日志路径relay-log=/var/lib/mysql/relay-bin

  进入mysql执行

mysql> CHANGE MASTER TO
 -> MASTER_HOST='192.168.110.66',
 -> MASTER_USER='repl',
 -> MASTER_PASSWORD='Repl_123456',
 -> MASTER_LOG_FILE='binlog.000007',
 -> MASTER_LOG_POS=0;
Query OK, 0 rows affected, 2 warnings (0.01 sec)
 
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

  show slave status\G;检查是否已链接上主节点,根据里面的错误信息修改配置。确保master防火墙关闭,/var/lib/mysql/auto.cnf里的uuid不重复。

       如果出现Slave_Io_Running:yes但Slave_SQL_Running:No的情况执行

       mysql> stop slave;

  mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;

  mysql> start slave;

           Mysql 主从主主复制总结(详细)

 

配置成功!

 主主复制其实的意思就是节点直接互为主从复制。

 在配置好主从之后再去配置从节点,反向配置一遍主从。