Mysql群集服务器之主从安装

Mysql群集服务器之主从安装
Mysql群集服务器之主从安装
Master:10.206.35.12
Slave:10.206.35.8
Centos7安装Mysql5.7
1-由于CentOS 的yum源中没有mysql,需到mysql的官网下载yum repo配置文件
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Mysql群集服务器之主从安装
2-进行repo的安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
Mysql群集服务器之主从安装
Mysql群集服务器之主从安装
Mysql群集服务器之主从安装

3-yum命令即可完成安装
yum install mysql-server -y
Mysql群集服务器之主从安装
4-启动Mysql
systemctl start mysqld
Mysql群集服务器之主从安装
5-获取安装时的临时密码: vlfhh)Na)5iU
grep 'temporary password' /var/log/mysqld.log
倘若没有:
(1)删除原来安装过的mysql残留的数据
rm -rf /var/lib/mysql
2)再启动mysql
Mysql群集服务器之主从安装
6-登录
mysql -u root -p
Mysql群集服务器之主从安装
7-修改密码
set password=password("silence2@T");
Mysql群集服务器之主从安装
8-Master配置
vi /etc/my.cnf添加以下内容
server-id=1#设置主服务器的ID,不能重复
innodb_flush_log_at_trx_commit=2#
log-bin=mysql-bin-1#开启binlog日志同步功能
binlog-do-db=test#同步test库
Mysql群集服务器之主从安装
重启MySQL
systemctl restart mysqld
systemctl status mysqld
Mysql群集服务器之主从安装
登录MYSQL
mysql -u root -p
grant replication slave on . to 'mark'@'10.206.35.%' identified by 'silence2@T';
grant replication slave on . to 'mark'@'192.168.0.%' identified by 'silence2@T'; 
Mysql群集服务器之主从安装
授权给从数据库服务器用户名mark,密码123456,192.168.56.%使用通配符表示该网段下所有服务器均可使用
查看主数据库状态
show master status;
Mysql群集服务器之主从安装
9-Slave数据库配置
vi /etc/my.cnf
server-id=2
innodb_flush_log_at_trx_commit=2
sync_binlog=1
log-bin=mysql-bin-2
Mysql群集服务器之主从安装
重启MySQL服务
systemctl restart mysqld
登录MySQL数据库
mysql -u root -p
Mysql群集服务器之主从安装
语句中的master_log_file、master_log_pos与上图一致。
change master to master_host='10.206.35.12', master_user='mark' ,master_password='silence2@T', master_log_file='mysql-bin-5.000001' ,master_log_pos=448;
Mysql群集服务器之主从安装
开启从库 (stop slave:关闭从库)
start slave;
Mysql群集服务器之主从安装
Slave_IO_Running,Slave_SQL_Running 都为Yes的时候表示配置成功
show slave statusG
Mysql群集服务器之主从安装
在MASTER上创建数据库,测试同步
create database mysql_db_test charset=utf8;
show databases;
use mysql_db_tesb
create table t0 (id varchar(20),name varchar(20));
show tables;
insert into t0 values ("001","wugk1");
insert into t0 values ("002","wugk2");
select * from t0;

MySQL主从同步排错思路
1-忽略错误,继续同步;停止Master写入
flush tables with read lock;
Slave端停止I/O及SQL线程,跳过同步错误的SQL一次,启动同步
stop slave;
set global sql_slave_skip_counter = 1;
start slave;

2-重新做主从同步,使用数据据完全同步
Master将数据库设置为全局读锁,不许写入
flush tables with read lock;
Master端基于mysqldump、xtraackup工具对数据进行完整备份,也可以用shell
脚本或python实理定时备份,备份成功后,将完整的数据导入至从库,重新配置主从
关系,当slave端的I/0线程SQL线程均为YES之后,将MASTER读写解开:
unlock tables;

原文地址:https://www.cnblogs.com/aiaitie/p/12785040.html