一、架构

两台mysql服务器做一主一从,172.28.18.69(主) 172.28.18.78(从)

二、分别编译安装mysql5.7

1、下载mysql5.7.26源码包

[root@server- /]# mkdir  /usr/local/src/mysql-5.7.-src
[root@server-]# cd /usr/local/src/mysql-5.7.-src/
[root@server- mysql-5.7.-src]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26.tar.gz

2、添加mysql用户和组

[root@server- mysql-5.7.-src]# useradd mysql
[root@server- mysql-5.7.-src]# id mysql
uid=(mysql) gid=(mysql) 组=(mysql)

3、设置mysql用户密码

[root@server- mysql-5.7.-src]# passwd mysql
更改用户 mysql 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

4、新建mysql相关目录,并赋权限给mysql用户

[root@server- mysql-5.7.-src]# mkdir /home/mysql-5.7.
[root@server- mysql-5.7.-src]# mkdir /home/mysql-5.7./data
[root@server- mysql-5.7.-src]# mkdir /home/mysql-5.7./log
[root@server- mysql-5.7.-src]# mkdir -p /home/mysql-5.7./run
[root@server- home]# chown -R mysql:mysql mysql-5.7./
[root@server- home]# cd mysql-5.7./
[root@server- mysql-5.7.]# ll
总用量
drwxr-xr-x mysql mysql 5月 : data
drwxr-xr-x mysql mysql 5月 : log
drwxr-xr-x mysql mysql 5月 : run

5、安装依赖包

[root@server-]# yum install cmake gcc gcc-c++ ncurses-devel bison zlib libxml openssl automake autoconf make libtool bison-devel libaio-devel -y

6、安装boost

MySQL5.7.24要求boost的版本是1.59,更高版本的不适用MySQL5.7.24

[root@server-1 /]# cd /usr/local/src/
[root@server-1 src]# wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
[root@server-1 src]# tar -zxvf boost_1_59_0.tar.gz
[root@server- src]# mv boost_1_59_0 /usr/local/

7、编译安装

[root@server- /]# cd /usr/local/src/mysql-5.7.-src/
[root@server- mysql-5.7.-src]# tar -zxvf mysql-5.7..tar.gz
[root@server- mysql-5.7.]# cd mysql-5.7.
[root@server- mysql-5.7.]# cmake -DCMAKE_INSTALL_PREFIX=/home/mysql-5.7. -DINSTALL_DATADIR=/home/mysql-5.7./data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_SSL=yes -DWITH_EMBEDDED_SERVER= -DENABLED_LOCAL_INFILE= -DWITH_MYISAM_STORAGE_ENGINE= -DWITH_INNOBASE_STORAGE_ENGINE= -DWITH_ARCHIVE_STORAGE_ENGINE= -DWITH_BLACKHOLE_STORAGE_ENGINE= -DWITH_FEDERATED_STORAGE_ENGINE= -DWITH_PARTITION_STORAGE_ENGINE= -DMYSQL_UNIX_ADDR=/home/mysql-5.7./run/mysql.sock -DMYSQL_TCP_PORT= -DENABLED_LOCAL_INFILE= -DSYSCONFDIR=/etc -DWITH_READLINE=on -DWITH_BOOST=/usr/local/boost_1_59_0

如果中途出现错误,则根据错误信息去查找问题,再次编译的时候,一定需要删除mysql-5.7.26下的CMakeCache.txt这个文件,清空缓存才能再次编译,否则还是跟上次一样出现错误。

最后出现

CMake Warning:
Manually-specified variables were not used by the project: INSTALL_DATADIR
WITH_READLINE -- Build files have been written to: /usr/local/src/mysql-5.7.-src/mysql-5.7.

编译成功,再执行

[root@server- mysql-5.7.]# make && make install

最后出现

