系统:centos6

数据库:mysql5.6

服务器:两台,一主一从

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

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

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

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

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

下载安装包

# cd  /usr/local            安装目录在/usr/local,先进入目录

#wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz    下载linux平台下的64位的Mysql5.6

#tar zxvf mysql-5.6.-linux-glibc2.-x86_64.tar.gz  -C /usr/local  将其解压到/usr/local

#ln –sv mysql-5.6.-linux-glibc2.-x86_64  mysql  将解压后的文件建立软连接名字为 mysql

或 mv mysql-5.6.-linux-glibc2.-x86_64  mysql  将解压后的文件重命名为mysql

准备Mysql用户

#groupadd mysql                           增加mysql用户组

#useradd -s /sbin/nologin -M -g mysql mysql        增加mysql用户

                               -s表示指定用户所用的shell,此处为/sbin/nologin,表示不登录。
                               -M表示不创建用户主目录。

                               -g表示指定用户的组名为mysql。

                               -最后的mysql表示用户名。
 

准备数据库实例datadir目录

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

# /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

[client]
port =
socket = /tmp/mysql.sock
[mysqld]
port =
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
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配成服务
  # cp /usr/local/mysql/support-files/mysql.server  /etc/rc.d/init.d/mysqld    

  # chkconfig --add mysqld        将mysqld服务添加到开机自启列表

  # chkconfig mysqld on        设置mysqld服务开机自启

  # service mysqld start        启动mysql

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

  

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

  

修改管理员密码并测试

  # /usr/local/mysql/bin/mysqladmin -u root password 'admin'  设置管理员密码
  # /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

[mysqld]

log-bin= /usr/local/mysql/data/mysql-bin   二进制日志路径格式

server-id  =                          主库从库的id不能相同

replicate-ignore-db = mysql            在进行主从同步时忽略mysql这个库

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

mysql>show variables like "server_id";   显示为1表示正确

mysql>show variables like "log_bin";    显示为ON表示二进制日志开启

    

主库创建用于同步的账号

mysql>GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' identified by '';  创建一个用于从库复制的账号

mysql>flush privileges;    刷新下权限列表

mysql> show master status \G;  查看主库状态

从数据库设置server-id

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

  # vim /etc/my.cnf

[mysqld]

server-id  = 

在slave中配置同步参数

mysql>CHANGE MASTER TO

MASTER_HOST=' 172.23.216.86',        主库的ip地址

MASTER_PORT=,                   端口号

MASTER_USER='replication',           账号

MASTER_PASSWORD='',            密码

MASTER_LOG_FILE='mysql-bin.000002',  开始复制的文件

MASTER_LOG_POS=;                  复制的位置


⑤从数据库启动同步开关
  

mysql>start slave;             从库执行start slave

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. Kvm虚拟化的一种打包及部署方案(采用tar包,lvm方式)

    Kvm虚拟化的一种打包部署方案(采用tar包,lvm方式) –-–-–-2016年终总结 一 毕业之后跟师兄学到的第一块主要内容,理解花了不少时间.期间经历了shell的入门.linux基础知识入门. ...

  2. 【记录】Spring项目转化为Spring Web项目

    前言 在将Spring项目转化为Spring Mvc项目时出现了点问题,总是无法成功部署,查阅资料也并没有找到一个完美的解决方案,最后是参考在idea中创建maven web app项目后的目录才成功 ...

  3. Github Page+Bmob实现简单动态功能

    Github Page基于jekyll能够实现简单的静态网站,但是没有提供后端服务.目前国内外也有很多提供后台服务,特别是云服务.譬如国外有AWS,记得好像是注册免费使用一年:再如Heroku,支持N ...

  4. Linux向文件添加内容的几种方法

    例如,要想test.txt文件添加内容"I am a boy",test.txt在当前目录中 方法一:vi编辑法 打开终端,输入vi test.txt 回车,按a或i进入编辑模式, ...

  5. 【学习】Zepto与jQuery 差别

    前几天遇到一个项目,需要把jquery全部改成Zepto,当时因为自己没有实际经验,所以没有接.今天查了一下两者究竟有什么区别. 首先看到了这么一篇文章:http://www.bootcss.com/ ...

  6. JavaEE 对象的串行化(Serialization)

    什么情况下需要序列化 a)当你想把的内存中的对象写入到硬盘的时候:b)当你想用套接字在网络上传送对象的时候:c)当你想通过RMI传输对象的时候:再稍微解释一下:a)比如说你的内存不够用了,那计算机就要 ...

  7. win10 uwp 视差效果

    本文翻译:http://jamescroft.co.uk/blog/uwp/playing-with-scrolling-parallax-effects-on-ui-elements-in-wind ...

  8. vim中SnipMate 和 YouCompleteMe 插件触发键 tab 冲突

    花了好几天废了九牛二虎之力终于在win下把ycm插件装上了 然而在配置插件的时候发现snipmate插件与youcompleteme插件会发生tab键冲突 而ycm比较调,直接使snipmate插件完 ...

  9. python3中判断字串类型

    s为字串 s.isalnum() #所有字符都是数字或者字母,为真返回 Ture,否则返回 False. s.isalpha() #所有字符都是字母,为真返回 Ture,否则返回 False. s.i ...

  10. 【转】缓存淘汰算法系列之3——FIFO类

    原文地址:http://www.360doc.com/content/13/0805/16/13247663_304923435.shtml 1 FIFO 1.1. 原理 按照“先进先出(First ...