文章中参考使用了多个博客的资料,汇总而成!其流程准确性被人亦本人实践!

https://blog.csdn.net/qq_35206261/article/details/81321201

https://www.cnblogs.com/qianniao12/p/8011222.html

https://blog.csdn.net/qq_35206261/article/details/81321201

https://blog.csdn.net/why15732625998/article/details/80463041

一:Mysql5.6的卸载与安装

  1. 安装前需要卸载已有的mysql
  • 查看mysql是否运行# service  mysql  status

    • 是,则关闭 # service  mysql  stop

  • 查看是否有安装  # find  /  -name  mysql
  • 删除找出的目录  # rm  -rf  目录名
  • 删除mysql相关配置文件
    • # rm  -rf  /etc/my.cnf
    • # rm  -rf  /etc/init.d/mysql
    • 删除mysql用户以及用户组
      • 查看 # id  mysql

  • 删除用户# userdel  mysql

2.    下载安装mysql

·         官网下载mysql5.6

·         下载版本

版本选择Linux-Generic,选择64位mysql下载

·         下载完成后,上传至服务器/usr/local目录下,解压安装包,确认解压后,mysql的位置为/us/local/mysql

·         添加mysql用户组与用户

o    添加用户组# groupadd  mysql

o    添加用户组下用户 # useradd -r -g mysql mysql

·         安装mysql

o    进入/us/local/mysql目录的修改权限所属

# chown -R mysql:mysql  ./

o    执行命令 安装数据库:#  ./scripts/mysql_install_db  --user=mysql

·         启动mysql服务并添加开机启动mysql服务

o    cd /usr/local/mysql/support-files

o    cp my-default.cnf  /etc/my.cnf

o    修改/etc/my.cnf

o   
cp mysql.server  /etc/init.d/mysqld  开机启动

o   
service mysqld  start 启动服务

o   
ps  -ef|grep 
mysql 查看mysql是否启动

o   
ps:service  mysqld  restart 重启服务

service  mysqld 
stop 关闭服务

·        
登录mysql

o   
配置环境变量#
vi  ~/.bash_profile,添加如下

PATH=$PATH:/usr/local/mysql/bin

o   
登录初始密码为空 #
mysql  -uroot  -p

o   
切换数据实例 use
mysql;

o   
创建远程登录用户并授权,执行命令:

grant  all  privileges 
on  *.*  to 
root@"%" identified 
by  '123456'  WITH 
GRANT  OPTION;(123456为设置的密码)

o   
刷新权限 :
flush privileges;

二.mysql主从复制

1.master下操作:

·        
修改配置

# vi 
/etc/my.cnf

·        
创建数据同步用户:

grant
replication slave on *.* to 'slave_account'@'192.168.90.33' identified by '1213224';

flush
privileges;

·        
 查看master

show  master  status;

2.slave下操作:

·        
修改配置

# vi 
/etc/my.cnf

创建主从读取

change master to

master_host='192.168.90.32',

master_user='slave_account',

master_password='1213224',

master_log_file='mysql-bin.000007',

master_log_pos=120

·        
启动 #
slave  start;

三.mysql读写分离(配置Mycat)

  • 安装Mycat
  • 修改server.xml

    修改用户密码即可(确保<property name="schemas">TESTDB</property>与schema.xml中的<schema>中相同)

  • 修改schema.xml

<?xml version="1.0"?>

<!DOCTYPE mycat:schema SYSTEM "schema.dtd">

<mycat:schema xmlns:mycat="http://io.mycat/">

<!-- 同server.xml中的schema -->

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"/>

<!-- test为数据库的实例 -->

<dataNode name="dn1" dataHost="localhost1" database="test" />

<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"

writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">

<heartbeat>select user()</heartbeat>

<!-- can have multi write hosts -->

<writeHost host="hostM1" url="192.168.90.32:3306" user="root"

password="1213224">

<!-- can have multi read hosts -->

<readHost host="hostS2" url="192.168.90.33:3306" user="test" password="test" />

</writeHost>

</dataHost>

</mycat:schema>

参数说明:

Balance参数设置:

1. balance=“0”, 所有读操作都发送到当前可用的writeHost上。

2. balance=“1”,所有读操作都随机的发送到readHost。

3. balance=“2”,所有读操作都随机的在writeHost、readhost上分发

WriteType参数设置:

1. writeType=“0”, 所有写操作都发送到可用的writeHost上。

2. writeType=“1”,所有写操作都随机的发送到readHost。

3. writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。

“readHost是从属于writeHost的,即意味着它从那个writeHost获取同步数据,因此,当它所属的writeHost宕机了,则它也不会再参与到读写分离中来,即“不工作了”,这是因为此时,它的数据已经“不可靠”了。基于这个考虑,目前mycat 1.3和1.4版本中,若想支持MySQL一主一从的标准配置,并且在主节点宕机的情况下,从节点还能读取数据,则需要在Mycat里配置为两个writeHost并设置banlance=1。”

