Mysql主从配置方法:

PS:修改数据库密码:

ALTER USER USER() IDENTIFIED BY "123456";

主从搭建步骤:

1.主服务器上进行配置:

进入到my.cnf配置文件内:

vim /etc/my.cnf

输入以下内容:

[mysqld]

#主配置

log-bin = mysql-bin

server-id=10

binlog-ignore-db=mysql

binlog_format=mixed

expire_logs_days=10

配置完后重启mysql

systemctl restart mysql

进入数据库:

mysql -uroot -p123456
#也可以使用
mysql -uroot -p

###授权给Slave服务器###

#本服务器地址
GRANT REPLICATION SLAVE ON *.* to 'test'@'192.168.174.133' identified by 'giiso';
grant all on *.* to rep@"%" identified by "123456";
flush privileges;   ---刷新权限

###查询主数据库状态###

mysql> show master status;

mysql 一主多从搭建 mysql一主两从配置_数据库

2.从库上进行配置:

同样进入到vi /etc/my.cnf配置文件内,输入以下内容:

#从配置
log-bin = mysql-bin
server-id=11

进入到数据库内:

###执行同步SQL语句###

#输入主库的IP地址,和mysql-bin的序列号码
change master to master_host = '192.168.174.133', master_user = 'rep', master_port=3306, master_password='123456', master_log_file = 'mysql-bin.000002',master_log_pos=120;

###启动Slave 同步进程####

start slave;

####主从同步检查####

mysql> show slave status\G

如果 i0线程是 no sql线程是yes

mysql 一主多从搭建 mysql一主两从配置_配置文件_02

问题01:

处理方法:

flush logs;清空日志

mysql> stop slave;
change master to master_log_file='mysql-bin.000001',master_log_pos=120;
mysql> start slave;

1主2从搭建步骤:

mysql 一主多从搭建 mysql一主两从配置_服务器_03

1.主服务器上进行配置:

遵循上个主从复制的方法

2.第1台从库服务器配置:

遵循上个主从复制的方法

3.第2台从库服务器配置:

同样进入到我们的my.cnf配置文件内,输入以下内容:

#从配置
log-bin = mysql-bin
server-id=12

###执行同步SQL语句###

#注意我们的IP地址是要和主库一致,mysql-bin记得修改与主库一致
change master to master_host = '192.168.174.133', master_user = 'rep', master_port=3306, master_password='123456', master_log_file = 'mysql-bin.000003',master_log_pos=120;

###启动Slave 同步进程####

start slave;

####主从同步检查####

mysql> show slave status\G

mysql 一主多从搭建 mysql一主两从配置_服务器_04

主主搭建步骤:

需要在主从的基础上进行搭建:

1.133主服务器上进行配置:

进入到vi /etc/my.cnf里面配置以下文件:

log-bin = mysql-bin
server-id=1
binlog-ignore-db=mysql
auto_increment_increment=2      #进步值auto_imcrement.一般有n台主Mysql就填写n
auto_increment_offset=1        #起始值,一般填第n台主mysql,此时为第二台主mysql

重新启动mysql:

systemctl restart mysql

2.134主服务器上进行配置:

进入到vi /etc/my.cnf里面配置以下文件:

log-bin = mysql-bin
server-id=2
binlog-ignore-db=mysql
auto_increment_increment=2      #进步值auto_imcrement.一般有n台主Mysql就填写n
auto_increment_offset=2         #起始值,一般填第n台主mysql,此时为第二台主mysql

重新启动mysql:

systemctl restart mysql

进入134服务器数据库创建账号:

GRANT REPLICATION SLAVE ON *.* TO 'sally1'@'%' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;

创建好后,切换到133服务器上:

mysql -h 192.168.174.134 -usally1 -p123456
#注意账号的变化

如果可以登录进去134数据库的话,用root用户重新登录133数据库,注意这里都是在133服务器上操作

mysql -uroot -p

在这之前要分别检查一下133和134的数据库master信息是否可以出来,然后我们先记住134的master信息

show master status;

mysql 一主多从搭建 mysql一主两从配置_mysql_05

 可以看到我们这里是505

所以我们在133服务器上的授权操作是Poistion505

CHANGE MASTER TO MASTER_HOST='192.168.174.134', MASTER_USER='sally1', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=505;

启动slave

start slave;

查看133和134服务器slave\G里面IO和SQL是否YES

show slave status\G

测试:在133和134服务器上分别创建数据库看看能不能同步

create database ll;

主主-keepalived搭建步骤:

需要在主主的基础上进行搭建:

配置keepalived高可用,以mysql-01为例,需要注意的地方有标注5.1安装keepalived

yum install keepalived -y          
#(两台都需要安装)

1.133主服务器上进行配置:

修改配置文件

vi /etc/keepalived/keepalived.conf

配置文件内容如下:

! Configuration File for keepalived
global defs {
	notification_email {
		1994310356@qq.com
}
	notification_email_from 1994310356@qq.com
	smtp_server 192.168.174.133
	smtp_connect_timeout 30
	router_id mysql-01		#在MYSQL-02上配置时要改成MYSQL
}

vrrp_script check_mysqld {
	script “/etc/keepalived/check_mysql.sh”
	interval 2
weight -2
}

重启mysql

systemctl restart mysql

2.134主服务器上进行配置:

修改配置文件

vi /etc/keepalived/keepalived.conf

配置文件内容如下:

! Configuration File for keepalived
global defs {
	notification_email {
		1994310356@qq.com
}
	notification_email_from 1994310356@qq.com
	smtp_server 192.168.174.133
	smtp_connect_timeout 30
	router_id mysql-02		#在MYSQL-02上配置时要改成MYSQL
}

vrrp_script check_mysqld {
	script “/etc/keepalived/check_mysql.sh”
	interval 2
weight -2
}

重启mysql

systemctl restart mysql