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

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

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

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

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

主从同步的原理:

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

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

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

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

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

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

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

原文地址:https://www.cnblogs.com/tinyj/p/9864190.html

时间: 2024-11-08 12:26:54

mysql-配置主从数据库,实现读写分离的相关文章

mysql配置主从数据库

1.目的 1.1 实现数据备份 1.2 项目访问时可以实现读写分离,提高访问和操作数据的速度<读写分离好处> 2.背景 这次的主从配置主要实现主库数据的改变可以实现同步到从库中: 此次试验的主库为liunx<ubuntu4.8.2> 下mysql 5.6.19,从库为windows10 下mysql 5.6.24:  3.准备知识 3.1 在liunx下mysql的配置文件为: /etc/mysql/my.conf 3.2 在windows下mysql的配置文件为: mysqlpa

Mysql之主从模式、读写分离概念

MySQL主从架构复制: 在主server上每次进行可能引起数据变化的操作都要先记录到二进制文件中,并将数据同步到主server的磁盘上,与此同时还要通过端口(3306)将二进制日志发送到从server上,在从server上,从server会先将接受的二进制日志保存为中继日志(relay log),在从中继日志中进行读取,重新执行一遍操作,进行数据的复制 但一般来说,如果主server有多个cpu,当数据量变化很频繁时,可能会在每个cpu上都运行一个事务,而注server只能一个个的记录入二进制

windows mysql主 Linux mysql 从 主从同步,读写分离

Mysql 读写分离 YIi 配置 <?php return [     'class' => 'yii\db\Connection',     'masterConfig' => [                // 'dsn' => 'mysql:host=localhost;dbname=studyyii',                 'username' => 'root',                 'password' => 'caesar',

使用mysql proxy对数据库进行读写分离

服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy tar -zxvf mysql-proxy-0.8.5-linux-el6-x86-64bit.tar.gz cp mysql-proxy-0.8.5-linux-el6-x86-64bit /usr/local/mysql-proxy 2.配置环境变量 LUA_PATH="/usr/local/m

MySQL主从同步、读写分离配置步骤

现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i686) using readline 5.1 1.登录Master服务器,修改my.cnf,添加如下内容: server-id = 1 //数据库ID号,

MySQL主从同步、读写分离配置步骤、问题解决笔记

根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用.       为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master)           192.168.0.2 (Slave) MySQL Version:Ver 14.14 Distrib 5.1.48, for pc-linux-gnu (i6

Linux—Centos7.4之搭建Mysql数据库主从同步、读写分离

MySQL主从同步与读写分离 目录第一部分 实验环境第二部分 配置主从同步第三部分 配置读写分离第四部分 测试验证 第一部分 实验环境 实验拓扑图: 服务器五台:1)客户端服务器一台:IP地址:192.168.80.10(client)需安装软件:mysql-boost-5.7.20.tar.gz 2)Amoeba调度服务器一台:IP地址:192.168.80.20(amoeba)需安装软件:jdk-8u144-linux-x64.tar.gzamoeba-mysql-3.0.5-RC-dist

配置 Mysql 读写分离+强制走写节点+根据主从延时的读写分离

配置 Mysql 读写分离+强制走写节点+根据主从延时的读写分离http://www.linuxmysql.com/14/2019/1008.htm 原文地址:https://blog.51cto.com/rscpass/2423421

mysql主从同步、读写分离

一:所需服务器 服务器名称 运行服务 服务端口 Ip地址 T1 Nginx 80 192.168.11.158 负载均衡 T2 Nginx/httpd 80,873 192.168.11.157 实际网站服务 T3 Nginx/httpd 80,873 192.168.11.161 实际网站服务 T4 Nginx/httpd 80,873 192.168.11.162 实际网站服务 T5 Mysql 8066 192.168.11.163 Mysql读写分离 T6 mysql 3306 192.

MySQL数据库之读写分离

一.概述: MySQL数据库主从结构配置以后,正常情况下数据库的所有读写操作全部都在主数据库上面,从数据库仅仅作为数据备份使用,显然无法有效的使用服务器资源,那么实现读写分离的需求就不可避免. 二.拓扑图说明: 如上图所示,本文要实现的是读MySQL数据库的写入操作(增删改)等在Master服务器(192.168.4.10)上面实现,而对MySQL数据库的读取操作(查询)等在Slave服务器(192.168.4.20)上面完成. 如果在程序员编程时创建两个数据库连接Connection,在程序中