本文记录了一次配置MySQL主从复制的实践过程。
1.准备工作:
MySQL服务器两台:
主服务器(master):192.168.1.107
从服务器(slave):192.168.1.110
2.实现过程
(1).开启主数据库的二进制日志
在这遇到了很多坑,网上教程都说修改/etc/mysql/my.cnf文件,只要在其中添加“log-bin=mysql-bin”就可以了,亲测之后发现不好使,重启mysql服务的时候会报错。
经过尝试发现可以通过修改/etc/mysql/mysql.conf.d/mysqld.cnf文件:
第一次尝试将文件中“log_bin= /var/log/mysql/mysql-bin.log”一行的注释打开,重启之后进入mysql,通过“show variables like '%log_bin%';”命令检测,发现日志并没有打开。
第二次尝试将文件该行修改为“log_bin= mysql-bin”,重启mysql服务后检测,日志已经打开,见图:
(2).在主服务器中创建用于从服务器访问的账号"slave_user/123456"
“grant replication slave on *.* to 'slave_user'@'192.168.1.110' identified by '123456'”
创建完成后通过"select user,host from mysql.user;"查看是否创建成功,如下图:
(3).查看主服务器上二进制文件名与位置
“show master status;”
结果如下:
(4).告知从服务器二进制文件名与位置
在192.168.1.110服务器上执行:
“change master to
master_host='192.168.1.107',
master_user='slave_user',
master_password='123456',
master_log_file='mysql-bin.000001',
master_log_pos=154;”
(从服务器需要设置和主服务器不同的service-id)
(5).启动slave同步进程、
在192.168.1.110服务器上执行:
“start slave;”
至此主从复制就配置完成了。
3.测试
在192.168.1.110服务器上执行:“show slave status;”,当看到
Slave_IO_Running和Slave_SQL_Running都为YES的时候就表示主从同步设置成功了。
接下来在主服务器192.168.1.107上创建数据库“test”,在“test”中创建表“user”:
“create database test;”
“use test;”
“create table user(id bigint auto_increment,name varchar(20),primary key(id))”
在192.168.1.110服务器上执行:“show databases;”“show tables;”查看是否同步成功。
两台服务器的数据保持同步,所以主从复制配置成功。
4.其他配置
# 不同步哪些数据库
binlog-ignore-db = mysql
# 只同步哪些数据库,除此之外,其他不同步
binlog-do-db = game
领取专属 10元无门槛券
私享最新 技术干货