系统:centos6

数据库:mysql5.6

服务器:两台,一主一从

一、Mysql5.6二进制版本的安装

  Mysql的安装在有三种模式,第一种是yum安装,第二种是二进制模式的安装,第三种是源码编译安装。本篇采用的是二进制安装方式。

  安装前有几个工作建议先做一下,尽量排除掉一切可能失败的因素。

  1.在安装前要先检查下系统中是不是已经安装过mysql,如果安装,要先卸载Mysql,将相关mysql的东西全部删除。

  2.Mysql用到端口3306,要在防火墙方面上将两个端口打开,重点:如果是阿里云服务器,它的防火墙端口在还有一层过滤,需要等上控制台,在规则里面把端口给放开。

下载安装包

  1. # cd /usr/local 安装目录在/usr/local,先进入目录
  2.  
  3. #wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz 下载linux平台下的64位的Mysql5.6
  4.  
  5. #tar zxvf mysql-5.6.-linux-glibc2.-x86_64.tar.gz -C /usr/local 将其解压到/usr/local
  6.  
  7. #ln –sv mysql-5.6.-linux-glibc2.-x86_64 mysql 将解压后的文件建立软连接名字为 mysql
  8.  
  9. mv mysql-5.6.-linux-glibc2.-x86_64 mysql 将解压后的文件重命名为mysql

准备Mysql用户

  1. #groupadd mysql                增加mysql用户组
  2.  
  3. #useradd -s /sbin/nologin -M -g mysql mysql 增加mysql用户

  4.                                -s表示指定用户所用的shell,此处为/sbin/nologin,表示不登录。
  1.                                -M表示不创建用户主目录。
  2.  
  3.                                -g表示指定用户的组名为mysql
  4.  
  5.                                -最后的mysql表示用户名。
  1.  

准备数据库实例datadir目录

  1. # chown mysql:mysql /usr/local/mysql/data 更改data目录的所有者为mysql用户

  1. # /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 初始化实例3306的目录

  初始化后的data目录

准备配置文件

  在/etc文件夹下建立my.cnf,配置如下内容。

  #vim /etc/my.cnf

  1. [client]
  2. port =
  3. socket = /tmp/mysql.sock
  4. [mysqld]
  5. port =
  6. socket = /tmp/mysql.sock
  7. basedir = /usr/local/mysql
  8. datadir = /usr/local/mysql/data

配置环境变量(此步骤非必须,可以省略

  #  vim /etc/profile   

  添加export PATH=/usr/local/mysql/bin/:$PATH

  #source /etc/profile   重新加载下配置文件,使配置立即生效

数据库的启动

  启动Mysql有好几种方式,I,II,两种模式实质上最终都是是调用III.mysqld_safe启动。

  I.可以将mysql配成服务,用server mysql start启动。

  II.可以用mysqld -defaults-file=/etc/my.cnf --user=root 这种方式启动。

  III.还可以用mysqld_safe --defaults-file=/etc/my.cnf 这种方式启动。

 

  • I如果是将mysql配成服务
  1.  # cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
  2.  
  3.   # chkconfig --add mysqld 将mysqld服务添加到开机自启列表
  4.  
  5.   # chkconfig mysqld on      设置mysqld服务开机自启
  6.  
  7.   # service mysqld start      启动mysql

  • II 如果以mysqld 方式启动
  1. # /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=root & --user=root参数必须加,要不然报错

  

  • III 如果以mysqld_safe方式启动
  1. #/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf >& >/dev/null &

  

修改管理员密码并测试

  1.   # /usr/local/mysql/bin/mysqladmin -u root password 'admin' 设置管理员密码
  2.   # /usr/local/mysql/bin/mysql -u root -p             测试密码输入

至此,Mysql已经安装完成,另一台服务器mysql的安装也是这样,接下来便开始进行主从复制。

二、Mysql主从复制

我们在两台服务器上都装上Mysql,然后一台作为主服务器,一台作为从服务器,作为一主一从模式。

Master:172.23.216.86

Slvae :172.23.216.87

1.主从复制原理

  整体上来说,复制有3个步骤:

  ①master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);

  ②slave将master的binary log events拷贝到它的中继日志(relay log);

  ③slave重做中继日志中的事件,将改变反映它自己的数据。

  

