MySQL主从复制原理及搭建
来源:互联网 发布:香水时代的淘宝店怎么 编辑:程序博客网 时间:2024/06/13 01:23
一、MySQL主从复制原理
mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。
二、MySQL主从复制搭建
一.工作环境及条件
主数据库:172.25.0.254从数据库:172.25.0.11操作系统:RHRL7MySQL版本:mariadb-5.5.35安装MYSQL(yum源安装)
主数据库
[root@master ~]# yum clean all[root@master ~]# yum -y install mariadb*从数据库
[root@slave ~]# yum clean all开启mariadb服务
[root@master ~]# systemctl start mariadb [root@slave ~]# systemctl start mariadb关闭防火墙(或者开发防火墙的mysql服务和3306端口)
[root@master ~]# systemctl stop firewalld.service [root@slave ~]# systemctl stop firewalld.service
二.mysql主从复制配置方法
1.主数据库
修改主库my.cnf主要设置个不一样的ID,以及同步的数据库的名字和端口号(默认为3306)
[root@slave ~]# vim /etc/my.cnf 在[mysqld]中加入内容如下server-id=1log-bin=lhbport=3306
重启服务使配置生效
[root@master ~]# systemctl restart mariadb设置mysql登录密码(默认情况下登录密码为空)
[root@master ~]# mysqladmin -uroot password '123456'登录主库赋予从库权限账号,允许用户在主库上读取日志(用户名:admin,密码:123456)
[root@master ~]# mysql -uroot -p123456进入mysql里面输入
MariaDB [(none)]> grant replication slave on *.* to 'admin'@'172.25.0.254' identified by '123456';为验证账号我们可以在从的机器上用命令作如下测试
[root@slave ~]# mysql -uadmin -p123456 -h 172.25.0.11显示主数据看的信息
MariaDB [(none)]> show master status;+------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+------------+----------+--------------+------------------+| lhb.000001 | 537 | | |+------------+----------+--------------+------------------+1 row in set (0.00 sec)(记录File、Position的值,设置从数据库的时候会用到)
2.从数据库
server-id=2重启下数据库
[root@slave ~]# systemctl restart mariadb
设置mysql登录密码(默认情况下登录密码为空)
[root@slave ~]# mysqladmin -uroot password '123456'登录数据库
[root@slave ~]# mysql -uroot -p123456在从数据库上设置同步
MariaDB [(none)]> slave stop;Query OK, 0 rows affected, 1 warning (0.00 sec)MariaDB [(none)]> change master to master_host='172.25.0.11',master_user='admin',master_password='123456',master_log_file='lhb.000001',master_log_pos=537;Query OK, 0 rows affected (0.03 sec)这里的lhb.000001和537为主数据库的master status)MariaDB [(none)]> slave start;Query MariaDB [(none)]> show slave status\G;看到以下两行为Yes,表示成功了
Slave_IO_Running: YesSlave_SQL_Running: Yes
假如你的Slave_IO_Running:Connecting或者No
那么可能出现以下几点问题:
1.主从两个数据库不通。2.server-id设置错误。3.position设置错误。4.防火墙没关闭或者没开放mysql端口。
3.测试
在主数据库上新建数据库,看看是否会同步。
主数据库上:
MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || test |+--------------------+4 rows in set (0.01 sec)
从数据库上:
MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql | | performance_schema || test |+--------------------+4 rows in set (0.01 sec)
主数据库上创建数据库并查看
MariaDB [(none)]> create database lhbdb;Query OK, 1 row affected (0.00 sec)MariaDB [(none)]> show databases; +--------------------+| Database |+--------------------+| information_schema || lhbdb || mysql || performance_schema || test |+--------------------+5 rows in set (0.00 sec)
从库上查看是否同步
MariaDB [(none)]> show databases;+--------------------+| Database |+--------------------+| information_schema || lhbdb || mysql || performance_schema || test |+--------------------+5 rows in set (0.01 sec)
由此可以看到在主数据库上建立数据库lhbdb,则表示成功了^_^^_^^_^
阅读全文
0 0
- MySQL主从复制原理及搭建
- Mysql主从复制搭建及详解
- MySql主从搭建、复制及配置实现
- 【MySQL】主从复制原理及配置
- Mysql主从复制原理及配置
- mysql主从复制原理及配置步骤
- Mysql主从复制原理及配置
- MySQL主从复制原理及配置
- MySQL主从复制原理及基本配置
- Mysql主从复制原理及配置
- mysql 主从复制原理及实战操作
- Mysql主从复制原理及配置
- MySQL主从复制原理及配置
- Mysql主从复制原理及配置
- Mysql搭建主从复制
- Mysql搭建主从复制
- mysql主从复制搭建
- mysql主从复制搭建
- 克隆虚拟机centOS
- 简单了解树和二叉树
- OpenCV学习第十一篇:形态学操作
- Covering HDU
- 实训的第一次博客
- MySQL主从复制原理及搭建
- 简析分布式集群中的session一致性
- 操作系统知识清单
- 51NOD
- 学习TCP/IP协议笔记
- Struts加Hibernate实现web留言本
- 轮子哥课程2
- Makefile伪目标
- Unique Paths