mysql主从配置

MySQL主从复制认识

青春壹個敷衍的年華 提交于 2020-01-29 15:06:11
MySQL主从复制作用 1)、什么是MySQL主从复制 MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个MySQL数据库从节点。MySQL默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库。 2)、MySQL主从复制作用 一、数据热备 作为备数据库,当主数据库服务器发生故障后,可切换到从数据库继续工作,避免数据丢失。 二、读写分离 可支持MySQL数据库服务器支持更大的并发。数据读写操作可分配在不同的服务器间进行。如操作报表中尤其重要,由于部分报表SQL语句非常的慢,会导致锁表,影响前台服务。使用主从复制,前台使用master,负责写,报表使用slave,负责读,那么报表SQL将不会造成前台锁表,保证了前台正常运行。 三、架构扩展 随着业务量越来越大,I/O访问频率过高,单机可能无法满足。此时做多库的存储,如一主多从方式,以降低磁盘I/O访问,提高单个机器的I/O性能。 MySQL主从复制原理 MySQL数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master节点,数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信

Docker配置mysql主从复制

*爱你&永不变心* 提交于 2020-01-29 11:56:08
学习打卡_Docker容器: 已有环境 tomcat下有一个项目,有一个mysql容器,项目与这个mysql容器对接完成-----配置从服务器 1、创建一个mysql实例 命名从服务器 docker run --name mysql5.7cong -e MYSQL_ROOT_PASSWORD=tiantian -p 3307:3306 -d mysql:5.7 2、搭建从服务器与主服务器表库结构一致 3、完成以上准备工作就可以开始配置主机mysql配置文件 – 进入主机mysql容器 docker exec -it e1066fe2db35 /bin/bash – 安装vim编辑更改配置文件(网速慢?还有另外一种方式:直接把docker容器里面的文件拷贝到docker外面:如 docker cp 31383f231bb2:/usr/local/tomcat/webapps/ qx.war ) 更新软件包 apt-get update 安装vim apt-get install vim – 修改配置文件 vim /etc/mysql/mysql.conf.d/mysqld.cnf – 添加如下内容 ## 同一局域网内注意要唯一 server-id=1 ## 开启二进制日志功能,可以随便取(关键) log-bin=mysql-bin – 重启MySQL服务 service mysql

MySQL主从复制

别等时光非礼了梦想. 提交于 2020-01-29 05:41:41
主从复制 原理 slave会从master读取binlog来进行数据同步。主要有以下三个步骤: ①master将改变记录到二进制日志(binary log),这些记录过程叫做二进制日志事件(binary log events)。 ②slave将master的binary log events拷贝到中继日志(relay log)。 ③slave重做中继日志中的事件,将改变应用到自己的数据库中。MySQL的复制是异步且串行化的。 规则: ①每个slave只能有一个master。(一对一) ②每个slave只能有一个唯一的服务器ID。 ③每个master可以有多个slave。(一对多) 在主从复制过程中,从原理可以看出必然存在延时。 实现步骤: /etc/mysql/my.cnf主机配置中增加 #主服务器唯一ID server-id=1 #启用二进制日志 log-bin=mysql-bin #设置不要复制的数据库(可设置多个) binlog-ignore-db=mysql binlog-ignore-db=information_schema #设置需要复制的数据库 binlog-do-db=需要复制的主数据库名字 #设置logbin格式 binlog_format=STATEMENT 2在从服务 /etc/mysql/my.cnf 新增 #从服务器唯一ID server-id=2

Mysql:主从同步复制

♀尐吖头ヾ 提交于 2020-01-29 00:50:05
文章目录 一:应用场景 主从的作用: 二:MySQL主从备份原理 Mysql主从复制部署环境: 三:主从同步步骤 1:主服务器mysql-master 的配置: <3>手工编译mysql(这里编译mysql5.7版本) 2:从服务器mysql-slave1 的配置: 3:从服务器mysql-slave2 的配置: 4:同步配置完成,主从同步复制效果验证 一:应用场景 在企业网站中,后端Mysql数据库只有一台时,会有以下问题: <1>:单点故障,mysql数据库一旦宕机 ,服务不可用 <2>:无法处理大量的并发数据请求 <3>:数据一旦丢失 会是一大事故 为了防止这类事故的发生,有了更安全有效的改造办法----设置主从同步。 主从的作用: <1>:增加MySQL数据库服务器,对数据进行备份,形成主备。确保主备MySQL数据库服务器数据是一样的,主服务器宕机了,备份服务器继续工作,数据有保障。 <2>:通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力 二:MySQL主从备份原理 master 提供binlog二进制日志 slave    通过 I/O线程从master拿取binlog,并复制到slave的中继日志中 slave    通过 SQL线程从slave的中继日志中读取binlog ,然后解析到slave中 注意:主和从数据库版本必须是一样

配置MySQL主从复制报错Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work

本秂侑毒 提交于 2020-01-29 00:07:17
配置MySQL主从复制报错 Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).   修改配置文件 sudo vim /usr/my.cnf   当时配置从机的时候没改id,应该主机id是1,从机是2   然后重启MySQL服务 sudo service mysql restart   问题解决! 来源: https://www.cnblogs.com/zhqin/p/12239329.html

Mysql -- 读写分离

