摘要:mysql主从配置是数据库读写分离、负载均衡等操作的前置准备工作,也是做mysql数据库优化必须掌握的技能,主数据库master上进行写操作,同步数据库,从数据库slave上进行读操作,可以极大的提升性能,降低服务器负载。

mysql主从配置是数据库读写分离、负载均衡等操作的前置准备工作,也是做mysql数据库优化必须掌握的技能,主数据库master上进行写操作,同步数据库,从数据库slave上进行读操作,可以极大的提升性能,降低服务器负载。接下来,详细讲解mysql主从配置的步骤。

1、准备两个数据库主机(数据库版本都为5.7.27)主数据库 | 192.168.1.103 | master |

从数据库 | 192.168.1.102 | slave |

2、数据库主机的前置准备工作

主从数据库版本保持一致

启动两台数据库主机的mysql服务

关闭主机防火墙

相互之间能ping 通 IP

3、主数据库master上配置修改

修改主数据库主机上的数据库配置sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]

bind_address = 0.0.0.0
server-id               = 103                   #自定,但不能和从库的一样
log_bin                 = /var/log/mysql/mysql-bin.log       #开启binlog 日志
expire_logs_days        = 10                     #日志的缓存时间
max_binlog_size     = 200M                         #日志的最大大小
binlog_do_db            = tp5shop                 #同步的数据库名称
binlog_ignore_db        = mysql                  #忽略同步的数据库

4、从数据库slave上的配置修改

修改主数据库主机上的数据库配置sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

[mysqld]

bind_address = 0.0.0.0
server-id               = 102           #自定,但不能和主库的一样
expire_logs_days        = 10  #日志的缓存时间
max_binlog_size         = 200M  #日志的最大大小
replicate_do_db         = tp5shop #同步的数据库名称
replicate_ignore_db     = mysql #忽略同步的数据库

5、配置需要主从同步的数据库(数据库名、表名、表结构、表数据都要一致)

可以用同一数据导入的方式完成,也可以用同样的mysql语句完成数据库、数据表的创建、和数据插入。

6、在主数据库master上创建一个同步权限的账户 用来同步数据mysql> create user 'testuser'@'192.168.1.102' identified by '123456';

mysql> grant replication slave on *.* to 'testuser'@'192.168.1.102' identified by '123456';
mysql> flush privileges; #刷新MySQL的系统权限相关表
mysql> show master status;  #查看主库的状态   不要关闭窗口先  不要重启

记住红色框框位置的两个值。

7、从库配置mysql> change master to master_host='192.168.1.103', master_port=3306, master_user='testuser', master_password='123456',master_log_file='mysql-bin.000011', master_log_pos=878;

mysql> start slave; #开启主从同步
mysql> show slave status \G  #查看从库状态

从库状态中下面两项如果是Yes,说明配置成功Slave_IO_Running: Yes

Slave_SQL_Running: Yes

8、检查能否实现数据同步

在主数据库的slave_test表中插入一条数据,然后在从数据库查看slave_test表,检查从库数据表是否插入了数据。