mysql主从配置

mysql主从复制

陌路散爱 提交于 2019-12-25 03:29:40
1:修改主服务器master:192.168.1.111 [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个binlog-do-db=数据库名 binlog-ignore-db=mysql //要忽略的数据库 binlog-ignore-db=mysql 2:修改从服务器slave: 192.168.1.112 [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3:重启两台服务器的mysql 4:在主服务器上建立帐户并授权slave: GRANT REPLICATION SLAVE ON *.* to '账户名'@'%' identified by '密码'; //一般不用root帐号,% 表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.168.1.112,加强安全。 5:登录主服务器的mysql,查询master的状态 show master status +------------------+--------

MySQL自增锁

断了今生、忘了曾经 提交于 2019-12-25 03:15:25
最近在工作中遇到很多使用MySQL自带的autoincrement函数作为发号器,在实际使用中当并发比较小的时候还没有问题,一旦并发增加就会出现很多问题,特此进行如下总结。 一、自增配置 通过如下建表语句就可以完成自增的配置 CREATE TABLE `test_inc` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 二、修改自增大小 通过如下sql可以自动生成数字: insert into test_inc values(); 当增加3行后表中数据如下: +----+ | id | +----+ | 1 | | 2 | | 3 | +----+ CREATE TABLE `test_inc` ( `id` int(11) NOT NULL AUTO_INCREMENT, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8; 使用 alter table test_inc auto_increment=10;将自增修改成10后再次插入的数据为10. +----+ | id | +----+ | 1 | | 2 | | 3 | | 10 | |

mysql+centos7+主从复制

ぐ巨炮叔叔 提交于 2019-12-25 01:38:02
MYSQL(mariadb) MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。 方法1:yum安装mariadb yum install mariadb-server mariadb 相关命令 mariadb数据库的相关命令是: systemctl start mariadb #启动MariaDB systemctl stop mariadb #停止MariaDB systemctl restart mariadb #重启MariaDB systemctl enable mariadb #设置开机启动 启动后正常使用mysql systemctl start mariadb #进入mysql mysql -uroot -p 方法2:官网下载mysql-server包(rpm) # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm # rpm -ivh mysql-community-release-el7-5.noarch.rpm

centos7下mysql5.6的主从复制

ⅰ亾dé卋堺 提交于 2019-12-25 01:37:21
一、mysql主从复制介绍 mysql的主从复制并不是数据库磁盘上的文件直接拷贝,而是通过逻辑的binlog日志复制到要同步的服务器本地, 然后由本地的线程读取日志里面的sql语句,重新应用到mysql数据库中。 mysql数据库支持单向,双向,链式级联,环状等不同业务场景的复制,一台服务器充当主服务器master,接收来自用户的更新, 而一个或多个其他服务器充当从服务器slave,接收来自主服务器binlog文件的日志内容,解析出sql,更新到从服务器。 一主一从 (A -> B, A为主,B为从) 一主多从 (A -> B, A -> C, A为主,B与C为从) 双主双向同步 (A -> B , B -> A , A与B同为主,互相备份) 线性级联 (A -> B -> C , A与B主主互备,C为从) 环状级联 (A -> B -> C -> A, A、B、C都为主,各节点都可写入数据) 二、实现mysql主从读写分离的方案 1、通过程序实现读写分离(判断语句关键字,去连接主从数据库) 2、通过开源的软件实现读写分离(mysql-proxy,amoeba,稳定性和功能一般,不建议生产使用) 3、独立开发DAL层软件 三、mysql主从复制原理介绍 mysql主从复制是一个异步的复制过程,将一个主库复制到一个从库,master与slave之间实现整个过程是由三个线程参与完成。

mysql高级:主从复制

六月ゝ 毕业季﹏ 提交于 2019-12-25 00:04:49
1. 复制的基本原理 slave会从master读取binlog来进行数据同步 三步骤+原理图 MySQL复制过程分成三步: 1 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events; 2 slave将master的binary log events拷贝到它的中继日志(relay log); 3 slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的 master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log events slave将master的binary log events拷贝到它的中继日志(relay log) slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的 2. 复制的基本原则 每个slave只有一个master 每个slave只能有一个唯一的服务器ID 每个master可以有多个salve 3. 复制的最大问题(延时) 4. 一主一从常见配置 (1)mysql版本一致且后台以服务运行 (2)主从都配置在 [mysqld] 结点下,都是小写 (3)主机修改my.ini配置文件 主服务器唯一ID:server-id=1 启用二进制日志: log-bin

mysql学习笔记

。_饼干妹妹 提交于 2019-12-24 12:04:00
1、mysql初始没有密码,需要设置一个密码,设置方法: mysqladmin -uroot password "xxxxx" 2、使用VARCHAR(5) 和VARCHAR(200) 存储’hello’的空间开销是一样的。那么使用更短的列有什么优势吗? 事实证明有很大的优势。更大的列会消耗更多的内存,因为MySQL 通常会分配固定大小的内存块来保存内部值。尤其是使用内存临时表进行排序或操作时会特别糟糕。在利用磁盘临时表 进行排序时也同样糟糕。 所以最好的策略是只分配真正需要的空间。 3、show PROCESSLIST 查进程 4、创建用户,并给用户附加数据操作权限其中127.0.0.1可以根据实际情况修改比如某个ip段,如果本机要登录必须配置127.0.0.1或者localhost地址如下 CREATE USER 'dog'@'127.0.0.1' IDENTIFIED BY '123456'; #创建用户 GRANT ALL ON honor_m.* TO 'dog'@'127.0.0.1'; #授权用户访问honor_m.*库下面的所有权限 5.MySQL创建只读账号 > GRANT SElECT ON *.* TO 'reader'@'%' IDENTIFIED BY "passwd"; > flush privileges; mysql 5.7修改密码 update

mysql搭建主从

喜你入骨 提交于 2019-12-24 11:58:55
1、主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码  数据库内容也要保证数据一致 //否则报错, Slave_SQL_Running: No Last_Errno: 1146 Last_Error: Error 'Table等错误 2、修改主服务器master: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[必须]启用二进制日志 server-id=222 //[必须]服务器唯一ID,默认是1,一般取IP最后一段, 我喜欢给主1,给从其他的 3、修改从服务器slave: #vi /etc/my.cnf [mysqld] log-bin=mysql-bin //[不是必须]启用二进制日志 server-id=226 //[必须]服务器唯一ID,默认是1,一般取IP最后一段 4、重启两台服务器的mysql /etc/init.d/mysql restart //并不是很喜欢这种方式我更喜欢/usr/local/bin/...启动, 杀进程结束 5、在主服务器上建立帐户并授权slave: mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456'; 具体看上一个博客里面有解释,

MySQL集群(四)之keepalived实现mysql双主高可用

爱⌒轻易说出口 提交于 2019-12-24 06:43:12
前面大家介绍了主从、主主复制以及他们的中间件mysql-proxy的使用,这一篇给大家介绍的是keepalived的搭建与使用! 一、keepalived简介 1.1、keepalived介绍     Keepalived起初是为LVS设计的, 专门用来监控集群系统中各个服务节点的状态 ,它根据TCP/IP参考模型的第三、第四层、第五层交换机制检测每个服务节点的状态, 如果某个服务器节点出现异常,   或者工作出现故障,Keepalived将检测到,并将出现的故障的服务器节点从集群系统中剔除, 这些工作全部是自动完成的,不需要人工干涉,需要人工完成的只是修复出现故障的服务节点。     后来Keepalived又加入了VRRP的功能,VRRP(Vritrual Router Redundancy Protocol,虚拟路由冗余协议)出现的目的是解决静态路由出现的单点故障问题,通过VRRP可以实现网络不间断稳定运行,   因此Keepalvied 一方面具有服务器状态检测和故障隔离功能,另外一方面也有HA cluster功能,下面介绍一下VRRP协议实现的过程。 1.2、VRRP协议与工作原理     在现实的网络环境中。 主机之间的通信都是通过配置静态路由或者(默认网关)来完成的,而主机之间的路由器一旦发生故障,通信就会失效 ,因此这种通信模式当中,路由器就成了一个单点瓶颈

MYSQL备份与恢复精华篇

痴心易碎 提交于 2019-12-23 22:07:28
数据备份原理 数据备份属于数据容灾保护中的内容,所有的数据备份系统设计都基于这五个元素,备份源、备份目标、传输网络、备份引擎和备份策略。用户按照需要制定备份策略,使用定时任务执行备份脚本,使用备份引擎将需要备份的的数据从备份源通过传输网络传送到备份目标。 备份五元组: 1、 备份源 需要备份的数据统一称为备份源,可以是文本数据,音视频数据,也可以是数据库数据等等。 2、 备份目标 存放备份数据的位置,通常建议将备份数据存放在异机,或者是更远的数据中心,备份目标可以是在线的磁盘,磁盘阵列柜,也可以是磁带库或是虚拟带库。而备份目标所在的位置可以在同一个数据中心,也可以是容灾机房。 3、 传输网络 备份数据时使用的传输链路,可以是专线,以太网,Internet,VPN等等,只要保证备份源与目标之间的路由可达即可。 4、 备份引擎 数据要能够从源到目标流动,就要有动力,就像是水要流动一样,这个动力来源就是备份引擎,像mysqldump,nvbu,还有大量的备份软件都是备份引擎。 5、 备份策略 为了有效备份,并减少人为操作,应该制定完善的备份策略。通常全备与差备与增备相结合,备份的时间点应该尽量避开业务高锋期,通常在晚上执行,通过定时任务实现。 MYSQL 数据备份原理 mysql数据备份其实就是通过SQL语句的形式将数据DUMP出来,以文件的形式保存,而且导出的文件还是可编辑的

MHA高可用群集基本部署(纯实战)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-23 17:04:50
MHA高可用群集基本部署 MHA概述 MHA目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发。 MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。 基本部署实验流程 一、实验前期准备 名称 角色 地址 centos7-2 master 192.168.142.203 centos7-3 slave1 192.168.142.132 centos7-min slave2 192.168.142.172 centos7-4 manger(监控端) 192.168.142.136 二、开始实验 1、所有服务器环境准备 安装epel源(不进行检查) [root@manger ~]# yum -y install epel-release --nogpgcheck 安装环境包 [root@manger ~]# yum -y install \ perl-DBD-MySQL \ perl-Config