Linux下mysql主从同步备份master-slave详细配置
1、概要
首先要准备两台服务器,一台主服务器(Master),另一台从服务器(Slave),然后要保证Master与Slave的版本要相同且Master不能高于Slave的版本,一般稳健的做法都是使其版本相同,因为MySQL不同版本之间的binlog(二进制日志)格式可能会不一样,最后会导致同步出现异常。介绍先到这里,以下我们先确认两台服务器的信息:
主服务器(Master):
IP:192.168.1.100
系统:Linux(Ubuntu 64位 v10.10)
MySQL版本:5.1.49
需要同步的数据库名:myslave
用于同步的帐号:slave001
用于同步的密码:timescode888
————————————–
从服务器(Slave)
IP:192.168.1.90
系统:Linux(Ubuntu 32位 v10.10)
MySQL版本:5.1.49
需要同步的数据库名:myslave
注:以下的配置以及测试都是使用SSH来进行的
2、修改Master服务器的配置
#打开my.cnf配置文件
vi /etc/mysql/my.cnf
#键入 /server-id 找到server-id的位置,把以下内容对照设置进去,键入 i,激活输入状态
#注意,这里的Master与Slave的server-id不能相同
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_do_db = myslave #如果需要同时同步多个数据库,请另起一行设置binlog_do_db=需要同步的数据库名称
binlog_ignore_db = mysql
3、在Master建立myslave数据库并建立相关的数据表,SQL代码如下
#建立数据库
mysql -u root -p
mysql> CREATE DATABASE myslave CHARSET ‘utf8′;
#建立数据表
– —————————-
– Table structure for `users`
– —————————-
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`website` varchar(30) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
– —————————-
– Table structure for `users_log`
– —————————-
DROP TABLE IF EXISTS `users_log`;
CREATE TABLE `users_log` (
`user_log_id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
`info` varchar(200) DEFAULT NULL,
`uid` mediumint(8) unsigned NOT NULL,
PRIMARY KEY (`user_log_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
4、建立用于replication的帐号
grant replication slave on *.* to myslave001@’%’ identified by ‘timescode888′;
quit
#重启服务器
/etc/init.d/mysql restart
#进入mysql查看有没有生效
mysql -u root -p
mysql> show master status;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 | 106 | myslave | mysql |
+——————+———-+————–+——————+
#以上可以看出跟在my.cnf里设置的是一致的,在此要记下File以及Position的值,后面在Slave服务器上会用到
5、使用mysqldump导出Master中的myslave数据库
#在此必须要加入–master-data选项,保证在dump时会记录到binlog名称和偏移值
#而使用–lock-all-tables的原因就是为了数据在导出的时候没有其它新数据插入,保证一致性
mysqldump –master-data=1 –lock-all-tables=true -uroot -pwww.timescode.com myslave > /home/myslave_bak_20110326.sql
#具体的根据实际情况而变化,不一定要使用root帐号来导出数据
6、使用sz命令下载备份文件
sz /home/myslave_bak_20110326.sql
7、修改Slave服务器的配置
#具体的路径以及版本都与Master服务器一样
vi /etc/mysql/my.cnf
#请对照设置,如下
server-id = 2
master-host = 192.168.1.100
master-user = myslave001
master-password = timescode888
master-port = 3306
master-connect-retry = 5
replicate-do-db = myslave
replicate-ignore-db = mysql
8、使用rz命令上传备份文件到Slave服务器
rz
#当弹出选项框后选取刚才下载的备份文件
#把文件上传到home目录,具体的你可以根据你实际环境来操作
9、建立数据库并导入备份数据
mysql -u root -p
mysql> CREATE DATABASE myslave CHARSET ‘utf8′;
mysql> use myslave;
mysql> source /home/myslave_bak_20110326.sql;
#查看有没有导入成功
mysql> show tables;
+——————-+
| Tables_in_myslave |
+——————-+
| users |
| users_log |
+——————-+
2 rows in set (0.00 sec)
#由于刚才没有重启mysql,先需要退出去重启一下
mysql> quit
10、重启Slave服务器上的mysql
/etc/init.d/mysql restart
mysql -u root -p
#配置Slave信息并启动Slave服务
mysql> CHANGE MASTER TO
-> MASTER_HOST=’192.168.1.100′,
-> MASTER_USER=’myslave001′,
-> MASTER_PASSWORD=’timescode888′,
-> MASTER_LOG_FILE=’mysql-bin.000001′,
-> MASTER_LOG_POS=106;
#以上的是关键,具体的MASTER_LOG_FILE以及MASTER_LOG_POS的数据,可以从Master服务器获得,如果不设置,将无法正常启动Slave服务
#启动Slave服务
mysql> start slave;
#查看同步状态
mysql> show slave status;
#当输入命令后会出现一大堆的状态,具体的看Slave_IO_Running以及Slave_SQL_Running的状态,如果都是Yes就代表正常
#然后还可以看到Slave_IO_State的状态是Waiting for master to send event,含义是等待Master服务器发送事件
11、测试同步
#在Master服务器插入一条数据
mysql> use myslave;
mysql> INSERT INTO users(‘username’,'website’) VALUES(‘edison’,'http://www.timescode.com’);
#插入成功之后,稍等片刻,就可以在Slave服务器上查看到相同记录
#如果插入不成功,放心,你可以再仔细检查一下本配置文档,是否有那一步有遗漏或没正确配置。
12、后述
#如果想要查看当前Slave服务器的同步状态及偏移值等信息,请查找master.info文件
more /var/lib/mysql/master.info
#查看Slave执行binlog文件的情况
more /var/lib/mysql/relay-log.info
#如果对本文有疑问或建议请给我留言。
Mysql 主从服务与集群的区别
Slave主要是来备份数据的,只有当Master出现故障时,Slave才会接过Master的服务,
对外部请求进行处理,直到Master恢复正常。
就是说,在Master/Slave中,要么是Master在服务,要么是Slave在服务,不会Master/Slave同时提供服务。
是Cluster的各个mysql服务在同时对外处理请求,这种模式性能更高,
同时各个集群节点的数据是基于内存进行互备的。
另外一份是基于内存的,用于与集群中的其他节点进行数据同步的。
相对来说,对系统的开销会大一些,而且不能适应于大数据量的应用环境中,因为受到系统内存的限制。
转载于:https://www.cnblogs.com/beamzhang/p/5454047.html
Linux下mysql主从同步备份master-slave详细配置相关推荐
- linux下mysql主从同步是主从i/o线程显示为no_mysql主从同步IO线程NO
主从同步错误一例 mysql> show slavestatus\G; ***************************1. row *************************** ...
- CentOS下MySQL主从同步配置
(转自)http://apps.hi.baidu.com/share/detail/5882847centos下MySQL主从同步配置 一.环境 主机: master操作系统:centos 5.3 I ...
- Linux下MySQL主从架构版本升级(5.7.31->5.7.33)——冷升级
目录 前言 下载并上传MySQL 停应用 升级从库 停止备份 停止从MySQL 继承旧版本的配置 启动并升级从MySQL 登录并验证slave 关闭slave 升级主库 查看master状态 修改从库 ...
- windows下mysql和linux下mysql主从配置
1. linux下mysql安装版本5.6 windows下mysql版本5.7 不要问我为什么版本不一致 就是想这么搞 2. linux为主服务器 windows为从服务器 3.找到li ...
- Linux系统下MYSQL主从同步
[以下操作使用root用户进行] 一.主从库系统环境 1.主库系统:CentOS Linux release 7.6.1810 (Core) 2.从库系统:Ubuntu 18.04.3 LTS 二.主 ...
- linux下 mysql主从备份
一.准备 用两台服务器做测试: Master Server: 192.0.0.1/Linux/MYSQL 4.1.12 Slave Server: 192.0.0.2/Linux/MYSQL 4 ...
- windows下mysql主从同步_详解windows下mysql的主从同步
半路出家到Java,刚开始听说到说程序支持读写分离感觉特别高大上,也一直没接触 偶然的机会接触到了,就一定得记下来. 今天先讲讲数据库的主从同步,两个好处: 是读写分离可以用上.比如 写操作就写到主数 ...
- Linux下mysql主从配置
mysql服务器的主从配置,这样可以实现读写分离,也可以在主库挂掉后从备用库中恢复 需要两台机器,安装mysql,两台机器要在相通的局域网内 主机A: 192.168.1.100 从机B:192.16 ...
- centos mysql 主从_Centos下MySQL主从同步配置
说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样, 因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低, Master的版本肯定不能高于Slav ...
- ubuntun系统mysql数据库同步_Ubuntu下MySQL主从同步配置步骤
1)安装mysql Ubuntu中安装一台mysql了,docker安装另外一台mysql 获取mysql的镜像,主从同步尽量保证多台mysql的版本相同,我的ubuntu中存在的mysql是5.7. ...
最新文章
- C# GDAL 学习一
- 0308-标签的用法(a,ul/ol,table)
- matplotlib.pyplot.plot 用法详解
- hdu 5512 Pagodas
- Python的__getattr__方法学习
- 软件体系架构——质量属性
- 等比数列求和python_python numpy生成等差数列、等比数列的实例
- SQLl中的left join、right join、inner join详解
- 玩转“网上邻居”之网络配置(一)
- 【原创】自定义Appender类,输出DCMTK日志
- 使用Golang搭建web服务
- C语言与JAVA内存管理_C语言动态内存管理和动态内存分配
- DisplayLink 安装错误
- html toggle自动隐藏,Javascript / HTML – 切换可见性(当另一个div元素呈现可见时自动导致一个div元素隐藏)...
- java 万年历_改进java万年历,前几天看到别人写的java万年历,其中不足之处多多...
- 2018.6清北学堂day3下午笔记
- 鸿蒙四月几号升级啊,华为鸿蒙系统升级时间表 鸿蒙系统第二批升级时间是什么时候...
- “海外传播官”阿乐:让20万外国粉丝通过我“在中国生活”
- LTE-M通信系统传输建模与可用性分析
- 在 JDK 7 版本以上, Comparator 要满足自反性,传递性,对称性
热门文章
- 如何在Mac上的键盘辅助功能中使用面板编辑器?
- 如何在苹果Mac上通过通知中心禁用通知?
- 问题集录--新手入门深度学习,选择TensorFlow 好吗?
- 【Firewalld(Iptables)】
- [java] Unsupported major.minor version 51.0 错误解决方案
- MySQL的my.cnf详细配置说明
- Ubuntu 下J2EE开发环境搭建
- MyBatis #{ } ${ }
- atom 基础使用教程
- win64 安装Oracle 11g