环境:Linux服务器 * 2

需要两个数据节点可以相互Ping通,打开防火墙端口

  • 主从复制是为了在高并发下对数据库的读写分离,增删改由主数据库进行操作,查由从数据库进行操作,主服务器在进行数据变更后,从数据库会进行获取住数据库的binglog,读取增删改的内容,并同步到本地服务器

主服务器配置

  • 配置数据库配置文件my.cnf; 找不到my.cnf 就find / -name my.cnf 找到后继续修改内容

  • vim /etc/my.cnf 配置数据库my.cnf配置文件信息
    server-id=1 log-bin=master-bin log-bin-index=master-bin.index

  • 保存后,重启数据库.centos7:systemctl restart mysqld;

  • 进入数据库 mysql -u 用户名 -p 输入密码;

  • show master status;查看主服务器状态
    在这里插入图片描述

  • 为从数据库赋权
    grant replication slave on *.* to username@'ip' identified by 'password';

  • 重启数据库 systemctl restart mysqld;

从数据库配置

  • 配置数据库配置文件my.cnf,vim /etc/my.cnf
    server-id=2 relay-log-index=slave-relay-bin.index relay-log=slave-relay-bin
  • 保存后,重启数据库.centos7:systemctl restart mysqld;
  • 连接master
    change master to master_host='ip',master_port=3306,master_user='username',master_password='password',master_log_file='master-bin.000001',master_log_pos=700;
  • master_host:ip地址
  • master_port:端口号
  • master_user:用户名
  • master_password:密码
  • master_log_file:master的binlog文件名,在主服务器的show master status中
  • master_log_pos:主服务器的show master status中的position
  • 开启同步 start slave
  • 关闭同步 stop slave
  • 查看同步状态 show slave status\G 不要加 ';
  • Slave_IO_Running: Yes Slave_SQL_Running: Yes 表示成功了;

测试

  • 主服务器创建一个数据库,创建表插入数据,使用第三方工具创建或者使用代码进行数据插入,查看从数据库,会发现从数据库中也存在刚创建的数据库和插入的数据
Logo

更多推荐