MySQL主从复制集群部署

MySQL主从复制集群部署

1. 在各个节点上安装MySQL服务

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

2. 使用如下命令启动MySQL服务

systemctl start mysqld

3. 安装完成后使用命令查看root用户默认随机密码

grep "password" /var/log/mysql.log

4. 以root用户随机密码登录登录后修改root的密码

降低密码安全策略

set global validate_password_length=1;

set global validate_password_policy=0;

set password=password("root");

5. 为MySQL创建用户并授权远程访问

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;

6. 配置主从同步

1). 创建同步用户

set global validate_password_length=1;

set global validate_password_policy=0;

create user repl identified by 'repl';

grant replication slave on *.* to 'repl'@'%' identified by 'repl';

2). 修改Master上修改 /etc/my.cnf

mysql的数据文件和二进制文件: /var/lib/mysql/

mysql的配置文件: /etc/my.cnf

mysql的日志文件: /var/log/mysql.log

[mysqld]

log-bin=mysql-bin

server-id=192_168_1_2

3). 重启master的mysql服务

systemctl stop mysqld

systemctl start mysqld

4). 查看mysql的master状态

show master status\G;

5). 在slave上修改 /etc/my.cnf

[mysqld]

server-id=192_168_1_3

relay-log=slave-relay-bin

relay-log-index=slave-relay-bin.index

read_only=1

6). 重启slave的mysql服务

systemctl restart mysql

7). 配置数据库主从同步

登录mysql

change master to master_host='192.168.1.2',master_port=3306,master_user='repl',master_password='repl',master_log_file='mysql-bin.000001',master_log_pos=154;

start slave;

show slave status\G;

注:只要 Slave_IO_Running 和 Slave_SQL_Running都是yes,说明主从同步部署成功;

查看binlog的内容:

cd /var/lib/mysql

mysqlbinlog --base64-output=decode-rows -v mysql-bin.000001

binlog格式:

statement: 基于SQL语句模式;

row: 基于行模式; 记录每一条记录修改后变化的值;

mixed: 混合模式; 由mysql自动判断处理;

查看binlog日志:

show binlog events in 'mysql-bin.000001';

查看binlog当前日志格式:

show variables like '%log%';

binlog_format 值即为当前binlog格式

修改binlog格式:

set global binlog_format='mixed';

或通过修改 /etc/my.cnf

[mysqld]

binlog_format=ROW

binlog默认存储在缓存binlog_cache中

会按照同步策略将binlog_cache中的数据刷新到磁盘;

sync_binlog=0 文件系统来调度把binlog_cache刷新到磁盘

sync_binlog=n 每执行n个事务就刷新一次到磁盘

延时监控

Nagios 做网络监控

mk-heartbeat 监控(利用在master和slave中建表,在master插数据,查看两条数据的时间差,太大会报警)

加Redis缓存,规避主从同步的时间差;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章