centos7下部署mysql主从复制
首先大致看一下这个图
环境说明:
系统:centos7
IP:master:192.168.7.235
slave:192.168.7.226
mysql版本MySQL-5.7
1.Master
下载安装包:
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
2.更新操作系统:yum -y update 更新完成后进行重启
3.重启后安装依赖包: yum -y install gcc gcc-c++ openssl openssl-devel zlib zlib-devel libaio wget lsof vim-enhanced sysstat ntpdate
4.创建mysql用户:useradd mysql
5.创建目录:mkdir /opt/mysql
6.将数据库包解压到/opt/mysql中 tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql/
7.修改解压后的目录的属主属组:chown -R mysql:mysql /opt/mysql/mysql-5.7.21-linux-glibc2.12-x86_64/
8.将解压后的安装包软连接到其他目录下: ln -s /opt/mysql/mysql-5.7.21-linux-glibc2.12-x86_64/ /usr/local/mysql
9.更改软连接后的属主属组:chown mysql:mysql /usr/local/mysql/
10.创建数据目录:mkdir /data/mysql/mysql3306/{data,logs,tmp} -p
11.更改数据目录的属主属组:chown -R mysql:mysql /data/
12.查看是否创建成功:tree /data/
13.修改主数据库的配置文件:vim /etc/my.cnf
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysql/mysql3306/data
socket = /tmp/mysql3306.sock
tmpdir = /data/mysql/mysql3306/tmp
server-id =1
log-error = error.log
binlog_format = row
14.进行初始化:
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql3306/data/
15.设置数据库的开机自启动:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
16.启动服务:如果启动数据库失败,提示系统缺少PID文件,要按照一下的启动方法进行初始化,这个PID文件是数据库初始化的时候自动创建的,如果没有创建成功的话可能由于系统本身有mariadb,所以要指定mysql的路径--basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql3306/data/)
service mysqld start
17.查看数据库端口:ps aux | grep mysql
18.配置环境变量:echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
19.首次登录数据库:
1)首先查看数据库的初始密码:cat /data/mysql/mysql3306/data/error.log | grep password
2)mysql -S /tmp/mysql3306.sock -p
3)修改初始密码:mysql> alter user user() identified by 'password';
20.打开binlog:binlog是开启mysql主从复制的必要条件
Vim /etc/my.cnf
log-bin=/data/mysql-bin
重启mysql:service mysqld restart
21.查看binlog是否生效: ls /data/ (#是否有mysql-bin.00001)
22.添加允许主从复制的访问用户:
mysql -S /tmp/mysql3306.sock -p
grant replication slave on *.* to 'test'@'192.168.7.%' identified by 'password';
flush privileges; 刷新
flush table with read lock; 锁定库,暂停写入
show master status; 记录musql-bin 的号码和position号

mysqldump -uroot -p -S /tmp/mysql3306.sock -A -B --events --master-data=1 >/opt/rep.sql 将数据库中的数据导出,后面进行同步数据的时候使用
23.解锁数据库:mysql> unlock tables;
进行配置slave
24.重复上面的1-12步骤
25.在上面的第13步骤的时,修改配置文件中的server-id,这个server-id是唯一的,只要不与主数据库一样即可
26.将主数据库中导出的数据导入slave中:scp 192.168.7.235:/opt/rep.sql /opt/
mysql -uroot -p -S /tmp/mysql3306.sock </opt/rep.sql
27.进入数据库进行配置:mysql -S /tmp/mysql3306.sock -p
28.先停止数据库的slave功能:stop slave;
29.将从数据库指向master:
change master to
MASTER_HOST='192.168.7.235', 写主数据库的IP
MASTER_PORT=3306,
MASTER_USER='test', 写主数据用于进行主从连接的用户
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001', 在主数据库上通过show master status; 查看到的file
MASTER_LOG_POS=1499; 在主数据库上通过show master status; 查看到的position
30.启动slave:start slave;
31.show slave status\G; 查看slave状态,\G是以换行的方式查看
(#slave_IO_Running:yes
#Slave_SQL_Running:yes两条都为yes时表示成功)
当Slave_SQL_Running为no或者报错时,可能需要检查29步,可以重新做28-31步
centos7下部署mysql主从复制的更多相关文章
- docker 容器模式下部署mysql 主从复制
1.计划用两台host来部署,分别部署一台 mysql,一主一从,2.配置好主从mysql配置文件,更改文件名即可[client]port = 3306socket = /var/run/mysqld ...
- 在 CentOS7 上部署 MySQL 主从
在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...
- 2.快速部署MySQL主从复制
1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...
- CentOS7下安装MySQL并配置远程连接
一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...
- Centos7下部署两套python版本并存
Centos7下部署两套python版本并存 需求说明:centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的 ...
- 1.Mysql集群------Docker下的Mysql主从复制
前言: 实话说,我想做的是Mysql集群架构. 我的计划是: 1.实现Docker下的Mysql主从复制 2.实现MyCat基于Mysql的读写分离 3.实现MyCat的分库分表 4.实现pxc集群 ...
- CentOS7下部署rsync服务
说明: 在CentOS7下部署rsync服务和在CentOS6上部署基本上是一样的,只是CentOS7自带了rsyncd启动脚本,由systemd管理而已. rsync服务端配置 [root@SERV ...
- 九、linux-msyql下的mysql主从复制深度实战
1.上节基本诉说了mysql主从同步,这里想说明的是,其一从库在请求主库进行同步的时候,是主库的主线程进行用户名.密码的验证,在验证通过后,将请求转交给I/O线程负责同步:其二从库sql线程在读取中继 ...
- CentOS7下一个mysql安装
CentOS7安装MySQL --下载mysql http://mirrors.sohu.com/mysql/MySQL-5.6/ http://mirrors.sohu.com/mysql/MySQ ...
随机推荐
- mysql中union 查询
UNION ALL只是简单的将两个结果合并后就返回.这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了. 从效率上说,UNION ALL 要比UNION快很多,所以,如果可 ...
- Java 学习笔记 泛型
泛型 上界匹配 ? extends Number 下界匹配 ? super Number getSimpleName 不包括包名 getName 会包括包名 常和反射联合使用,做框架 Type是一个标 ...
- 修改CentOS服务器时间为北京时间
购买了VPS,CentOS系统,发现服务器时间与北京时间往往不一致,存在时差. [clive@server workspace]$ date 2018年 05月 30日 星期三 02:02:47 UT ...
- mysql启动事件
1.查看时间是否开启 SHOW VARIABLES LIKE 'event_scheduler' 若是查看结果为OFF,的话开启ON 2.设置事件开启 SET GLOBAL event_schedul ...
- endpoint 异常
原文地址:http://blog.csdn.net/ltylove2007/article/details/6128333 其他信息: 无法加载协定为“ServiceReference1.WebSer ...
- Vue2 几种常见开局方式
在SF问题中看到了一个关于vue-cli中的template问题,问题是这样的:用vue-cli工具生成的main.js中: import Vue from 'vue' import App from ...
- canvas实现黑客帝国矩形阵
在博客园看到了车大棒的写了一篇关于实现黑客帝国矩形阵,觉得canvas还是有一些奇妙的地方所在,故做个笔记记录一下. 实现的效果如下: 真的是一两行关键的代码添加就能实现意想不到的效果. 由于是can ...
- Android Studio NDK JNI动态注册本地方法
概述 可能大家觉得javah生成的函数名又臭又长,不太好看.这里可以提供另外一种方法来动态注册c++函数,让其根Java中的native方法关联起来. 实现 这里通过JNIEnv的Resisterna ...
- leetcode-70.爬楼梯
leetcode-70.爬楼梯 Points 斐波那契 动态规划 题意 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给 ...
- 章节一、1-Selenium简介
一.Selenium WebDriver介绍 1.跨平台,用web浏览器做自动化的工具. 2.可以在浏览器上运行的一个框架,用来进行界面的自动化. 3.支持多种计算机语言. 4.可以模拟真实的用户去操 ...