基于【 MySql 】一 || 主从复制
一、centos7安装mysql
1、 先检查系统是否装有mysql
rpm -qa | grep mysql
2、 下载mysql的repo源
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
如果报错: -bash: wget: command not found
需要安装一下插件:
yum -y install wget
3、 安装完成后下载mysql的repo源,然后安装mysql-community-release-el7-5.noarch.rpm包
sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
4、 安装MySQL
sudo yum install mysql-server
5、 重置MySQL密码
mysql -u root
如果报以下错误:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
原因是/var/lib/mysql的访问权限问题,需要执行以下命令即可。
chown root /var/lib/mysql/
6、 重启MySQL服务
service mysqld restart
7、 登陆设置密码
mysql -u root
use mysql;
update user set password=password('root') where user='root';
exit;
8、重启MySQL服务
service mysqld restart
9、 设置Root账户远程连接密码
mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; 重启服务器 service mysqld restart
10、 使用外网工具连接MySQL
需要关闭防火墙或者开放端口
关闭防火墙命令:systemctl stop firewalld.service
二、主从复制配置
1、主服务器节点配置
编辑my.cnf文件,增加以下内容:
编辑:vi /etc/my.cnf 设置服务器id(保证在集群中唯一):server_id=177 开启日志文件:log-bin=mysql-bin 注意:该添加信息需要添加在mysqld下面,如果添加在mysql_safe,查询到的server_id总是为0

重启服务,验证是否配置成功
重启:service mysqld restart 查看server-id:show variables like '%server_id%';
如果能看到之前配置的server-id,说明配置成功 show master status;
能够看到同步的文件,和行数 说明已经配置成功。


2、从服务器节点配置
克隆服务器或者在从服务器上安装mysql,配置文件my.cnf与主服务器一致,唯一需要更改的地方为:server_id
vi /etc/my.cnf
server_id=178 ###从服务器server_id(与主服务器不同)
log-bin=mysql-bin ###日志文件同步方式
binlog_do_db=test ###同步数据库
重启服务,验证是否成功
重启:service mysqld restart 查看server-id:show variables like '%server_id%';
如果能看到之前配置的server-id,说明配置成功 show master status;
能够看到同步的文件,和行数 说明已经配置成功。
3、从服务器同步主服务器配置
3.1、运行命令:
change master to master_host='192.168.33.7',master_user='root',master_password='root',
master_log_file='mysql-bin.000002',master_log_pos=216;
master_host:主服务器地址
master_user:主服务器用户名
master_password:主服务器密码
master_log_file:主服务器binLog(通过命令查看:show master status;)
master_log_pos:主服务器log行数(通过命令查看:show master status;)
3.2、开始同步:start slave
3.3、检查从服务器复制功能状态
SHOW SLAVE STATUS
如果出现:slave_io_running线程为no,查看日志信息为:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
因为服务器克隆的时候交UUID产生了重复 ,解决办法:

1.Cat /etc/my.cnf
检查server_id是否相同 2.cd /var/lib/mysql
查看两台服务器的auto.cnf
如果是克隆的服务器,server-uuid是相同的 3.删除 rm -rf auto.cnf 4.重启服务器会重新生成auto.cnf,查看uuid是不同的了
service mysqld restart
3.4、检查从服务器复制功能状态SHOW SLAVE STATUS,进行验证
4、在主服务器中添加一个数据库,添加表和数据进行测试,会发现,从服务器中也有和主服务器相同的数据库

