首先大致看一下这个图

环境说明:

系统: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. 4.7 explain 之 Extra

    一.说明 包含不合适在其他列中显示,但十分重要的信息. 二.分类 a. Using filesort : 说明mysql 会对数据使用一个外部的索引排序,而不是按照表内的索引顺序排序进行读取的.mys ...

  2. 【Java每日一题】20170328

    20170327问题解析请点击今日问题下方的“[Java每日一题]20170328”查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; public cla ...

  3. vim 中:wq和:wq的不同之处

  4. C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】

    一.引言 今天我们开始讲“行为型”设计模式的第八个模式,该模式是[职责链模式],英文名称是:Chain of Responsibility Pattern.让我们看看现实生活中的例子吧,理解起来可能更 ...

  5. SpringBoot的打包失败

    打包是根据pom.xml文件来打的包. 如果使用Maven的默认打包,只会将src/main下的java和resources里面的内容打进Jar包中. 通过maven-assembly-plugin这 ...

  6. javascript中Ajax的简单封装

    GET方式的在线:DEMO POST方式在线:DEMO // 1.封裝AJAX函數 function nativeAjax(option,success,error){ // 定义domain,方便环 ...

  7. win7卸载JDK出现windows Installer程序包有问题

    旭日Follow_24 的CSDN 博客 ,全文地址请点击: https://mp.csdn.net/postedit/82387967 操作系统:Windows 7 (64位) jdk版本:jdk1 ...

  8. centos7学习笔记-安装配置apache

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.安装apache #yum install httpd 2.配置开机启动 systemctl enable httpd 3. ...

  9. Visualization of Detail Point Set by Local Algebraic Sphere Fitting

    Refers to Dynamic Sampling and Rendering of Algebraic Point Set Surfaces Growing Least Squares for t ...

  10. Java的内存 -JVM 内存管理

    一.综述 如果你学过C或者C++,那么你应该感受过它们对内存那种强大的掌控力.但是强大的能力往往需要更强大的控制力才能保证能力不被滥用,如果滥用C/C++的内存管理那么很容易出现指针满天飞的情况,不出 ...