zoukankan      html  css  js  c++  java
  • MySQL5.6 源码包安装及主从复制

    环境准备:
    系统版本:CentOS release 6.8 (Final) 初始化完成
    MySQL版本:mysql5.6.21
    MySQL源码下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.21.tar.gz
    安装流程:

    1. 安装相关软件包:
      yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
      yum install libaio libaio-devel -y
    2. 删除原来的mysql以及相关文件:
      rpm -e --nodeps mysql
      find / -name mysql -> 将查找到的文件全部删除
      whereis mysql -> 将查找到的文件全部删除
    3. 安装前准备工作:
      3.1 创建MySQL安装目录:
      ~]# mkdir /usr/local/mysql
      3.2 创建MySQL数据目录:
      ~]# mkdir /usr/local/mysql/data
      3.3 创建源码的存放目录:
      ~]# mkdir /usr/local/src ###可能存在
      3.4 创建MySQL用户组和MySQL用户:
      检查系统本身是否有mysql用户和组,没有则进行创建:
      ~]# cat /etc/passwd | grep mysql
      ~]# cat /etc/group | grep mysql
      ~]# groupadd mysql
      ~]# useradd -g mysql -s /sbin/nologin mysql
      3.5 下载mysql源码包:
      ~]# cd /usr/local/src/
      src]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.21.tar.gz
    4. 开始安装:
      4.1 解压压缩包并进行编译安装:
      src]# tar -zxvf mysql-5.6.21.tar.gz
      src]# cd mysql-5.6.21
      src]# cmake
      -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ----安装目录
      -DMYSQL_DATADIR=/usr/local/mysql/data ----安装数据目录
      -DSYSCONFDIR=/etc ----数据库参数文件存放位置
      -DWITH_MYISAM_STORAGE_ENGINE=1 ----开放使用myisam存储引擎
      -DWITH_INNOBASE_STORAGE_ENGINE=1 ----开放使用INNOBASE存储引擎
      -DWITH_MEMORY_STORAGE_ENGINE=1 ----开放使用MEMORY存储引擎
      -DWITH_READLINE=1 ----安装行编辑器
      -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock ----unixsocket文件
      -DMYSQL_TCP_PORT=3306 ----端口
      -DENABLED_LOCAL_INFILE=1 ----允许从本地导入数据
      -DWITH_PARTITION_STORAGE_ENGINE=1 ----开放使用partition_storage存储引擎
      -DEXTRA_CHARSETS=all ----安装所有拓展字符
      -DDEFAULT_CHARSET=utf8 ----使用utf8字符
      -DDEFAULT_COLLATION=utf8_general_ci ----校验字符
      -- Build files have been written to: /usr/local/src/mysql-5.6.21 表示编译成功(时间较长)
      mysql-5.6.21]# make && make install
      4.2 后续配置:
      ~]# cd /usr/local/mysql/
      修改目录权限:
      ~]# chown mysql. -R /usr/local/mysql/
      初始化数据库:
      mysql]# ./scripts/mysql_install_db --user=mysql
      查看数据目录里是否有数据文件:
      mysql]# ls ./data/
      auto.cnf centos6ex.err centos6ex.pid ibdata1 ib_logfile0 ib_logfile1 mysql performance_schema test
      将数据库的启动脚本拷贝到/etc/init.d下:
      mysql]# cp ./support-files/mysql.server /etc/init.d/mysql
      安全配置:
      mysql]# ./bin/mysql_secure_installation --user=mysql
    5. 将mysql命令添加到/usr/bin中,确保mysql可在系统任意位置执行。

    GTID简述:
    mysql数据库从5.6.5开始新增一种基于GDIT的复制方式。通过GDIT保证每个主库上提交的事务在集群中有一个唯一的ID.这种方式强化了数据库的主备一致性,故障恢复以及容错能力。
    GTID (Global Transaction ID) 是对于一个已提交事务的编号,并且是一个全局唯一的编号。 GTID 实际上 是由 UUID+TID 组成的。其中 UUID 是一个 MySQL 实例的唯一标识。TID 代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。

    1. 环境准备:

    操作系统:CentOS release 6.8 (Final)
    MySQL版本:5.6.21(源码包编译安装)
    
    IP角色端口
    192.168.1.150master3306
    192.168.1.151slave3306

    2. 文件位置:

    源码包编译安装,配置文件my.cnf路径:/usr/local/mysql/my.cnf
    

    3. 开始配置:

    ##### 3.1 修改两台主机的hosts文件:
    ~]# vim /etc/hosts
    192.168.1.150 master
    192.168.1.151 slave
    ##### 3.2 修改两台主机的MySQL配置文件:
    ~]# vim /usr/local/mysql/my.cnf
    autocommit=1
    log-bin=mysql-bin ##开启二进制日志
    binlog_format=row
    gtid_mode=ON ##启动gtid模式
    enforce_gtid_consistency=1 ##开启GTID一些安全限制
    log-slave-updates ##从机日志同步
    server-id=150 ##服务器标识
    主从都要进行此修改,注意二者服务器标识不同
    ##### 3.3 保存后重启数据库:
    ~]# /etc/init.d/mysql restart
    Shutting down MySQL............ SUCCESS!
    Starting MySQL.. SUCCESS!
    ##### 3.4 主库授权:
    mysql> grant replication slave,reload,super on . to slave@'192.168.1.%' identified by '1234';
    mysql> flush privileges;
    ##### 3.5 从库更改从属关系:
    mysql> change master to
    -> master_host="192.168.1.150",
    -> master_port=3306,
    -> master_user="slave",
    -> master_password="1234",
    -> master_auto_position=1;
    mysql> start slave; ##从库启动slave
    mysql> show slave status G;
    Slave_IO_Running: Yes
    Slave_SQL_Running: Yes -> 主从配置成功

    4. 测试:
    主库建表并插入数据:
        mysql> create table t1(id int);
            Query OK, 0 rows affected (0.03 sec)
        mysql> insert into t1 values (1);
            Query OK, 1 row affected (0.01 sec)
    从库可以查询到:
    





  • 相关阅读:
    idea配置tomcat运行按钮置灰,下拉没有自定义的tomcat选项
    配置多版本jdk,自由切换jdk版本
    五年经验程序员告诉你,如何确定自己是否适合做程序员
    你的编程能力从什么时候开始突飞猛进?
    10 个提升效率的Linux小技巧
    8 种经常被忽视的 SQL 错误用法,你有没有踩过坑?
    十大优秀编程项目,让你的简历金光闪闪
    一文掌握 Lambda 表达式
    一文详解微服务架构(一)
    Java的参数传递是「按值传递」还是「按引用传递」?
  • 原文地址:https://www.cnblogs.com/plutozzl/p/13098275.html
Copyright © 2011-2022 走看看