摘要: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表,检查从库数据表是否插入了数据。