mysql主从以及多实例(个人笔记仅供参考)

配置MYSQL主从同步

什么是主从同步

 

能实现什么功能

备份,同步数据

 

怎么配置

1、确保配置前主从数据一样

2主master配置

[root@host_51 ~]# systemctl stop mysqld

启用binlog日志文件

[root@host_51 ~]# vim /etc/my.cnf

[mysqld]

server_id=51

log-bin=master51

binlog_format="mixed"

:wq

[root@host_51 ~]# systemctl restart mysqld

mysql> system ls /var/lib/mysql/master51.* #(查看,成功的话会有两个文件)

 

 

 

###### replication slave 数据同步权限

用户授权:给从库添加连接时使用的用户名

mysql> grant replication slave on *.* to repluser@"%" identified by "123qqq...A";

 

查看正在使用的binlog日志信息

mysql> show master status;

 

3从slave库配置

指定server_id

mysql> show slave status\G; #查看是否是从库

[root@host_52 ~]# vim /etc/my.cnf ##指定从库id

[mysqld]

server_id=52        指定id

:wq

[root@host_52 ~]# systemctl restart mysqld

 

管理员本机登陆指定主库信息

mysql> show master status;在主库上查看正在使用的binlog日志信息,完成指定主库

mysql> show slave status;

指定主库

mysql> change master to master_host="192.168.4.52",master_user="user",master_password="123qqq...A",master_log_file="master52.000004",master_log_pos=154;

测试授权用户

[root@host_52 ~]# mysql -h192.168.4.51 -urepluser -p123qqq...A

......

mysql>

 

 

 

查看配置

mysql> stop slave;

mysql> start slave;

mysql> show slave status\G;

 

客户端测试主从配置

在master主库服务器上管理员本机登陆,添加客户端存储数据时,使用的连接用户

mysql> create database game;

mysql> create table t11(id int);

mysql> grant select,insert on game.* to webadimn@"%" identified by "123qqq...A";

 

[root@host_52 ~]  在此机器登陆

[root@host_50 ~]# mysql -h192.168.4.51 -uwebadimn -p123qqq...A;

mysql> insert into t11 values(1245679);

 

[root@host_51 ~]

mysql> select * from game.t11;

[root@host_52 ~]

mysql> select * from game.t11;

同时增加写入数据

实现数据同步

###############################################3

 

ls host52-relay-bin.*   #终极日志文件

 

从库操作

暂时不同步主库数据

stop slave

 

把从库还原单独库

rm -rf master.info relay-log.info   # 还原单独库

rm -rf /var/lib/mysql/host52-relay-bin.*

systemctl restart mysqld

mysql> show slave status\G;

 

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

 

【1主】—【2主(1从)】—【2从】

 

写入1号从库的配置文件 能实现 1主 写入数据,除 1主从 能同步外,2主从也能跟从同步1 

[root@host_52 ~]# vim /etc/my.cnf

[mysqld]

binlog_slave_updates

:wq

 

######################################################################3333

客户端测试主从配置,客户端连接主库存储数据,当在从库本机也能够看到客户端访问连接主库存储的数据。

 

同步数据原理

##################################################################3

 

[root@host_52 ~]# vim /etc/my.cnf  (以下写在配置文件的)

 

server_id=数字                   #指定id (主库、从库

log-bin=master51            #给日志起名(主库

binlog_format="mixed"       #解析翻译日志(主库

slave_log_update            #级联复制(主库从库

binlog_do_db=库名列表           #允许同步的库(主库     从库指定了就不需要

binlog_ignore_db=库名列表      #不允许同步的库(主库   从库指定了就不需要

 

relay_long=名称                  #更改中继日志名(从库

replicate_do_db=库名列表       # 只同步的库(从库    主库指定了就不需要

replicate_ignore_db=库名列表  # 只不同步的库(从库  主库指定了就不需要

 

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

 

 

 

复制模式介绍(配置此模式,主库、从库都需要开启)

 

异步复制(Asynchronous replication)

           主库执行完,立刻将结果反馈客户端,不管从库是否接受并处理了数据

全同步复制(Full synchronous replication)

           主库执行完,且所有从库都执行了该事务后,才将结果反馈客户端

半同步复制(Semisynchronous replication)

           主库执行完,至少一个从库执行了该事务后并写到relay log中才反馈客户端

 

 

模式配置

 

启用半同步模式,需要加载模块 

 

查看是否允许加载模块

 mysql> show variables like 'have_dynameic_loading';

 

 mysql> SELECT PLUGIN_NAME,PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME LIKE '%semi%';

   ###  查看

 mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so';

   ###  主库上执行

 mysql> install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

   ###  从库上执行

 

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

mysql> set global rpl_semi_sync_master_enabled = 1;   ##主库执行

 

mysql> set global rpl_semi_sync_slave_enabled = 1;   ##从库执行

 

mysql> show variables like 'rpl_semi_sync_%_enabled'; ##查看

 

.......................................................................

永久启用半同步复制

vim /etc/my.cnf

主库配置

plugin-load=rpl_semi_sync_master=semisync_master.so

rpl_semi_sync_master_enabled=1

从库配置

plugin-load=rpl_semi_sync_slave=semisync_slave.so

rpl_semi_sync_slave_enabled=1

.....................................................................

在高可用架构下 master和slave需要同时启动,()

以便在切换后能够继续使用半同步复制

【1主2从、2主1从】一个库同时是主库与从库

plugin-load =

"rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"

rpl_semi_sync_master-enabled = 1

rpl_semi_sync_slave-enabled = 1

。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

 

读写分离: 减轻并发压力,提高从库硬件的利用率

 

部署

 

人肉分类:需要程序员协同完成,规定程序员存储时连接master数据库,查询时使用slvae数据库。

 

部署实现数据读写分离服务实现 : Mysql 中间件(mycat、mysql-proxy、maxscale)

                                  

配置

 

1 部署主从同步结构(一主一从)

 

 

[Mysql Monitor]

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

.........................................................................

MySQL多实例

在一台物理主机上运行多个数据库,一个数据库是一个实例

vim /etc/my.cnf

 

[mysqld_multi]

mysqld=/usr/local/mysql/bin/mysqld_safe

mysqladmin=/usr/local/mysql/bin/mysqladmin

user=root

 

[mysqld1]

port = 3307

datadir = /data3307

socket =/data3307/mysql.sock

pid-file = /data3307/mysqld.pid

log-error=/data3307/mysqld.err

 

[mysqld2]

port = 3308

datadir = /data3308

socket =/data3308/mysql.sock

pid-file = /data3308/mysqld.pid

log-error=/data3308/mysqld.err

 

:wq

 

mkdir /data3307

mkdir /data3308

 

初始化文件

[root@host_50 ~]# mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data3307 --initialize

 

[root@host_50 ~]# mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data3308 --initialize

 

启动服务

mysqld_multi start 1

 

mysqld_multi start 2

 

测试配置(登陆)

mysql -uroot -pfA=c13MufMoh -S sock文件

mysql -uroot -pqgdR6u.?Nrba -S sock文件(/data3307/mysql.sock)

 

修改密码

mysql> alter user root@"localhost" identified by "123456";

 

mysql> alter user user() identified by "123456";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值