社会主义新天地 提交于 2020-01-28 20:02:28
文章目录 一、Mysql 读写分离原理 二、关于 Amoeba 三、配置实例 第一步:配置 Amoeba 服务器 第二步:在三台 mysql 服务器上添加权限,开放给 amoeba 访问(即三台mysql允许amoeba对它们进行访问) 第三步:在 amoeba 服务器上配置读写分离功能 第四步:客户端测试 四、总结 一、Mysql 读写分离原理 读写分离就是只在主服务器上写,只在从服务上读; 主数据库处理事务性查询,从数据库处理 select 查询; 数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库 二、关于 Amoeba (1)Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。 (2)Amoeba相当于一个SQL请求的路由器,目的是为负载均衡、读写分离、高可用性提供机制,而不是完全实现它们。需要结合使用MySQL的 Replication等机制来实现副本同步等功能。 三、配置实例 环境说明: 准备三台 Mysql服务器(一台为主服务器,其余两台为从服务器); 一台 Amoeba,用来实现读写分离,写的操作交给主服务器,读的操作发给两台从服务器; 实验验证:在客户机上执行写的操作,在主

Mysql -- 主从复制(主从同步)

蓝咒 提交于 2020-01-28 15:02:28
文章目录 一、为何要进行主从复制 二、Mysql 主从复制的类型 三、主从复制的工作过程 四、案例演示: 第一步:设置时间同步 第二步:主服务器配置 第三步:从服务器配置 第四步:测试主从同步 一、为何要进行主从复制? 在企业网站中,如果后端只要一台 Mysql 服务器时,就会造成,比如单点故障,无法处理大量的并发数据请求和造成数据丢失等一系列问题。 因此,这就体现了 Mysql 主从复制的重要性了: 一台主 Mysql 服务器,多台从服务对数据进行备份,形成主备; 确保主备 Mysql数据库服务器的数据是一样的; 主服务器宕机了,备服务器依旧可以继续工作,数据有保障。 二、Mysql 主从复制的类型: (1)基于语句的复制(默认): 在主服务器上执行的语句,从服务器执行同样的语句。 (2)基于行的复制: 把改变的内容复制到从服务器。 (3)混合类型的复制: 一旦发现基于语句无法精确复制时,就会采取基于行的复制。 三、主从复制的工作过程: 四、案例演示: 环境准备: 两台虚拟机,都搭建好 Mysql 服务; 一台做主服务器,另外一台做从服务器; 实验结果验证:在主服务器上执行的语句,从服务器都会执行同样语句。 主服务器(master) IP地址:192.168.220.141 从服务器 (slave) IP地址:192.168.220.140 第一步:设置时间同步 1、主服务器上:

错误集合

只谈情不闲聊 提交于 2020-01-28 08:00:46
Mysql报错: 出现Can’t connect to local MySQL server thrugh socket ‘/tmp/mysql.sock’(2) 解决方法:注释掉mysql配置文件的socket=/tmp/mysql.sock 主从数据库问题: Slave_SQL_Running: No,解决方法:可以使用命令set GLOBAL SQL_SLAVE_SKIP_COUNTER=1; 注意:在配置主从数据库的时候要先初始化在修改配置文件,否则可能会报错(主从一起配置最好) Mysql查看权限问题: 以管理员ROOT登录后,show grants for ‘user’@’IP‘; 或者 select user from mysql.user; 确认用户账号是否存在。 mysql> show grants for ‘test’@‘127.0.0.1’; ERROR 1141 (42000): There is no such grant defined for user ‘test’ on host ‘127.0.0.1’ mysql> 返回信息:ERROR 1141 (42000): There is no such grant defined for user ‘test’ on host ‘127.0.0.1’ 说明,没有jtsec用户

Mysql读写分离3

亡梦爱人 提交于 2020-01-27 03:32:24
主从复制 常用命令: service mysqld start 数据库启动 service iptables stop 数据库停止 mysql –u root 数据库登录 概念 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。 MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。 那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是所谓的MYSQL的复制,即MYSQL replication。 在上面的模型中,MYSQL-A就是主服务器,即master,MYSQL-B就是从服务器,即slave。 日志系统A,其实它是MYSQL的日志类型中的二进制日志,也就是专门用来保存修改数据库表的所有动作,即bin log。【注意MYSQL会在执行语句之后,释放锁之前,写入二进制日志,确保事务安全】 日志系统B,并不是二进制日志,由于它是从MYSQL-A的二进制日志复制过来的,并不是自己的数据库变化产生的,有点接力的感觉,称为中继日志,即relay log。 可以发现,通过上面的机制,可以保证MYSQL-A和MYSQL-B的数据库数据一致,但是时间上肯定有延迟,即MYSQL-B的数据是滞后的。 【即便不考虑什么网络的因素

mysql 主从服务器搭建

走远了吗. 提交于 2020-01-27 00:31:08
准备两个mysql服务器,这里是 192.168.159.1(主服务器)和 192.168.159.3(从服务器) 两个mysql版本是要一致的,我都是用的MySQL 8.0 然后主服务器中修改mysql的cnf文件([mysqld]下面)添加: log-bin=mysql-bin #这是开启mysql的log 从服务器是读取log进行同步读取的 binlog-do-db=test #这是指定同步那个数据库 我自己建了个test库 server-id=1 #这是指定mysql服务的id,主从服务器中这个id是不能重复的,要保持一致 然后从服务器中需要修改mysql的cnf文件([mysqld]下面)添加: log-bin=mysql-bin # 这个可以不加,没试过去掉这个,保险还是加上了 server-id=3 #这个是指定id,必须要设置的,然后不能和主mysql的一样 设置完配置后重启下mysql support-files/mysql.server restart 然后主服务器创建新的用户 backup 密码设置为 repace 给他test库的权限 (当然用户和权限你们可以自定义,但是要有有 读取备份库的权限 ,我这里是给了test库的所有权限) create user "backup"@"%" identified by "repace"; grant all