时间:2021-07-01 10:21:17 帮助过:4人阅读
节点设置:
系统:CentOS7
MySQL:最新
192.168.100.101 node01 主
192.168.100.102 node02 从
192.168.100.103 node03 从
简单原理:
步骤:
第一步:安装mysql(yum源安装,最简单,可自动替换mariaDB)
1.安装wget命令 --CentOS7不能直接使用yum安装MySQL
yum install -y wget
2.下载rpm源 --此处为最新mysql版本
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
3.解压rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
3.安装mysql
yum -y install mysql-server
4.查看临时密码
cat /var/log/mysqld.log *A temporary password is generated for root@localhost:******
5.修改root密码
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER ‘root‘@‘localhost‘ IDENTIFIED BY ‘123456‘;
6.可远程访问
grant all privileges on *.* to ‘root‘@‘%‘ identified by ‘123456‘ with grant option;
flush privileges;
7.启动
systemctl start mysqld.service
第二步:克隆虚拟机node02,node03
第三步:主从配置
1.在3个mysql上建库(相同的库)
create database tmp;
2.修改my.cnf配置文件
node01(主):
my.cnf添加
log-bin=master-bin --bin_log名称
binlog-format=ROW --共3种模式,ROW指的是把改变的内容复制过去,而不是把命令在从服务器上执行一遍,statement指的是在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。mixed指的是默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
server-id=1 --要求各个服务器的id必须不一样
binlog-do-db=tmp --同步数据库名称
mysql中配置
set global validate_password_policy=0; --授权操作
set global validate_password_length=1;
grant replication slave on *.* to ‘root‘@‘%‘ identified by ‘123456‘; --允许从服务器可以复制内容
flush privileges; --刷新权限
重启mysql服务:systemctl restart mysqld.service
登录mysql:mysql -uroot -p123456
查看binlog名称及位置:show master status\G --复制一下binlog名称以及position位置
node02(从):
my.cnf中
log-bin=master-bin --二进制文件的名称
binlog-format=ROW --二进制文件的格式
server-id=2 --服务器的id
mysql中
change master to master_host=‘192.168.100.101(主节点IP)‘,master_user=‘root‘,master_password=‘123456‘,master_port=3306,master_log_file=‘master-bin.000002(主节点binlog名称)‘,master_log_pos=154(position);
start slave;
node03(从):
my.cnf中
log-bin=master-bin --二进制文件的名称
binlog-format=ROW --二进制文件的格式
server-id=3 --服务器的id
mysql中
change master to master_host=‘192.168.100.101(主节点IP)‘,master_user=‘root‘,master_password=‘123456‘,master_port=3306,master_log_file=‘master-bin.000002(主节点binlog名称)‘,master_log_pos=154(position);
start slave;
常见问题:
wget不能安装(网络问题)
①vi /etc/sysconfig/network-scripts/ifcfg-ens33
ONBOOT=yes
MM_CONTROLLED=no
②vi /etc/resolve.cnf
nameserver=8.8.8.8
slave_IO_Running:No
①slave设置的监控主节点的binlog文件配置名称出错或位置出错,重新在从节点的mysql中设置主节点信息
stop slave
change master to master_host=‘192.168.100.101(主节点IP)‘,master_user=‘root‘,master_password=‘123456‘,master_port=3306,master_log_file=‘master-bin.000002(主节点binlog名称)‘,master_log_pos=154(position);
start salve
②不同节点的UUID相同了,查看不同节点的/var/lib/mysql/auto.cnf是否相同
如果相同,则将从节点的auto.cnf删除,它会重新生成一个新的UUID的
Slave_SQL_Running:No
stop slave;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
start slave;
MySQL主从复制 搭建
标签:row adb png generated ice database lease centos stat