-- Installing: /home/mysql-5.7./mysql-test/lib/My/SafeProcess/Base.pm
-- Installing: /home/mysql-5.7./support-files/mysqld_multi.server
-- Installing: /home/mysql-5.7./support-files/mysql-log-rotate
-- Installing: /home/mysql-5.7./support-files/magic
-- Installing: /home/mysql-5.7./share/aclocal/mysql.m4
-- Installing: /home/mysql-5.7./support-files/mysql.server

8、编写配置文件my.cnf

[root@server- mysql-5.7.]# vim /etc/my.cnf
[mysqld]
bsedir=/home/mysql-5.7.
datadir=/home/mysql-5.7./data
socket=/home/mysql-5.7./run/mysql.sock
user=mysql
symbolic-links=
[mysqld_safe]
log-error=/home/mysql-5.7./log/mysqld.log
pid-file=/home/mysql-5.7./run/mysqld.pid

9、配置环境变量

[root@server- mysql-5.7.]# vim /etc/profile
在文件末尾加上
PATH=$PATH:/home/mysql-5.7./bin/
[root@server- mysql-5.7.]# source /etc/profile

10、初始化系统数据库

[root@server- /]# mysqld --initialize --user=mysql --basedir=/home/mysql-5.7./ --datadir=/home/mysql-5.7./data/
[root@server- /]#

没有报错,查看日志中的初始密码

[root@server- /]# cat /home/mysql-5.7./log/mysqld.log |grep password
--04T01::.224507Z [Note] A temporary password is generated for root@localhost: dyB8iUq<EaK;

11、启动数据库

[root@server- /]# mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
--04T02::.566664Z mysqld_safe Logging to '/home/mysql-5.7.26/log/mysqld.log'.
--04T02::.629556Z mysqld_safe Starting mysqld daemon with databases from /home/mysql-5.7./data

12、启动客户端,输入初始密码登录数据库

[root@server- ~]# mysql -uroot -p

13、修改密码

mysql> set PASSWORD=PASSWORD('xxxxxxx');
mysql> alter user 'root'@'localhost' PASSWORD EXPIRE NEVER;
Query OK, rows affected (0.00 sec) mysql> flush privileges;
Query OK, rows affected (0.00 sec)

退出,重新登录

[root@server- ~]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7. Source distribution Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

三、配置主从配置

1、主库172.28.18.69配置文件

[mysqld]
basedir=/home/mysql-5.7.
datadir=/home/mysql-5.7./data
socket=/home/mysql-5.7./run/mysql.sock
user=mysql
symbolic-links=
server_id=
gtid_mode=on #开启gtid模式
enforce_gtid_consistency=on #强制gtid一致性
log-bin=master #开启二进制日志
binlog_format=row [mysqld_safe]
log-error=/home/mysql-5.7./log/mysqld.log
pid-file=/home/mysql-5.7./run/mysqld.pid

重启mysql,并登录mysql

[root@server- /]# mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
[]
[root@server- /]# --04T02::.501598Z mysqld_safe Logging to '/home/mysql-5.7.26/log/mysqld.log'.
--04T02::.554499Z mysqld_safe Starting mysqld daemon with databases from /home/mysql-5.7./data
^C
[root@server- /]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.7.-log Source distribution Copyright (c) , , Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

查询主库状态

mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| master. | | | | |
+---------------+----------+--------------+------------------+-------------------+

多了一个Executed_Gtid_Set

查询gitd相关变量

mysql> show variables like '%gtid%';
+----------------------------------+-----------+
| Variable_name | Value |
+----------------------------------+-----------+
| binlog_gtid_simple_recovery | ON |
| enforce_gtid_consistency | ON |
| gtid_executed_compression_period | |
| gtid_mode | ON |
| gtid_next | AUTOMATIC |
| gtid_owned | |
| gtid_purged | |
| session_track_gtids | OFF |
+----------------------------------+-----------+
rows in set (0.00 sec)

2、主库上创建repl账号

mysql> grant replication slave,replication client on *.* to 'repl'@'%' identified by 'xxxxxx';
Query OK, rows affected, warning (0.02 sec)

3从库配置文件

