主数据库和从数据库配置的好处就是你可以进行读写分离、实时备份、故障快速恢复,提高数据库的可用性和安全性。废话不多说,mysql数据库自带的主从配置非常简单,下面我们一步步来演示。
一、主从主机IP(linux centos7环境)
- master(主数据库):192.168.67.128
- slave(从数据库):192.168.67.129
二、master主数据库配置(避免内容过多,本文不涉及数据库安装,这里只展示核心配置)
1.主数据库配置启用二进制日志和服务器标识
打开主数据库的配置文件mysqld.cnf(比如/etc/mysql/mysql.conf.d/mysqld.cnf)
输入内容:
[mysqld]log-bin=mysql-bin #[必须]启用二进制日志server-id=1 #[必须]服务器标识ID,每台服务器唯一
重启数据库
2.查看主数据库状态并赋予从数据库权限
- 在数据库连接客户端或者控制台输入命令查看状态
show master status;
注意:其中的FIle列和Position列在从数据库配置的地方需要用到
- 赋予从节点权限,执行以下两条命令
grant replication slave,replication client on *.* to root@'192.168.67.129' identified by "123456";flush privileges;
说明:root@'192.168.67.129'是从数据库ip和账号,123456是从数据库的密码
三、slave从数据库配置(避免内容过多,本文不涉及数据库安装,这里只展示核心配置)
1.从数据库配置启用二进制日志和服务器标识
打开主数据库的配置文件mysqld.cnf(比如/etc/mysql/mysql.conf.d/mysqld.cnf)
输入内容:
[mysqld]log-bin=mysql-bin #[必须]启用二进制日志server-id=2 #[必须]服务器标识ID,每台服务器唯一
重启数据库
2.授权并连接主节点
- 在数据库连接客户端或者控制台输入命令授权并暂时停止从节点状态
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'root'@'%';flush privileges;stop slave;
- 执行命令连接主数据库
change master tomaster_host='192.168.67.128',master_user='root',master_log_file='mysql-bin.000003',master_log_pos=154,master_port=3306,master_password='123456',master_connect_retry=30;
说明
master_host:主数据库ip
master_user:主数据库账号
master_log_file:主数据库show master status;命令获取的FIle列数据
master_log_pos:主数据库show master status;命令获取的Position列数据
master_port:主数据库端口
master_password:主数据库密码
master_connect_retry:x(当丢失主数据库x秒后发起重连)
- 重新启动从节点
start slave;
- 查看从节点状态
show slave status;
说明:当Slave_IO_Running和Slave_SQL_Running都为yes时代表成功了
Slave_IO_Running:代表和主数据库的通讯状态
Slave_SQL_Running:代表从数据库运行状态
注意不要在从数据库写数据
- 查看效果
在主节点创建数据库db1和表t1,会自动同步到从节点上
觉得对你有帮助的话小手点个关注或赞哦