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;
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
问题01:
处理方法:
flush logs;清空日志
mysql> stop slave;
change master to master_log_file='mysql-bin.000001',master_log_pos=120;
mysql> start slave;
1主2从搭建步骤:
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
主主搭建步骤:
需要在主从的基础上进行搭建:
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;
可以看到我们这里是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