2.主从复制的配置

  ①主数据库实例设置server-id和开启bin-log;

  ②主数据库实例创建用于同步的账号;

  ③从数据库实例设置server-id;

  ④从数据库实例配置同步参数;

  ⑤从数据库实例启动同步开关。

  ①主数据库实例设置server-id和开启bin-log

  在master的my.cnf文件中的[mysqld]节点出添加server-id和bin-log

  # vim /etc/my.cnf

  1. [mysqld]
  2.  
  3. log-bin= /usr/local/mysql/data/mysql-bin 二进制日志路径格式
  4.  
  5. server-id =        主库从库的id不能相同
  6.  
  7. replicate-ignore-db = mysql        在进行主从同步时忽略mysql这个库

  之后在数据库主库中查看是否开启

  1. mysql>show variables like "server_id";   显示为1表示正确
  2.  
  3. mysql>show variables like "log_bin";    显示为ON表示二进制日志开启

    

主库创建用于同步的账号

  1. mysql>GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' identified by ''; 创建一个用于从库复制的账号
  2.  
  3. mysql>flush privileges; 刷新下权限列表
  4.  
  5. mysql> show master status \G; 查看主库状态

从数据库设置server-id

  在slave中my.cnf的[mysqld]节点出添加server-id

  # vim /etc/my.cnf

  1. [mysqld]
  2.  
  3. server-id =

在slave中配置同步参数

  1. mysql>CHANGE MASTER TO
  2.  
  3. MASTER_HOST=' 172.23.216.86', 主库的ip地址
  4.  
  5. MASTER_PORT=,   端口号
  6.  
  7. MASTER_USER='replication', 账号
  8.  
  9. MASTER_PASSWORD='', 密码
  10.  
  11. MASTER_LOG_FILE='mysql-bin.000002', 开始复制的文件
  12.  
  13. MASTER_LOG_POS=; 复制的位置


⑤从数据库启动同步开关
  

  1. mysql>start slave           从库执行start slave
  2.  
  3. mysql>show slave status \G;       查看从库状态

  至此,主从复制完成。现在在master上进行数据库相关操作,之后就会发现从库中也有相关内容。

------------------------------------------------------------------------其他-------------------------------------------------------------

1.彻底解除主从复制关系
1). stop slave;
2). reset slave; 或直接删除master.info和relay-log.info这两个文件;
3). 修改my.cnf删除主从相关配置参数。

2.让slave不随MySQL自动启动
修改my.cnf 在[mysqld]中增加 skip-slave-start 选项。

Centos6上进行Mysql5.6安装和主从复制部署的更多相关文章

  1. MySQL5.7安装、主从复制、读写分离原理解析以及详细配置

    一.Linux下mysql彻底卸载 1.查看mysql的安装情况 rpm -qa | grep -i mysql 2.删除上图安装的软件 rpm -ev mysql-community-libs--. ...

  2. Solr6.5在Centos6上的安装与配置 (一)

    这篇文章主要是介绍在Centos6上Solr6.5的安装与配置. 一.安装准备及各软件使用版本说明: 1.JDK8,版本jdk1.8.0_121下载地址:jdk-8u121-linux-x64.tar ...

  3. CentOS-6.4-minimal版中源代码安装MySQL-5.5.38

    完整版见https://jadyer.github.io/2014/09/29/centos-install-mysql/ /** * CentOS-6.4-minimal版中源代码安装MySQL-5 ...

  4. Docker安装mysql5.7并且配置主从复制

    Docker安装mysql5.7并且配置主从复制 一.拉取mysql镜像 二.创建文件docker.cnf 2.1 mysql主机(192.168.21.55:3307) 2.1.1 创建文件夹 2. ...

  5. 在centos6上实现编译安装lamp和wordpress,并编译xcache

    author:JevonWei 版权声明:原创作品 软件环境: centos6.9 httpd-2.4.27.tar.bz2 apr-1.5.2.tar.bz2 apr-util-1.5.4.tar. ...

  6. 在CentOS6上利用PXE+Kickstart+Apache+DHCP实现无人值守安装

    在CentOS6上利用PXE+Kickstart+Apache+DHCP实现无人值守安装 1.PXEServer:OS:CentOS6.9IP:172.16.25.69: (1)apache:# mo ...

  7. 在 CentOS6 上安装 GraphicsMagick-1.3.30

    在 CentOS6 上安装 GraphicsMagick-1.3.30 1.简介: 1.1.在介绍 GraphicsMagick 前我们不得不先介绍下 ImageMagick: ImageMagick ...

  8. vmware上搭建kickstart 网络安装centos6.2的过程

    前言 什么是PXE? PXE(Pre-boot Execution Environment,预启动执行环境)协议使计算机可以通过网络启动.协议分client和server. PXE client 在网 ...

  9. CentOS7.5 上使用 bundle 文件安装 MySQL8.0 MySQL5.0

    CentOS7.5 上使用 bundle 文件安装 MySQL8.0 MySQL5.0 CentOS7.5 环境 [root@instance-fjii60o3 ~]# rpm -qi centos- ...

