mysql 主从备份和双主备份配置

 

 主机:192.168.52.135  安装lnmp服务(后面我的机器ip变成了192.168.52.139,就是之前135的机器)

 从机:192.168.52.136  安装lnmp服务(从机可以有多台)

 

一:主从配置

1.打开主机的my.cnf配置文件

#vim /etc/my.cnf

找到log-bin = mysql-bin , binlog_format = mixed  ,确定开启

server-id = 1 可以改成server-id = 135 ,避免重复,保存退出

2.重启mysql让其生效

#lnmp mysql restart

3.验证是否成功

#cd /usr/local/mysql/var/   (mysql存放日志文件的目录)

#ll

若目录下有了mysql-bin.000001 mysql-bin.000002 ... 等二进制文件证明成功了

4.登陆mysql

#mysql -uroot -p123456  (u后面跟账号,p后面跟密码)

#show master status;  

若看到有File(mysql.bin.00003)  Position(154) 则成功

二:配置从机

1.打开从机的my.cnf配置文件

#vim /etc/my.cnf

找到log-bin = mysql-bin , binlog_format = mixed ,并注释掉

server-id = 1 可以改成server-id = 136 ,避免重复,

在server-id下增加relay_log =  mysql-relay-bin ,保存退出

2.重启mysql让其生效

# lnmp mysql restart

三:.让从机去监听主机日志,但这之前得让主机允许,开启权限

1.回到主机,登陆入数据库

#mysql -uroot -p123456

#grant replication slave on *.* to slave@192.168.52.136 identified by '123456';

# flush privileges;刷新

(这句话意思是,主机允许slave用户,通过密码123456,在192.168.52.136这台服务器上访问当前这台master)

2.回到从机,先检查下主机是否能ping通

#ping 192.168.52.135

ping通则下一步

3.登陆入数据库

#mysql -uroot -p123456

4.设置从机监听主机

#mysql>stop slave;

#mysql>change master to    (设置监听)

     ->master_host='192.168.52.135',

     ->master_port=3306,

     ->master_user='slave',

     ->master_password='123456',

     ->master_log_file='mysql-bin.000008' , (回主机第4步查看file的名称)

     ->master_log_pos=258;  回车 (回主机第4步查看Position的值)

查看主机master状态得知

#mysql> start slave;开启监听

#mysql> show slave status\G;  查看slave状态

若Slave_IO_State : Waiting for master to send event (等待主机发送事件)

Slave_IO_Running: Yes  ,若它为No,检查下主机防火墙是否已关闭

Slave_SQL_Running:Yes  这俩项都是yes则配置成功了

 

5.验证数据库是否同步

#mysql>use imooc_shop;  imooc_shop数据库名

#mysql>show tables;  查看所有表名

#mysql>select * from user;  查看表数据

6.回到主机,一样查看主机的select * from user,

再删除或添加数据,再去从库看是否同步

在主机192.168.52.135上操作mysql

在从机192.168.52.136上查看mysql

三:主从配置好还有个缺点,一旦master挂掉,业务就是停止.

解决问题,用双主备份

1.回到上面的从机:192.168.52.136

#vim /etc/my.cnf

找到log-bin = mysql-bin , binlog_format = mixed  ,确定开启

在relay_log 下面增加一行

log_slave_updates = 1

退出保存

2.#lnmp mysql restart

3.授权给master:192.168.52.135

#mysql -uroot -p123456

#grant replication slave on *.* to master@192.168.52.135 identified by '123456';

# flush privileges;刷新

4.让主去监听从的变化

回到主机

#vim /etc/my.cnf

找到server_id = 135 ,在下面增加两行

relay_log = mysql-relay-bin

log_slave_updates = 1

保存退出

 

5.#lnmp mysql restart

6.和上面配置相同,互为主备,下面简略

7.回从机

#mysql -uroot -p123456

#stop slave;

#change master to

master_host='192.168.52.135',master_port=3306,master_user='slave',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=452;

#start slave;

#show slave status\G;

8.Slave_IO_Running: Yes

Slave_SQL_Running:Yes  这俩项都是yes则配置成功了

若Slave_IO_Running: No 则检查下主机的防火墙是否关闭

 

9.验证

主机操作

从机操作查询

©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值