四.mysql主从复制 masterslave配置的参数大全

master所有参数

1 log-bin=mysql-bin

1、控制master的是否开启binlog记录功能;

2、二进制文件最好放在单独的目录下,这不但方便优化、更方便维护。

3、重新命名二进制日志很简单,只需要修改[mysqld]里的log_bin选项,

如下例子:要重新调整logbin的路径为“/home/mysql/binlog”

[mysqld]

log_bin=/home/mysql/binlog/binlog.log

ll /home/mysql/binlog

-rw-rw---- 1 mysql mysql 98 Mar 7 17:24 binlog.000001

-rw-rw---- 1 mysql mysql 33 Mar 7 17:24 binlog.index

需要注意:指定目录时候一定要以*.log结尾,即不能仅仅指定到文件夹的级别,否则在重启mysql时会报错。

2. server-id=1

每个server服务的标识,在master/slave环境中,此变量一定要不一样

3. expire_logs_days=15

通过此来实现master自动删除binlog

4. innodb_flush_log_at_trx_commit=1

此参数表示在事务提交时,处理重做日志的方式;此变量有三个可选值0,1,2:

0:当事务提交时,并不将事务的重做日志写入日志文件,而是等待每秒刷新一次

1:当事务提交时,将重做日志缓存的内容同步写到磁盘日志文件,为了保证数据一致性,在replication环境中使用此值。

2:当事务提交时,将重做日志缓存的内容异步写到磁盘日志文件(写到文件系统缓存中)

建议必须设置innodb_flush_log_at_trx_commit=1

5.sync_binlog=1

1、此参数表示每写缓冲多少次就同步到磁盘;

2、sync_binlog=1表示同步写缓冲和磁盘二进制日志文件,不使用文件系统缓存

在使用innodb事务引擎时,在复制环境中,为了保证最大的可用性,都设置为“1”,但会对影响io的性能。

3、即使设置为“1”,也会有问题发生:

假如当二进制日志写入磁盘,但事务还没有commit,这个时候宕机,

当服务再次起来的恢复的时候,无法回滚以及记录到二进制日志的未提交的内容;

这个时候就会造成master和slave数据不一致

解决方案:

需要参数innodb_support_xa=1来保证。建议必须设置

6 .innodb_support_xa=1

此参数与XA事务有关,它保证了二进制日志和innodb数据文件的同步,保证复制环境中数据一致性。建议必须设置

7.binlog-do-db=skate_db

只记录指定数据库的更新到二进制日志中

8. binlog-do-table=skate_tab

只记录指定表的更新到二进制日志中

9. binlog-ignore-db=skate_db

忽略指定数据库的更新到二进制日志中

10.log_slave_updates=1

此参数控制slave数据库是否把从master接受到的log并在本slave执行的内容记录到slave的二进制日志中

在级联复制环境中(包括双master环境),这个参数是必须的

11.binlog_format=statement|row|mixed

控制以什么格式记录二进制日志的内容,默认是mixed

12. max_binlog_size

master的每个二进制日志文件的大小,默认1G

13.binlog_cache_size

1、所有未提交的事务都会被记录到一个缓存或临时文件中,待提交时,统一同步到二进制日志中,

2、此变量是基于session的,每个会话开启一个binlog_cache_size大小的缓存。

3、通过变量“Binlog_cache_disk_use”和“Binlog_cache_use”来设置binlog_cache_size的大小。

说明:

Binlog_cache_disk_use: 使用临时文件写二进制日志的次数

Binlog_cache_use: 使用缓冲记写二进制的次数

14.auto_increment_increment=2 //增长的步长

auto_increment_offset=1 //起始位置

在双master环境下可以防止键值冲突

slave所用参数

1.server-id=2

和master的含义一样,服务标识

2.log-bin=mysql-bin

和master的含义一样,开启二进制

3.relay-log=relay-bin

中继日志文件的路径名称

4. relay-log-index=relay-bin

中继日志索引文件的路径名称

5. log_slave_updates=1

和master的含义一样,如上

6.read_only=1

1、使数据库只读,此参数在slave的复制环境和具有super权限的用户不起作用,

2、对于复制环境设置read_only=1非常有用,它可以保证slave只接受master的更新,而不接受client的更新。

3、客户端设置:

mysq> set global read_only=1

7. skip_slave_start

使slave在mysql启动时不启动复制进程,mysql起来之后使用 start slave启动,建议必须

8.replicate-do-db

只复制指定db

9.replicate-do-table

只复制指定表

10. replicate-ingore-table

忽略指定表

11. replicate_wild_do_table=skatedb.%

模糊匹配复制指定db

12. auto_increment_increment=2

auto_increment_offset=1

和master含义一样,参考如上

13. log_slow_slave_statements

在slave上开启慢查询日志,在query的时间大于long_query_time时,记录在慢查询日志里

14. max_relay_log_size

slave上的relay log的大小,默认是1G

15.relay_log_info_file

中继日志状态信息文件的路径名称

16. relay_log_purge