[mysqld]
basedir=/home/mysql-5.7.
datadir=/home/mysql-5.7./data
socket=/home/mysql-5.7./run/mysql.sock
user=mysql
symbolic-links=
server_id=
gtid_mode=on #开启gtid模式
enforce_gtid_consistency=on
log-bin=salve
binlog_format=row [mysqld_safe]
log-error=/home/mysql-5.7./log/mysqld.log
pid-file=/home/mysql-5.7./run/mysqld.pid

重启mysql

[root@server- log]# mysqld_safe --defaults-file=/etc/mysql/my.cnf &
[]
[root@server- log]# --04T02::.867996Z mysqld_safe Logging to '/home/mysql-5.7.26/log/mysqld.log'.
--04T02::.899183Z mysqld_safe Starting mysqld daemon with databases from /home/mysql-5.7./data

登录mysql,从库执行以下命令

mysql> change master to master_host='172.28.18.69' ,master_user='repl',master_password='xxxxxx',master_auto_position=;
Query OK, rows affected, warnings (0.30 sec) mysql> start slave;
Query OK, rows affected (0.02 sec)

查看从库状态

mysql> show slave status\G;
*************************** . row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 172.28.18.69
Master_User: repl
Master_Port:
Connect_Retry:
Master_Log_File: master.
Read_Master_Log_Pos:
Relay_Log_File: server--relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: master.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno:
Last_Error:
Skip_Counter:
Exec_Master_Log_Pos:
Relay_Log_Space:
Until_Condition: None
Until_Log_File:
Until_Log_Pos:
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master:
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno:
Last_IO_Error:
Last_SQL_Errno:
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id:
Master_UUID: ee3e292b-866b-11e9-9df8-14feb5dc2c77
Master_Info_File: /home/mysql-5.7./data/master.info
SQL_Delay:
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
Master_Retry_Count:
Master_Bind:
Last_IO_Error_Timestamp:
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set: ee3e292b-866b-11e9-9df8-14feb5dc2c77:
Executed_Gtid_Set: 520b8b86--11e9--90b11c15be09:-,
ee3e292b-866b-11e9-9df8-14feb5dc2c77:
Auto_Position:
Replicate_Rewrite_DB:
Channel_Name:
Master_TLS_Version:
row in set (0.00 sec)

成功

mysql> mysql> show variables like '%gtid%';
+----------------------------------+----------------------------------------+
| Variable_name | Value |
+----------------------------------+----------------------------------------+
| binlog_gtid_simple_recovery | ON |
| enforce_gtid_consistency | ON |
| gtid_executed_compression_period | |
| gtid_mode | ON |
| gtid_next | AUTOMATIC |
| gtid_owned | |
| gtid_purged | ee3e292b-866b-11e9-9df8-14feb5dc2c77: |
| session_track_gtids | OFF |
+----------------------------------+----------------------------------------+

测试

主库新建test库和test表,插入一条记录

mysql> create database test;
Query OK, row affected (0.02 sec) mysql> use test;
Database changed
mysql> create table test(id int ,name varchar());
Query OK, rows affected (0.14 sec) mysql> insert into test values(,'aaaaa');
Query OK, row affected (0.05 sec) mysql> select * from test;
+------+-------+
| id | name |
+------+-------+
| | aaaaa |
+------+-------+
row in set (0.00 sec)

在从库上查看

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test |
+--------------------+
rows in set (0.00 sec) mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed
mysql> select * from test;
+------+-------+
| id | name |
+------+-------+
| | aaaaa |
+------+-------+
row in set (0.00 sec)

数据同步成功。

