mysql主从配置

MySQL Replication--半同步复制(Semi-Sync Replication)

↘锁芯ラ 提交于 2020-03-18 07:51:06
半同步复制 默认配置下,MYSQL主从库通过binlog来保持一致,主库事务提交后,将binlog日志写入磁盘,然后返回给用户,备库通过拉取主库的binlog来同步主库的操作,无法保证主备节点数据实时一致,只能保证最终一致,因此属于异步复制。 为保证在主备切换时,主备节点数据完全一致,MYSQL提供了半同步复制,其实现原理为:事务在主库上执行完成,生成BINLOG并推送给备库,等待备库的影响消息,备库将接受到的binlog(file,pos)信息返回给主库,主库接收到背库的确认消息后,在返回给用户,事务提交完成。 半同步复制只保证主库和备库的binlog同步,但主库无需等待备库应用这些binglog就会返回提交结果,从库异步地应用这些binlog,因此主库和从库的数据不是实时同步的,因此称为“半同步”。 半同步复制参数rpl_semi_sync_master_timeout用于控制主库等待备库响应的消息时间(单位ms),如果超过该阀值,则认为备库存在问题,将半同步复制修改为异步复制,避免主库的执行事务长时间等待。参数rpl_semi_sync_master_timeout的默认值为50ms。 rpl_semi_sync_master_enabled:表示主上是否开启半同步复制功能,可以动态修改。可选值:ON\OFF rpl_semi_sync_slave_enabled

Docker搭建 MySQL 主从复制

社会主义新天地 提交于 2020-03-18 07:50:34
############################################################# ##################### run mysq l ######################## ############################################################ 1-1、 docker run docker search mysql5.7; docker run --name master -e MYSQL_ROOT_PASSWORD=123456 -p 13306:3306 -d 镜像ID; docker run --name slave -e MYSQL_ROOT_PASSWORD=123456 -p 23306:3306 -d 镜像ID; --name 容器命名 -e MYSQL_ROOT_PASSWORD=123456 配置mysql的root用户的登陆密码 -p:端口映射,此处 映射主机13306端口到容器master的3306端口 -d:成功启动容器后输出容器的完整ID ############################################################# ##################### master ############

MariaDB 主从复制