当relay log不被需要时就删除,默认是on

SET GLOBAL relay_log_purge=1

17.replicate-rewrite-db=from_name->to_name

数据库的重定向,可以把分库汇总到主库便于统计分析

[原创]mysql 5.6安装配置,主从分离,读写分离简单教程的更多相关文章

  1. MongoDB的搭建并配置主从以及读写分离

    1.环境准备  1.Centos7 2.mongodb3.4.93.三台机器IP分别是:10.170.1.16.10.170.1.18.10.170.1.33 2.mongdb数据库的安装 如下操作是 ...

  2. Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  3. 黄聪:Mysql主从配置,实现读写分离

    大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够.到了数据业务层.数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢 ...

  4. 聊聊Mysql主从同步读写分离配置实现

    Hi,各位热爱技术的小伙伴您们好,好久没有写点东西了,今天写点关于mysql主从同步配置的操作日志同大家一起分享.最近自己在全新搭建一个mysql主从同步读写分离数据库简单集群,我讲实际操作步骤整理分 ...

  5. mysql数据库主从同步读写分离(一)主从同步

    1.mysql数据库主从同步读写分离 1.1.主要解决的生产问题 1.2.原理 a.为什么需要读写分离? 一台服务器满足不了访问需要.数据的访问基本都是2-8原则. b.怎么做?  不往从服务器去写了 ...

  6. mysql 主从同步-读写分离

    主从同步与读写分离测试 一.  实验环境(主从同步) Master                   centos 7.3              192.168.138.13 Slave     ...

  7. mysql主从同步--读写分离。

    1.mysql 安装参考 https://www.cnblogs.com/ttzzyy/p/9063737.html 2. 主mysql,从mysql 指定配置文件启动 mysqld --defaul ...

  8. Docker容器启动Mysql,Docker实现Mysql主从,读写分离

    Docker容器启动Mysql,Docker实现Mysql主从,读写分离 一.Docker文件编排 二.配置主从复制 2.1 配置master 2.2 配置slave 三.验证主从复制 3.1 mas ...

  9. springboot多数据源配合docker部署mysql主从实现读写分离

    本篇主要有两部分: 1.使用docker部署mysql主从 实现主从复制 2.springboot项目多数据源配置,实现读写分离 一.使用docker部署mysql主从 实现主从复制 此次使用的是wi ...

随机推荐

  1. 添加ASP.NET AJAX控件工具集到VS2010的方法

    在VS2010中Ajax控件只有5个,其实还有很多支持AJAX特定功能的服务器控件,微软是将这些控件当作开放源代码项目.所以没有集成到VS2010中.这些AJAX控件被称为ASP.NET AJAX控件 ...

  2. WIN10安装CUDA10 cuDNN

    文章目录 CPU和GPU 什么是CUDA 什么是cuDNN WIN10安装CUDA10 WIN10安装cuDNN CPU和GPU CPU和GPU是不一样的计算机设备,CPU作为计算机心脏一直被人们所认 ...

  3. MQTT--笔记

    一.MQTT协议基本介绍 1.1.MQTT是什么? MQTT,全称为Message Queue Telemetry Transport.在1999年,由IBM的Andy Stanford-Clark和 ...

  4. mysql 监控及优化——转载自http://www.cnblogs.com/suansuan/

    1.Mysql连接数 Mysql默认最大连接数为100. 设置Mysql的最大连接数,在Mysql的配置文件中增加: max_connections = 1000   #Mysql的最大连接数,默认如 ...

  5. 关于 argc 和 argv

    https://stackoverflow.com/questions/3898021/regarding-mainint-argc-char-argv 当使用命令行启动程序,或者给程序传输参数时,可 ...

  6. JavaScript中纯JS写21点游戏

    // 21点游戏 分为人机对战和人人对战 // 玩家每次抽一张牌 牌的点数为1-10点随机数 谁更接近21点谁就获胜 let readline = require("readline-syn ...

  7. hdu多校第三场 1007 (hdu6609) Find the answer 线段树

    题意: 给定一组数,共n个,第i次把第i个数扔进来,要求你删掉前i-1个数中的一些(不许删掉刚加进来这个数),使得前i个数相加的和小于m.问你对于每个i,最少需要删掉几个数字. 题解: 肯定是优先删大 ...

  8. 机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源

      机器学习 101 Mahout 简介 建立一个推荐引擎 使用 Mahout 实现集群 使用 Mahout 实现内容分类 结束语 下载资源 相关主题   在信息时代,公司和个人的成功越来越依赖于迅速 ...

  9. VS2010-MFC(文档、视图和框架:概述)

    转自:http://www.jizhuomi.com/software/221.html 前面几节讲了菜单.工具栏和状态栏的使用,本节开始将为大家讲解文档.视图和框架的知识. 文档.视图和框架简介 在 ...

  10. 获取AndroidManifest.xml中的meta-data元素

    android 开发中: 在AndroidManifest.xml中,<meta-data>元素可以作为子元素, 被包含在<activity>.<application& ...