此时,会发现一个问题,如果在从数据库中更改user表中的id值,而主数据库中的值并未发生改变,那么,解决该问题需要关注下一篇文章《mysql的读写分离》
基于【 MySql 】一 || 主从复制的更多相关文章
- 基于Mysql-Proxy实现Mysql的主从复制以及读写分离(下)
基于Mysql-Proxy实现Mysql的主从复制以及读写分离(下) 昨天谈到了Mysql实现主从复制,但由于时间原因并未讲有关读写分离的实现,之所以有读写分离,是为了使数据库拥有双机热备功能,至于双 ...
- 基于Mysql-Proxy实现Mysql的主从复制以及读写分离(上)
基于Mysql-Proxy实现Mysql的主从复制以及读写分离(上) 上周BOSS给分配任务让实现一下Mysql数据库的主从复制以及读写分离,然后花了一盏茶的功夫进行了调研,发现主从复制数据库进行一番 ...
- 用mycat做读写分离:基于 MySQL主从复制
版权声明:本文为博主原创文章,未经博主允许不得转载. mycat是最近很火的一款国人发明的分布式数据库中间件,它是基于阿里的cobar的基础上进行开发的 搭建之前我们先要配置MySQL的主从复制,这个 ...
- 实现mysql的读写分离(mysql-proxy)____1(mysql的主从复制,基于gtid的主从复制,半同步复制,组复制)
主从复制原理: 从库生成两个线程,一个I/O线程,一个SQL线程: i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中:主库会生成一个 log ...
- mysql -- mysql基于ssl的主从复制
mysql基于ssl的主从复制由于mysql在复制过程中是明文的,所以就大大降低了安全性,因此需要借助于ssl加密来增加其复制的安全性. 主服务器node1:172.16.200.1从服务器node2 ...
- mysql主从之基于gtid的主从复制
一 GITD介绍 1.1 gtid的含义 Global Transaction Identifier,全局事务标识 阿里云的rds目前已经使用gtid 基于gtid的主从复制原理 每个mysql数据库 ...
- linux下mysql基于mycat做主从复制和读写分离之基础篇
Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , my ...
- 基于mysql本身的主从复制
mysql的主从复制在我理解而言就是一个主数据库进行增删改操作的时候会自动将数据写入与之关联的从数据库中.这个从数据库可以是一个也可以是多个.(刚开始理解的时候觉得是同一个数据库服务下的不同的data ...
- MySQL 数据库主从复制架构
前文<MySQL 数据库事务与复制>分析了 MySQL 复制过程中如何保证 binlog 和事务数据之间的一致性,本文进一步分析引入从库后需要保证主从的数据一致性需要考虑哪些方面. 原生复 ...
- mysql之主从复制
原理--> 在数据库层面,复制语句或者行,因为在数据库层面,故只有主服务器生成,并放到二进制日志里面,才能复制给从服务器. 原理--> mysql的主从复制基于异步,主要有三个进程执行,分 ...
随机推荐
- word excel 未响应
前几天笔记本突然出现word 一打开就未响应的情况,导致完全无法使用.今天发现 excel 也出现了这种情况.今天终于下定决心解决这个问题. 百度上搜索了很多,找到了很多解决方案.总结如下. 一.禁用 ...
- 创建Bitmap之BitmapFactory
package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...
- nVidia GPGPU vs AMD Radeon HD Graphics执行模式对比
大家做高性能计算的朋友,想必对CPU的执行模式已经非常熟悉了吧.当代高级些的CPU一般采用超标量流水线,使得毗邻几条相互独立的指令能够并行执行——这称为指令集并行(ILP,Instruction-Le ...
- osg fbx 模型树结构
void Test::printOsgGroup(osg::ref_ptr<osg::Group> &groupParam) { qDebug() <<groupPar ...
- python面试必备-基础篇
一.python中and, or, and-or语法 1.and 有假先出假 在Python 中,and 和 or 执行布尔逻辑演算,如你所期待的一样,但是它们并不返回布尔值:而是,返回它们实际进 ...
- HttpRequest Get和Post调用其他页面的方法
HttpRequest Get和Post调用其他页面的方法,需要的朋友可以参考一下 //Get请求方式 private string RequestGet(string Url) { ...
- 创建.Net Core For WPF项目并且添加VS Code编译运行支持
1.下载最新的Visual Studio 2019或者Preview版本,新建项目,找到"WPF App(.Net Core)"模板. 2.输入项目名称"NetCore- ...
- 解决用cmd编译运行java时的错误
最近上java课程,平时都是用IDEA打代码的,但老师要我们用cmd编译运行,于是在IDEA撸完代码用cmd编译,但却老是编译不出来,有很多乱码.,提示着“错误:GBK的不可映射字符”,又试了几次,着 ...
- VUE-CLI项目同一局域网手机通过IP访问电脑本地项目
0.找到config文件夹下的index.js文件,修改host内容为hots:'0.0.0.0',此时重新运行项目,则其他设备可以通过ip进行访问 1.首先确保电脑防火墙或者杀毒软件关闭,因为大多数 ...
- vue-cli webpack打包后加载资源的路径问题
vue项目,访问打包后的项目,输入路径后,页面加载空白.这时会有两类问题,都是路径问题. 1.一个是css,js,ico等文件加载不到,是目录里少了dist 打开页面时一片空白 解决办法: confi ...