在搭建mysql的数据库主从之前,我们在两台不同的服务器上搭建mysql数据库,安装的步骤在下面的博客中:
linux安装mysql :https://blog.csdn.net/wangyunzhao007/article/details/104230509
然后我们正式开始做数据库主从:
1.打开配置文件
vim /etc/my.cnf
2.在配置文件中写入我们的配置
#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库,可以不写,这样就除了不要复制的,剩下的都复制
binlog-do-db=数据库名称
#设置logbin格式
binlog_format=STATEMENT
1.打开配置文件
vim /etc/my.cnf
2.在配置文件中写入我们的配置
修改配置文件: vim /etc/my.cnf
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay
#重启mysql服务器
systemctl restart mysqld
#查看mysql的状态
systemctl status mysqld
重启mysql服务器,查看mysql的状态,如下如是启动成功的状态,代表重启成功;
1.关闭防火墙
#关闭防火墙
service firewalld stop/systemctl stop firewalld
#开启防火墙
service firewalld start/systemctl start firewalld
#查看防火墙的状态
systemctl status firewalld
关闭防火墙之后我们需要查看防火墙的状态,下图分别使我们开启防火墙之后和关闭防火墙之后分查看防火墙的状态:
2.在防火墙开端口 (如果选择了关闭防火墙就不用做这步了)
#开3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
添加成功如下图所示,这时候还需要重新载入防火墙才能生效
#防火墙重新载入
firewall-cmd --reload
重新载入防火墙成功
然后验证是否添加成功
#查看是否添加成功
firewall-cmd --zone=public --query-port=3306/tcp
验证成功,已经添加完毕
1.在liunx系统中登录mysql的主机
#u后是root账户,-p后密码是123456
mysql -uroot -p123456
2.给从机分配一个账号用来做主从复制
#在主机MySQL里执行授权命令
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
3.查看master的状态
#查询master的状态
show master status;
输入命令后我们可以看到一下几个信息 :
记录下File和Position的值
执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化
1.在liunx系统中登录mysql的从机
#u后是root账户,-p后密码是123456
mysql -uroot -p123456
2.配置复制的主机
2.1停止主从复制(不论有没有开启)
#停止从服务器复制功能
stop slave;
2.2重新配置主从
reset master;
2.3配置复制主机 的信息(汉字需要改成上图master中的值)
#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.日志具体数字',MASTER_LOG_POS=位点具体值;
示例,这是根据我的信息写的命令:
CHANGE MASTER TO MASTER_HOST='192.168.157.130',
MASTER_USER='slave',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002',MASTER_LOG_POS=2635;
2.4启动复制
start slave;
2. 5查看主从复制的状态
#查看从服务器状态
show slave status\G;
看到下面两个参数都是Yes,则说明主从配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
则证明主从复制成功了。