两盒软妹~` 提交于 2020-03-18 07:49:39
MySQL Replication :NySQL复制,MySQL的复制默认为异步工作模式 mysql的复制功能是mysql内置的,装上它之后就具备了这个功能,而mysql复制是mysql实现大规模高性能应用的一个基本工具,是 mysql完成水平扩展的基本架构,为了能够应付更多的访问请求,通常情况下我们需要对服务器进行扩展,而扩展通常有两种方式:向上扩展和向外扩展; 向上扩展: scale on,也称为垂直扩展,一般是扩充服务器的内存或CPU颗数的这种就是向上扩展。 向外扩展: scale out,也称为水平扩展,比较一台服务器不够,再加一台服务器,再不够再加,这种情况就是向外扩展。 其实MySQL的的复制功能就是使用MySQL向外扩展的能力,也就是水平扩展的功能。 所谓同步的复制: 首 先主服务器每更新一条数据先写到磁盘文件中,同时还要写一个到二进制日志文件中,从服务器就会到主服务器请求二进制信息保存在中继日志中,保存好后由本地 的SQL thread从中继日志应用到从服务器的本地有磁盘文件中,当这个过程完成之后再由从服务器返回确认结果给主服务器,主服务器才返回结果给客户端的。 所谓异步复制: 当主服务器要写数据时,先写到本地的磁盘,同时写到二进制文件日志中,写好二进制日志文件后就把结果返回给客户端,至于从服务有没有来主服务器同步二进制日志他不关心。 注意

Mysql基于gtid的主从复制错误:1062

倾然丶 夕夏残阳落幕 提交于 2020-03-18 07:49:11
说明: 环境 mysql-master:172.16.200.43 mysql-slave:172.16.200.44 系统:centos7 版本:MySQL5.6.35 一、基于GTID复制环境的搭建前提 主从环境的搭建和5.5没有什么区别,唯一需要注意的是:开启GTID需要启用这三个参数: #GTID gtid_mode = on enforce_gtid_consistency = 1 log_slave_updates = 1 gtid-mode用来设置是否开启GTID功能,如果要开启GTID功能,需要同时开启log-bin和log_slave_updates功能,另外还需要开启enforce_gtid_consistency功能。gtid_mode参数可以设置为on、off、upgrade_step_1、upgrade_step_2四种值,其中upgrade_step_1和upgrade_step_2是给将来mysql可能的新功能预留的,对当前的myql没有任何意义。同时,mysql建议在mysql_upgrade的时候,关闭gtid_mode功能和enforce_gtid_consistency功能,因为Mysql在upgrade期间可能会操作非事务的MyISAM存储引擎表,会引起报错。 二、配置步骤 1、43上面授权44从库的账号 MySQL [(none)]>

Mysql主从配置

我只是一个虾纸丫 提交于 2020-03-18 07:15:09
试验环境 :   主服务器 IP:192.168.17.99   从服务器 IP:192.168.17.88 配置 : 一、主库 1.1、创建一个复制用户,具有replication slave 权限。 mysql > grant all on *.* to ‘jack@’192.168.17.88′ identified by ‘123; 1.2、编辑my.cnf文件   vi /etc/my.cnf   添加   server-id=88 # 标记不同数据库,不能与其他数据库一样   并开启 log-bin二进制日志文件   log-bin=mysql-bin   注 :需要把默认的server-id=1去掉   关闭 mysql   [root@cent] /usr/local/mysql/bin/mysqladmin -uroot -p shutdown 1.3、启动mysql数据库 /usr/local/mysql/bin/mysqld_safe –user=mysql & 1.4 、得到 binlog日志文件名和偏移量 mysql > show master status; +——————+———-+————–+——————+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +——————+———-+————–

数据库主从复制

风流意气都作罢 提交于 2020-03-18 07:09:44
步骤如下: 主服务器:从服务器ip地址分别为 192.168. 145.222、 192.168. 145.226 1、修改主服务器master: vi /etc/my.cnf [mysqld] log-bin=mysql-bin #[必须]启用二进制日志 server-id= 222 #[必须]服务器唯一ID,默认是1,一般取IP最后一段 2、修改从服务器slave: vi /etc/my.cnf [mysqld] log-bin=mysql-bin #[不是必须]启用二进制日志 server-id= 226 #[必须]服务器唯一ID,默认是1,一般取IP最后一段 3、重启两台服务器的 MySQL systemctl restart mariadb 4、在主服务器上建立帐户并授权slave: mysql mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@ '%' identified by 'q123456'; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如 192.168. 145.226,加强安全。 5、登录主服务器的mysql,查询master的状态 mysql>show master status; +------------------+----------+--

mysql主从复制

被刻印的时光 ゝ 提交于 2020-03-18 07:09:08
mysql主从复制 (超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码 2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3、修改从服务器slave: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 4、重启两台服务器的mysql /etc/init.d/mysql restart 5、在主服务器上建立帐户并授权slave: #/usr/local/mysql/bin/mysql -uroot -pmttang mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456'; //一般不用root帐号,“%”表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.145.226

Linux centosVMware MySQL主从介绍、准备工作、配置主、配置从、测试主从同步

一笑奈何 提交于 2020-03-18 06:26:10
一、MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主从后,在A上写数据,另外一台B也会跟着写数据,两者数据实时同步的 MySQL主从是基于binlog的,主上须开启binlog才能进行主从。 主从过程大致有3个步骤 1)主将更改操作记录到binlog里 2)从将主的binlog事件(sql语句)同步到从本机上并记录在relaylog里 3)从根据relaylog里面的sql语句按顺序执行 主上有一个log dump线程,用来和从的I/O线程传递binlog 从上有两个线程,其中I/O线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的sql语句落地 MySQL主从原理图 三、配置主 安装mysql 修改vi /etc/my.cnf,增加server- id = 101和log_bin = davery1 报错,需要把 /data/mysql 和/usr/local/mysql 的数组数主都改一下 cd /usr/local/mysql chowen -R mysql.mysql . chown -R mysql.mysql /data/mysql 修改完配置文件后,启动或者重启mysqld服务 /etc/init.d/mysqld restart cd /data/mysql

windows环境下mysql数据库的主从同步备份步骤

亡梦爱人 提交于 2020-03-18 05:02:19
以下配置在本机上已经成功: 实现功能:A为主服务器,B为从服务器,初始状态时,A和B中的数据信息相同,当A中的数据发生变化时,B也跟着发生相应的变化,使得A和B的数据信息同步,达到备份的目的。 环境: A、B的MySQL数据库版本同为4.1.20 A: 操作系统:Windows 2003 server IP地址:192.168.100.1 B: 操作系统:Windows 2003 server 的IP地址:192.168.100.2 配置过程: 1、在A的数据库中建立一个备份帐户,命令如下: GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup@'192.168.100.2' IDENTIFIED BY ‘1234’; 建立一个帐户backup,并且只能允许从192.168.100.2这个地址上来登陆,密码是1234。 2、因为mysql版本新密码算法不同,所以进入mysql下,输入:set password for 'backup'@'192.168.100.2'=old_password('1234'); 3、关停A服务器,将A中的数据拷贝到B服务器中,使得A和B中的数据同步,并且确保在全部设置操作结束前,禁止在A和B服务器中进行写操作,使得两数据库中的数据一定要相同! 4、对A服务器的配置进行修改,打开mysql/my

大型网站架构——百万PV网站

给你一囗甜甜゛ 提交于 2020-03-17 01:04:03
实验架构: 黑线是正常情况数据的流向 红色是异常情况下数据流向 实验环境: CentOS7-1(master) 192.168.13.128 nginx反向代理(主)、redis缓存处理器(主)、mysql数据库(主) CentOS7-2(backup) 192.168.13.129 nginx反向代理(备)、redis缓存处理器(备)、mysql数据库(从) CentOS7-3(tomcat1) 192.168.13.130 tomcat(主) CentOS7-4(tomcat2) 192.168.13.131 tomcat(备) 1,安装部署nginx和keepalive服务(主备都需安装) [root@master ~]# systemctl stop firewalld.service ##关闭防火墙 [root@master ~]# setenforce 0 [root@master ~]# rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm ##安装nginx源 [root@master ~]# yum install -y keepalived nginx ##下载nginx和keepalive服务 [root