首先大致看一下这个图

环境说明:

系统: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主从复制的更多相关文章

  1. docker 容器模式下部署mysql 主从复制

    1.计划用两台host来部署,分别部署一台 mysql,一主一从,2.配置好主从mysql配置文件,更改文件名即可[client]port = 3306socket = /var/run/mysqld ...

  2. 在 CentOS7 上部署 MySQL 主从

    在 CentOS7 上部署 MySQL 主从 通过 SecureCRT 连接至 MySQL 主服务器: 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般 ...

  3. 2.快速部署MySQL主从复制

      1.快速部署MySQL主从复制 [root@mysql ~]# mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave ...

  4. CentOS7下安装MySQL并配置远程连接

    一.CentOS7下安装MySQL数据库 CentOS7默认的安装包里面已经没有 MySQL-Server安装包了,远程镜像中也没有了. 默认的是MariaDB (MySQL的一个分支,开发这个分支的 ...

  5. Centos7下部署两套python版本并存

    Centos7下部署两套python版本并存   需求说明:centos7.2系统的开发机器上已经自带了python2.7版本,但是开发的项目中用的是python3.5版本,为了保证Centos系统的 ...

  6. 1.Mysql集群------Docker下的Mysql主从复制

    前言: 实话说,我想做的是Mysql集群架构. 我的计划是: 1.实现Docker下的Mysql主从复制 2.实现MyCat基于Mysql的读写分离 3.实现MyCat的分库分表 4.实现pxc集群 ...

  7. CentOS7下部署rsync服务

    说明: 在CentOS7下部署rsync服务和在CentOS6上部署基本上是一样的,只是CentOS7自带了rsyncd启动脚本,由systemd管理而已. rsync服务端配置 [root@SERV ...

  8. 九、linux-msyql下的mysql主从复制深度实战

    1.上节基本诉说了mysql主从同步,这里想说明的是,其一从库在请求主库进行同步的时候,是主库的主线程进行用户名.密码的验证,在验证通过后,将请求转交给I/O线程负责同步:其二从库sql线程在读取中继 ...

  9. CentOS7下一个mysql安装

    CentOS7安装MySQL --下载mysql http://mirrors.sohu.com/mysql/MySQL-5.6/ http://mirrors.sohu.com/mysql/MySQ ...

随机推荐

  1. MATLAB R2017a 进入主界面以后一直处于初始化状态的解决办法

    自从前几天更新了win10系统,结果发现matlab不能用了,进入主界面一直初始化,没完没了. 网上说可能是许可证等问题,但经过尝试发现仍然无法解决问题. 仔细一想,发现win10系统的防火墙默默把它 ...

  2. 软件测试工程师这样面试,拿到offer的几率是80%

    面试难还是不难?取决于面试者的底蕴(气场+技能).心态和认知及沟通技巧.面试其实可以理解为一场聊天和谈判,在这过程中有心理.思想上的碰撞和博弈.其实你只需要搞清楚一个逻辑:“面试官为什么会这样问?他希 ...

  3. SpringBoot 配置 Servlet、Filter、Listener

    SpringBoot 配置 Servlet.Filter.Listener 在SpringBoot应用中,嵌入式的 Servlet 3.0+ 容器不会直接使用 ServletContainerInit ...

  4. 搭建基于nginx-rtmp-module的流媒体服务器

    1.业务流程图 2.软件下载 2.1 windows下载obs 2.2 linux 安装nginx(附加rtmp模块) 1.cd /usr/local 2.mkdir nginx 3.cd nginx ...

  5. canvas-8searchLight4.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. JVM虚拟机学习一:垃圾回收算法总结

    1.java虚拟机中涉及到的数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了某 ...

  7. 转载:量化投资中常用python代码分析(一)

    pandas的IO 量化投资逃不过数据处理,数据处理逃不过数据的读取和存储.一般,最常用的交易数据存储格式是csv,但是csv有一个很大的缺点,就是无论如何,存储起来都是一个文本的格式,例如日期‘20 ...

  8. 堆栈的应用——用JavaScript描述数据结构

    栈(stack)又名堆栈,它是一种运算受限的线性表.其限制是仅允许在表的一端进行插入和删除运算.这一端被称为栈顶,相对地,把另一端称为栈底. 一.实现一个栈类Stack 基于堆栈的特性,可以用数组做线 ...

  9. 如何设置访问内网web项目

    1.若我的项目搭建在一个linux虚拟机上 2.在内网的一台电脑做以下配置 3.测试访问 ******************************************************* ...

  10. Keras实现卷积神经网络

    # -*- coding: utf-8 -*- """ Created on Sun Jan 20 11:25:29 2019 @author: zhen "& ...