MYSQL主从数据库搭建
sc delete "服务名" 删除服务
环境:
(以下是我这次搭建所使用的环境)
- 主数据库:
系统:ubuntu ; MYSQL 5.1.63 ;ip:192.168.28.128
- 从数据库
系统:window 7 ;MYSQL 5.5.8 ;ip:192.168.51.127
步骤:
1.在两台mysql上创建同步用户,让两个mysql可以互相通过root/root访问对方。
主执行:GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.51.127' IDENTIFIED BY 'root' WITH GRANT OPTION;
从执行:GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.28.128' IDENTIFIED BY 'root' WITH GRANT OPTION;
2.修改两台的配置文件。
ubuntu 上:
- 打开/etc/my.cnf : sudo gedit /etc/my.cnf 找到[mysqld]在其下添加下面选项。
log-bin=mysql-bin
innodb_flush_log_at_trx_commit = 1
sync_binlog=1
binlog-do-db=game
binlog-ignore-db=test
binlog-ignore-db=mysql
replicate-do-db=game
其中binlog-do-db和replicate-do-db标记出需要进行同步的数据库,对于多个数据库,重复选项多次即可,如上面的配置则表示同步bookmark和debate。binlog-ignore-db表示不进行同步的数据库,上面的配置表示不同步test, mysql库。
- 对于主mysql(192.168.28.128),打开选项:
server-id=1
- 对于从mysql,打开选项
server-id=2
注意server-id选项必须打开,并且集群中每个mysql都要有一个单独的值,不能重复。一般设置主为1,从为2, 3, 4....。手册上说只要不相同什么整数都没有关系,可以设置为IP的值,如:202,203.
- 得到主数据库二进制log文件和位置ip:重启mysql,执行sql语句:show master status;
结果:
+------------------+----------+--------------+--------------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+--------------------------+
| mysql-bin.000005 | 106 | game | information_schema,mysql |
+------------------+----------+--------------+--------------------------+
1 row in set (0.00 sec)
记住File = mysql-bin.000005 Position =106;下面有下划线步骤用到。
window上:
- 配置my.ini文件
log-bin=mysql-bin #启用二进制日志文件
server-id=2 #设置数据库ID
binlog-do-db=databasename #二进制需要同步的数据库(多个用逗号分隔)
binlog-ignore-db=mysql #避免同步的数据库(多个用逗号分隔)
#配置主从同步
server-id=2 #从服务器ID
master-host=192.168.28.128 #主服务器IP
master-user=gnh1 #主服务器登陆名
master-password=112233 #主服务器登陆密码
master-port=3306 #主服务器断口
master-connect-retry=60 #断点从新连接时间(秒)
replicate-ignore-db=mysql #屏蔽对MYSQL库的同步
replicate-do-db=wuliu #二进制需要同步的数据库
文中该颜色部分可能已经过时,据网上消息介绍,Mysql版本从5.1.7以后开始就不支持“master-host” 类似的参数。所以可能报错:
[ERROR] mysqld: unknown variable ‘master-host=192.168.28.128′。
所以只需添加两行:
server-id = 2
replicate-do-db = game /*共享的数据库*/
- 执行SQL语句:
change master to master_host=’192.168.28.127,master_user=’root’,master_password=’******’,master_log_file=’mysql-bin.000005′,master_log_pos=106;
- 查看从数据库配置状态
show slave status;
察看结果字段Slave_IO_State,一般应该为"Waiting for master to send event";此时Slave_IO_Running和Slave_SQL_Running应该为true,
如果不是,在slave端执行: stop slave; start slave; 重启复制进程。Replicate_Do_DB为要复制的数据库,和my.cnf配置的相同。
测试:
- 如上文操作:实现了game数据库的主从关系。
0). 在master端创建一个表abc,然后察看slave端是否同步创建了。
1). 在abc插入几条记录,察看slave端数据是否同步插入。
2). 更新abc的记录,察看slave端数据是否同步
3). 删除abc的记录,察看slave端数据是否同步
4). 停掉slave服务器,重新执行2,3,4的内容,重启slave,看slave端数据是否同步。
在执行上面的操作过程中,每执行一次都用第6步的方法察看master的File, Position值和slave的Master_Log_File,Read_Master_Log_Pos是否相同,如果主从工作正常,这
两个值在一次同步完成以后(slave status的Slave_IO_State显示:Waiting for master to send event)将会完全相同。
- 日志检查
如果有错误,检查mysql data目录的 ...machinname.err 文件。
- 应用切换到slave
如果master mysql坏掉了,需要将应用转移到slave段。首先在slave端执行:show master status; 把输出保存下来,然后再把应用切换过去。保存输出的File和Position值将可以用于以后从slave恢复master.
具体从slave恢复master的办法:
在master端执行:
CHANGE MASTER to MASTER_HOST='192.168.0.203', MASTER_PORT=3306, MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=98 ;
其中 MASTER_HOST 为slave的ip, MASTER_LOG_FILE, MASTER_LOG_POS为切换到slave时记录下的File和Position值。
在master执行:start slave;
待master内容基本恢复以后(在master执行:show slave status \G; Slave_IO_State显示为Waiting for master to send event)
将应用切换回master。
待系统稳定后master执行:stop slave停止slave。如果要避免master重启以后自动开启slave,可以将master mysql的data文件夹的master.info文件删掉。
转载于:https://www.cnblogs.com/AmilyWilly/p/4791803.html
MYSQL主从数据库搭建相关推荐
- windows mysql 主从_mysql读写分离实战二-windows 上mysql主从数据库搭建及问题总结
根据前篇web项目的搭建后,需要搭建主从数据库,这里在windows服务器上搭建了主从结构的mysql,这里在记录下在本机模拟搭建过程 在windows上安装和linux还是有些不同,不注意就会耽误不 ...
- MySQL主从数据库同步延迟问题解决
MySQL主从数据库同步延迟问题 摘要: MySQL的主从同步是一个很成熟的架构,优点为:①在从服务器可以执行查询工作(即我们常说的读功能),降低主服务器压力;②在从主服务器进行备份,避免备份期间影响 ...
- MySQL主从数据库配置和常见问题
转载自 MySQL主从数据库配置和常见问题 本篇主要介绍MySQL的主从数据配置方法. 公司运维能力不是太好,数据库最近出了一次问题,导致丢失了一天的数据,并且某个服务宕机一晚上.为了避免再次出现 ...
- centos mysql 主从_CentOS 搭建 MySql 主从备份
约定: 192.168.21.128 Master 192.168.21.129 Slave 以下配置拷贝与网络 配置篇 一.配置MySQL主服务器(192.168.21.128) mysql -u ...
- mysql数据库主从不同步_MySQL数据库之mysql主从数据库不同步的2种解决方法
本文主要向大家介绍了MySQL数据库之mysql主从数据库不同步的2种解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 今天发现Mysql的主从数据库没有同步 先上Mas ...
- centos7搭建 mysql 主从数据库
我搭建主从数据库参考的是(本文也是参考)https://blog.csdn.net/cn_yaojin/article/details/78711184 首先在两个服务器安装好版本一致的mysql(个 ...
- mysql主从同步搭建和故障排除
主从同步的定义: 是存储数据的一种结构模式. 主:被客户端访问的数据库服务器就是主库服务器master 从:连接主库服务器,自动同步主库的所有数据到本机slave 1.什么是mysql主从同步? 当 ...
- 高可用MySql主从数据库
一.mysql主从复制原理 1.主从复制原理 从上层来看,复制分成三步: Master主库在事务提交时,会把数据变更作为时间Events记录在二进制日志文件 Binlog 中. 主库推送二进制日志文件 ...
- mysql主从数据库含义_(转)Mysql数据库主从心得整理
管理mysql主从有2年多了,管理过200多组mysql主从,几乎涉及到各个版本的主从,本博文属于总结性的,有一部分是摘自网络,大部分是根据自己管理的心得和经验所写,整理了一下,分享给各位同行,希望对 ...
最新文章
- c语言中比较两个数组函数,输入两个数组,调用large函数比较,计数,输出统计结果...
- 【java设计模式】-00目录
- axios delete有请求体吗_关于axios请求——delete方法
- Onvif学习总结(转载)
- SpringMVC流程架构图
- 用c语言输出1 n平方自然数魔方阵,用C语言求:打印出由1到n平方的自然数的魔方阵...
- mysql with lock tables_mysql出现大量FLUSH TABLES WITH READ LOCK
- Jmeter(四十八)_动态线程分析HTML测试报告
- 计算机组成原理—虚拟存储器的基本概念
- App Cleaner Uninstaller卸载清理工具 for mac
- 【SQL】实验六 自习室管理数据库系统的设计
- selenium下打开Chrome报错解决
- Ubuntu上安装visual studio code
- 游戏编程入门步骤,想不到吧.
- 通用技术标模板,技术方案书
- 不积跬步无以至千里---工作收获
- 微信小程序内嵌网页链接
- SuperMap 基本概念
- DDL和DML的含义
- 小程序 canvas 实现电子签名
热门文章
- LeetCode 77. Combinations--回溯法,-Python,Java解法
- spring依赖注入底层原理与源码分析
- php array的实现原理,PHP数组遍历与实现原理
- hql删除mysql语句_mysql-使用Hibernate @SQLDelete对所有实体进行软删除
- k8s 下线node正确处理姿势
- openwrt配置内核驱动_openwrt增加内核模块的方法
- 素材诊断分析助手_短视频运营必备的8款数据分析工具
- Java 最常见的 100+ 面试题和答案:面试必备
- Docker数据卷管理
- PHP代理模式Proxy Mode