mysql5.7使用gtid模式搭建主从复制架构的更多相关文章

  1. mysql5.7基于gtid进行搭建主从复制过程

    gtid_mode = onenforce-gtid-consistency = onskip_name_resolve # 去掉域名解析二进制日志必须开启,且格式为ROWserver-id必须配置成 ...

  2. 基于GTID模式MySQL主从复制

    基于GTID模式MySQL主从复制 GTID复制原理:基于GTID的复制是MySQL 5.6后新增的复制方式GTID (global transaction identifier) 即全局事务ID, ...

  3. MySQL传统点位复制在线转为GTID模式复制

    1.  GTID优缺点 MySQL传统点位复制在5.7版本前是主要的主从复制模式,而随着MySQL5.6版本引入GTID,并且MySQL5.7进行各方面的优化以后,在mySQL5.7(尤其是MySQL ...

  4. 在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)【转】

    mysql主从复制架构,是mysql数据库主要特色之一,绝大多数公司都有用到. 而GTID模式是基于事务的复制模式的意思,发展到现在也是越来越多人用. 以前很多文章,介绍搭建mysql主从复制架构,是 ...

  5. Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)

    之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...

  6. MySQL-5.6版本GTID的主从复制

    mysql GTID Replication 一.GTID的概述: 1.全局事物标识:global transaction identifieds. 2.GTID事物是全局唯一性的,且一个事务对应一个 ...

  7. MySQL主从复制之GTID模式介绍

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GTID概述 MySQL5.6 在原有主从复制的基础上增加了一个新的复制方式,即基于GTID的复制方式,它由UUID和事务 ...

  8. MySQL5.6基于GTID的主从复制配置

    全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性. GTID实际上是由UUID+TID组成的.其中UUID是一个MySQL实例的唯一标 ...

  9. Linux centosVMware Linux集群架构LVS DR模式搭建、keepalived + LVS

    一.LVS DR模式搭建 三台机器 分发器,也叫调度器(简写为dir) davery :1.101 rs1 davery01:1.106 rs2 davery02:11.107 vip 133.200 ...

随机推荐

  1. java 正则表达式:有丶东西

    非常详细 原文地址:https://blog.csdn.net/jeffleo/article/details/52194977

  2. linux如何杀掉进程(kill)

    方法/步骤1: 使用“ps -e|grep mysql”命令,查看mysql程序的对应的pid号.结果如下图:   方法/步骤2: 使用“kill -9 2891”命令,可以结束掉mysqld_saf ...

  3. [Python]if语句的练习

    习题: 小明身高1.75,体重80.5kg.请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:低于18.5:过轻 18.5-25:正常 25-28:过重 28-32:肥 ...

  4. Python之取整

    在编程过程中数据处理是不可避免的,很多时候都需要根据需求把获取到的数据进行处理,取整则是最基本的数据处理.取整的方式则包括向下取整.四舍五入.向上取整等等.下面就来看看在Python中取整的几种方法吧 ...

  5. Dart学习笔记-变量常量数据类型

    变量和常量 1.变量的定义 main() { var t_str = 'hello world'; var t_num = 123456; String t_str2 = '你好,我很高兴'; int ...

  6. Python学习之==>循环

    1.While循环 # 循环的时候是在重复执行循环体里面的东西 # 在循环体里面遇到break,立即结束循环,不管循环有没有完 # 在循环体里面遇到continue,那么就结束本次循环,继续进行下一次 ...

  7. unity快捷放置物体操作

    https://connect.unity.com/p/zui-jia-shi-jian-dui-xiang-fang-zhi-he-wu-li-xiao-guo 最佳实践系列文章将探讨我们在与客户合 ...

  8. 【Ruby on Rails 学习六】Ruby 类 的入门

    1.什么是类 2.类与实例的区别 3.自定义简单的类 生活中的垃圾分类,是集合上的概念 比如数学上的   1  a  2  b  c  4  5分类为数字1 2 4 5 ,字母  a  b  c ir ...

  9. 【图像处理】【计算机视觉】findContours的使用

    原文地址:findContours函数参数说明及相关函数作者:鸳都学童 findContours函数,这个函数的原型为: void findContours(InputOutputArray imag ...

  10. flask 重定向详解

    from flask import Flask,request,redirect,url_for app = Flask(__name__) @app.route('/') def hello_wor ...