mysql从读数据库配置_mysql-配置主从数据库,实现读写分离

主从分离的原则:所有的写操作在主数据库中进行,因为主从分离的原理是涉及到同步数据,那就可能会出现延迟或者其他问题,就可能会出现脏数据。

所以,在从库中进行的读操作也必须是有一定容忍性的数据,例如日志等。

例如需要注意,如果一个业务中有读和写的操作。

那么这个操作的库必须是主库,因为这个涉及到事务,需要非常小心。

主从同步的原理:

从数据库后台线程请求主数据库的更新数据,主数据库后台线程接收到请求后会读取bin-log文件内容,然后放到从库的请求响应中。

从库接收到响应后,会将接收到的内容放到relay-log文件中,然后读取这个文件中同步过来的sql,然后在执行一遍。

好了,下面先新增一个从数据库:

1,复制一个已经安装好的mysql就好2,修改新mysql的相关配置(端口,安装目录,数据目录),在my.ini文件中修改port,basedir,datadir3,为新的mysql创建数据目录(从mysql的安装目录中拷贝data文件夹);4,打开cmd命令窗口,为新的mysql创建windows系统服务mysqld install MySQL2  --defaults-file="D:\MySQL Server 5.5 Copy\my.ini"

5,检查创建的系统服务,并启动测试;

5e6c11e01fc93b35b4a1fcb60b2805c8.png

到这里,就把从数据库搞好了。

接下来就是配置主从数据库了。

1.在主数据的my.ini文件中增加如下信息:

server-id:3306//给数据库服务的唯一标识,一般为大家设置服务器Ip的末尾号,在一个集群中,这个id是不能重复的;

log-bin=master-bin://开启二进制文件;后面设置的这个master-bin就是二进制文件的名字前缀(名字);

log-bin-index=master-bin.index//开启二进制文件的索引;名字一般为log-bin.index

2.启动主数据库,执行show master status;

mysql>show master status;+-------------------+----------+--------------+------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+-------------------+----------+--------------+------------------+

| master-bin.000001 | 107 | | |

+-------------------+----------+--------------+------------------+

1 row in set

只要能查询到信息,说明主库OK了。

这里要注意上面显示的Postion是指当前bin-log文件记录到的位置,如果你的从数据库可以对过去的数据既往不咎,那你在下面设置同步时可以将起点设置为最新的Postion,不过这样会出现数据不一致的情况,看情况选择吧。

3.配置从数据库

在从数据的my.ini文件中增加如下信息:

server-id=3307;//不一定3307,随你

relay-log=slave-relay-bin

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

4.启动从服务器

5.让从数据库指定master库,并且设置同步数据的信息

在从数据库的命令行中运行下面的这一句命令

change master to master_host='127.0.0.1',

master_user='root',

master_password='admin',

master_port=3306,

master_log_file='master-bin.000001',

master_log_pos=107;

解释一下,最后master_log_pos=107的作用是指定请求同步Master的bin-log的哪一行数据之后的内容;

6.完事了,修改主数据库的数据,然后测试从数据库的数据是否跟着同步修改了呢。

java项目如何进行读写分离?可以看我另一篇文章参考下:

https://www.cnblogs.com/tinyj/p/9864128.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值