随机推荐

  1. C#实现断点续传

    断点续传的原理在了解HTTP断点续传的原理之前,先来说说HTTP协议,HTTP协议是一种基于tcp的简单协议,分为请求和回复两种.请求协议是由客户机(浏览器)向服务器(WEB SERVER)提交请求时 ...

  2. 使用C#系统服务定时执行操作

    1.新建项目 --> Windows 服务 2.Service1.cs代码 using System; using System.Collections.Generic; using Syste ...

  3. WPF 验证没有通过无法保存数据(非常好)+ 虚似数据库

    Validation control with a single validation rule is easy, but what if we need to validate a control ...

  4. linux上redis安装配置及其防漏洞配置及其攻击方法

    Linux上redis安装: 需先在服务器上安装yum(虚拟机可使用挂载的方式安装) 安装配置所需要的环境运行指令:  yum -y install gcc 进入解压文件执行make 指令进行编译 执 ...

  5. 2017年十大奇葩画风的H5页面案例,原来脑洞可以这样大

    每个人都是视觉动物,画面精美.体验奇特的H5,用户在内心一般都会满分打出,毫不吝啬,同时也毫不犹豫分享,因为此时的分享不掉价儿~ 今天给大家准备了十支H5,画风超级奇特,非常值得一看所有案例均可在19 ...

  6. 吾八哥学Python(四):了解Python基础语法(下)

    咱们接着上篇的语法学习,继续了解学习Python基础语法. 数据类型大体上把Python中的数据类型分为如下几类:Number(数字),String(字符串).List(列表).Dictionary( ...

  7. 关于scanf 与 cin gets(),getline()......输入输出字符串的区别

    很对人对于字符串的输入输出一直是比较模糊的,今天总结一下几个常用的输入流符号对于输入字符串时的区别: 1.scanf(),首先 它遇到空格或回车键(\n)就会结束,并且会将回车符算入字符串中: 2.c ...

  8. CSS学习总结

    CSS基础 简介 什么是CSS? CSS如何创建? 选择器 通用选择器 标签选择器 类选择器 ID选择器 属性选择器 后代选择器 子选择器 相邻元素选择器 伪类选择器 CSS样式 背景 文本 字体 链 ...

  9. Hadoop Streaming详解

    一: Hadoop Streaming详解 1.Streaming的作用 Hadoop Streaming框架,最大的好处是,让任何语言编写的map, reduce程序能够在hadoop集群上运行:m ...

  10. 【面向对象】详解之JavaScript篇

    [重点提前说:面向对象的思想很重要!] 最近开始接触学习后台的PHP语言,在接触到PHP中的面向对象相关思想之后,突然想到之前曾接触的JS中的面向对象思想,无奈记性太差,便去翻了翻资料,花了点时间梳理 ...