Mysql-主从数据库配置

发布时间 2023-09-19 15:47:44作者: tan253

两台linux服务器,修改主机名为mysql1,mysql2  

1.修改主机名
 服务器1

1 hostname mysql1

 服务器2

1 hostname mysql2

2.关闭防火墙及SElinux服务
mysql1

1 setenforce 0
2 systemctl stop firewalld

mysql2

1 setenforce 0
2 systemctl stop firewalld

3.配置hosts文件
mysql1

1 vim /etc/hosts
 
3 192.168.223.4 mysql1 #ip 服务器实际ip
4 192.168.223.3 mysql2

mysql2

1 vim /etc/hosts
 
3 192.168.223.4 mysql1
4 192.168.223.3 mysql2

4.安装mysql数据库 

Mysql-Linux 环境下部署 - tan253 - 博客园 (cnblogs.com)

5.重启mysql服务
systemctl restart mysqld.service

6.配置主从服务
6.1 mysql1

1 vim /etc/my.cnf
1 log_bin = mysql-bin #记录操作日志
2 binlog_ignore_db = mysql #不同步mysql系统数据库
3 server_id = 3 #数据库集群中的每个节点id都要不同,一般使用IP地址的最后段的数字,例如192.168.200.3,server_id就写3

重启数据库

1 systemctl restart mysqld.service

登录后主节点授权

1 grant REPLICATION CLIENT ON *.* TO user;
2 grant REPLICATION SLAVE ON *.* TO user;
3 grant SUPER ON *.* TO user;
4 grant reload on *.* to user;
5 FLUSH PRIVILEGES ;

6.2 mysql2

1 vim /etc/my.cnf
1 log_bin = mysql-bin #记录操作日志
2 binlog_ignore_db = mysql #不同步mysql系统数据库
3 server_id = 4 #数据库集群中的每个节点id都要不同,一般使用IP地址的最后段的数字,例如192.168.200.3,server_id就写3

重启数据库

1 systemctl restart mysqld.service

登录配置从节点连接主节点的连接信息

1 change master to master_host='mysql1',master_user='user',master_password='000000';

从节点服务开启

1 start slave;

使用show slave status\G命令,并查看从节点服务状态,如果Slave_IO_Running和Slave_SQL_Running的状态都为YES,

1 show slave status\G

###备注
1.虚拟化中直接复制的带数据库的服务器 修改,否则会报错

1 vim /var/lib/mysql/auto.cnf

2.MySQL主从同步故障:Slave_SQL_Running:No  
2.1首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值
进入主节点

1   show master status;
1 change master to
2 master_host='mysql1',
3 master_user='user',
4 master_password='****',
5 master_port=3306,
6 master_log_file='mysql-bin.000006',#对应值
7 master_log_pos=157;#对应值