欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MySQL - 主从复制

程序员文章站 2022-06-29 11:28:46
...

什么是主从复制

主从复制,是用来建立一个和主数据库完全一样的数据库环境,称为从数据库,主数据库一般是准实时的业务数据库。在最常用的mysql数据库中,支持单项、异步赋值。在赋值过程中,一个服务器充当主服务器,而另外一台服务器充当从服务器;此时主服务器会将更新信息写入到一个特定的二进制文件中。
并会维护文件的一个索引用来跟踪日志循环。这个日志可以记录并发送到从服务器的更新中去。当一台从服务器连接到主服务器时,从服务器会通知主服务器从服务器的日志文件中读取最后一次成功更新的位置。然后从服务器会接收从哪个时刻起发生的任何更新,然后锁住并等到主服务器通知新的更新。

原理

MySQL - 主从复制

复制的三步骤

  1. master将改变记录到二进制日志。这些记录过程叫做二进制日志事件,binary log events
  2. slave将master的binary log events拷贝到它的中继日志
  3. slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL复制是异步的且串行的

复制的基本原则

  1. 每个slave只有一个master
  2. 每个slave只能有一个唯一的服务器ID
  3. 每个master可以有多个salve

一主一从常见配置

MySQL版本一致且后台服务可以运行
主从主机可以相互通信
主从配置都在[mysqld]结点下,都是小写

主从机配置文件

主机配置文件-my.ini
server-id = 1 # [必须]主服务器唯一ID
log-bin = 自己本地的路径/mysqlbin # [必须]启用二进制日志
log-err = 自己本地的路径/mysqlerr # [可选] 启用错误日志

从机配置文件-mysqld.cnf /etc/mysql/mysql.conf.d/mysqld.cnf
server-id = 1 # [必须]主服务器唯一ID
log-bin = 自己本地的路径/mysqlbin # [可选]启用二进制日志

修改过配置文件之后,要重启MySQL服务

service mysql restart

主从都关闭防火墙

service iptables stop

在Windows主机上建立账户并授权slave

grant replication slave on *.* to 'zhangsan'@'从机数据库IP' identified by '12345
6';
show master status;
记录下File和position的值

配置Linux从机

change master to master_host = '192.168.0.161',
master_user = 'juran',
master_password = '123',
master_log_file = 'binlog.000004',
master_log_pos= 908;

测试是否配置成功

start slave; 启动从服务器复制功能
show slave status\G

下面两个参数都是yes,则说明主从配置成功
slave_io_running:yes
slave_sql_running:yes
相关标签: 数据库优化