两台虚拟机192.168.183.131和192.168.183.132,装完系统之后直接把所有开发包都装上
下载软件包mysql-5.6.10.tar.gz,cmake-2.8.10.2.tar.gz(从5.5开始mysql使用cmake来进行编译了而不是之前的configure)

mysql的编译安装

1.首先安装cmake

  1. [root@localhost ~]# tar -xvf cmake-2.8.10.2.tar.gz
  2. [root@localhost ~]# cd cmake-2.8.10.2
  3. [root@localhost cmake-2.8.10.2]# ./configure
  4. [root@localhost cmake-2.8.10.2]# make;make install

2.安装mysql
1)创建mysql用户和组

  1. [root@localhost ~]# groupadd mysql
  2. [root@localhost ~]# useradd -g mysql mysql
  3. [root@localhost ~]# mkdir /usr/local/mysql
  4. [root@localhost ~]# chown -R mysql.mysql /usr/local/mysql

2)解压缩mysql,进行编译安装

  1. [root@localhost ~]# tar -xvf mysql-5.6.10.tar.gz
  2. [root@localhost ~]# cd mysql-5.6.10
  3. [root@localhost ~]# cmake \
  4. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
  5. -DMYSQL_DATADIR=/user/local/mysql/data \
  6. -DSYSCONFDIR=/etc \
  7. -DEXTRA_CHARSETS=all \
  8. -DDEFAULT_CHARSET=utf8 \
  9. -DDEFAULT_COLLATION=utf8_general_ci \
  10. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  11. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  12. -DWITH_BLACKHOLE_STORAGE_ENGINE=1  \
  13. -DWITH_FEDERATED_STORAGE_ENGINE=1 \
  14. -DWITH_PARTITION_STORAGE_ENGINE=1 \
  15. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
  16. -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock  \
  17. -DMYSQL_TCP_PORT=3306 \
  18. -DWITH_DEBUG=0 \
  19. -DENABLED_LOCAL_INFILE=1
  20. [root@localhost ~]# make;make install
  21. [root@localhost ~]# cd /usr/local/mysql/
  22. [root@localhost mysql]# chown -R root.mysql *
  23. [root@localhost mysql]# chown -R mysql.mysql data/

3)创建主配置文件和启动脚本

  1. [root@localhost data]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
  2. [root@localhost ~]# vi /etc/my.cnf
  3. basedir = /usr/local/mysql
  4. datadir = /usr/local/mysql/data
  5. port = 3306
  6. server_id = 131
  7. socket = /var/run/mysqld/mysqld.sock
  8. user = mysql
  9. log-error = /var/log/mysqld.log
  10. [root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  11. [root@localhost data]# vi /etc/init.d/mysqld
  12. basedir=/usr/local/mysql
  13. datadir=/usr/local/mysql/data
  14. mysqld_pid_file_path=/var/run/mysqld/mysqld.pid

4)把mysql的相关文件录入系统
配置mysql命令的搜索路径
打开/etc/profile文件找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC在这句之前添加export PATH=$PATH:/usr/local/mysql/bin 就会对所有用户有效并且开机自动生效了

告知系统mysql库文件的存放位置 
编辑/etc/ld.so.conf.d/mysql.conf 添加/usr/local/mysql/lib
ldconfig -v |grep mysql 
ldconfig会按照系统库文件的搜索路径把系统中所有的库文件重新加载一遍

告知系统mysql头文件的位置 
ln -sv /usr/local/mysql/include /usr/include/mysql

配置mysql的man手册页 
vi /etc/man.config添加 MANPATH=/usr/local/mysql/man

5)初始化数据库并且启动

  1. [root@localhost scripts]# pwd
  2. /usr/local/mysql/scripts
  3. [root@localhost scripts]# mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
  4. [root@localhost ~]# chkconfig --add mysqld
  5. [root@localhost ~]# service mysqld start

6)配置第二台mysql,直接复制过去

  1. [root@localhost ~]# scp -r /etc/my.cnf 192.168.183.132:/etc
  2. [root@localhost ~]# scp -r /etc/init.d/mysqld 192.168.183.132:/etc/init.d
  3. [root@localhost ~]# scp -r /usr/local/mysql 192.168.183.132:/usr/local
  4. [root@localhost ~]# scp -r /etc/ld.so.conf.d/mysql.conf 192.168.183.132:/etc/ld.so.conf.d/
  5. [root@localhost ~]# groupadd mysql
  6. [root@localhost ~]# useradd -g mysql mysql
  7. [root@localhost ~]# chown -R mysql.mysql /usr/local/mysql
  8. [root@localhost ~]# cd /usr/local/mysql
  9. [root@localhost ~]# chown -R root.mysql *
  10. [root@localhost ~]# chown -R mysql.mysql data/

在132上面把/etc/my.cnf配置文件中的server-id改成132,然后重复进行第四部

主从复制的配置

1.把131配置成主库,把132配置成从库
1)在131上面打开二进制日志

修改配置文件/etc/my.cnf,添加log-bin = mylog.000001

重启mysql

2)然后建一个用户,授权可以读取自己的二进制日志

  1. mysql> grant replication slave on *.* to slave@'192.168.183.132' identified by 'mapabc';
  2. Query OK, 0 rows affected (0.01 sec)
  3. mysql> flush privileges;
  4. Query OK, 0 rows affected (0.00 sec)

3)从库上面登录测试

  1. [root@localhost ~]# mysql -u slave -p -h 192.168.183.131
  2. Enter password:
  3. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  4. mysql> show databases;
  5. +--------------------+
  6. | Database           |
  7. +--------------------+
  8. | information_schema |
  9. | test               |
  10. +--------------------+
  11. 2 rows in set (0.00 sec)

4)主库上面查看当前的POS号

  1. mysql> show master status;
  2. +--------------+----------+--------------+------------------+-------------------+
  3. | File         | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
  4. +--------------+----------+--------------+------------------+-------------------+
  5. | mylog.000001 |      412 |              |                  |                   |
  6. +--------------+----------+--------------+------------------+-------------------+
  7. 1 row in set (0.00 sec)

5)在从库上面配置

  1. mysql> CHANGE MASTER TO
  2. -> MASTER_HOST='192.168.183.131',
  3. -> MASTER_USER='slave',
  4. -> MASTER_PASSWORD='mapabc',
  5. -> MASTER_LOG_FILE='mysql.000001',
  6. -> MASTER_LOG_POS=412;
  7. Query OK, 0 rows affected, 2 warnings (0.08 sec)

6)查看从库状态并启动从库

  1. mysql> show slave status\G;
  2. *************************** 1. row ***************************
  3. Slave_IO_State:
  4. Master_Host: 192.168.183.131
  5. Master_User: slave
  6. Master_Port: 3306
  7. Connect_Retry: 60
  8. Master_Log_File: mysql.000001
  9. Read_Master_Log_Pos: 412
  10. Relay_Log_File: mysqld-relay-bin.000001
  11. Relay_Log_Pos: 4
  12. Relay_Master_Log_File: mysql.000001
  13. Slave_IO_Running: No
  14. Slave_SQL_Running: No
  15. mysql> start slave;
  16. mysql> show slave status\G;
  17. *************************** 1. row ***************************
  18. Slave_IO_State: Waiting for master to send event
  19. Master_Host: 192.168.183.131
  20. Master_User: slave
  21. Master_Port: 3306
  22. Connect_Retry: 60
  23. Master_Log_File: mylog.000001
  24. Read_Master_Log_Pos: 412
  25. Relay_Log_File: relay-bin.000002
  26. Relay_Log_Pos: 279
  27. Relay_Master_Log_File: mylog.000001
  28. Slave_IO_Running: Yes
  29. Slave_SQL_Running: Yes

7)测试
主库131创建数据库

  1. mysql> create database db5;
  2. Query OK, 1 row affected (0.00 sec)
  3. mysql> show databases;
  4. +--------------------+
  5. | Database           |
  6. +--------------------+
  7. | information_schema |
  8. | db5                |
  9. | mysql              |
  10. | performance_schema |
  11. | test               |
  12. +--------------------+
  13. 5 rows in set (0.00 sec)

从库上面查看

  1. mysql> show databases;
  2. +--------------------+
  3. | Database           |
  4. +--------------------+
  5. | information_schema |
  6. | db5                |
  7. | mysql              |
  8. | performance_schema |
  9. | test               |
  10. +--------------------+
  11. 5 rows in set (0.01 sec)

已经同步过来了。

把132配置成主库,把131配置成132的从库
1)对于主从复制来说,主库可以接受读写,从库只能读不能写,一旦从库有写入操作,造成主从库数据不一致,复制立马就断开了,我们就在131上面建立一个授权帐号让它同步到132上面

  1. mysql> grant replication slave on *.* to slave@'192.168.183.131' identified by 'mapabc';
  2. Query OK, 0 rows affected (0.00 sec)

2)打开132的二进制日志,把132配置成主库,然后重启132的mysql

3)在131上面配置

  1. mysql> CHANGE MASTER TO
  2. -> MASTER_HOST='192.168.183.132',
  3. -> MASTER_USER='slave',
  4. -> MASTER_PASSWORD='mapabc',
  5. -> MASTER_LOG_FILE='mylog.000001',
  6. -> MASTER_LOG_POS=120;
  7. Query OK, 0 rows affected, 2 warnings (0.12 sec)
  8. mysql> start slave;
  9. Query OK, 0 rows affected (0.01 sec)

4)测试
在132上面创建数据库

  1. mysql> create database db4;
  2. Query OK, 1 row affected (0.01 sec)

在131上面查看,看到已经同步过来了

  1. mysql> show databases;
  2. +--------------------+
  3. | Database           |
  4. +--------------------+
  5. | information_schema |
  6. | db4                |
  7. | db5                |
  8. | mysql              |
  9. | performance_schema |
  10. | test               |
  11. +--------------------+
  12. 6 rows in set (0.00 sec)

至此,主主同步配置完成。

转载于:https://blog.51cto.com/lymrg/1170246

mysql5.6下主主复制的配置实现相关推荐

  1. MySQL建立双向主备复制server配置方法

    1.环境描写叙述 serverA(主) 192.85.1.175 serverB(从) 192.85.1.176 Mysql版本号:5.1.61 系统版本号:System OS:ubuntu 10.1 ...

  2. CentOS7中MySQL5.7 主主互备配置

    CentOS7 中 MySQL 5.7 主主互备配置 ​ 先从MySQL对数据库复制的能力看,MySQL支持单向.异步的复制.复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服 ...

  3. php mysql 主从复制_Windows 环境下,MySQL 的主从复制和主主复制

    Mysql的主从配置 1.找到配置文件 找到配置文件是主从复制的第一个难点.很多新手都容易找错配置文件,一般my.ini配置文件所在的位置都是隐藏的. 一般人都以为配置文件为 C:\Program F ...

  4. Mysql数据库主从及主主复制配置演示

    From : http://www.cnblogs.com/tae44/p/4682810.html 实验系统:CentOS 6.6_x86_64 实验前提:提前准备好编译环境,防火墙和selinux ...

  5. linux的mysql主主_Linux下指定mysql数据库数据配置主主同步的实例

    一. 概念:① 数据库同步  (主从同步 --- 主数据库写的同时 往从服务器写数据) ② 数据库同步  (主主同步 --- 两台数据库服务器互相写数据) 二. 举例 主主数据库同步服务器配置 数据库 ...

  6. Linux下的MySQL主主复制

    mysql主从架构中其实就一个主在工作,而从就相当于一个备份机器,从通过日志监测的方式来备份主库上的数据而保证主库的数据安全.在这种架构中如果从上的数据做了改变,主数据是不会用任何变化的.因为mysq ...

  7. Linux MySQL主主复制(Replication)(MySQL数据双向同步)配置

    http://www.centos.bz/2011/07/linux-mysql-replication-two-way-sync/#配置当前从服务器 Linux MySQL主主复制(Replicat ...

  8. CentOS7操作系统下实现mysql数据库的主主复制

    CentOS7操作系统下实现mysql主主复制 实验环境:两台主机,172.18.24.107,172,18.24.27 操作系统为Centos7.3 安装mariadb服务,源码编译安装或者yum安 ...

  9. Mysql主主复制架构配置

    MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服务器的任 何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器 互为主从,并且都能向外提供服务. 这就比使用主从复制 ...

最新文章

  1. wxpython有没有可视化设计_wxPython - GUI Builder工具( GUI Builder Tools)
  2. [原创]Silverlight与PostgreSQL数据库的互操作(CURD完全解析)
  3. mjExtention
  4. 【机器学习】SVM线性可分
  5. LVS之VS/NAT搭建web集群实战!!!
  6. Python学习笔记之文件
  7. django 1.8 官方文档翻译: 14-4-1 重定向应用
  8. Spring框架----用于创建对象的Component注解
  9. Docker、CentOS 8遭弃用,GPT-3、M1芯片撼动技术圈,盘点2020影响开发者的十大事件!
  10. [python] raw string,反斜杠\,re Lib
  11. Linux RedHat 5.2 构建PostFix邮件服务器
  12. Android中类似Linux下ldd分析可执行文件和动态库对库的依赖
  13. Python 实现最简单的元胞自动机
  14. 线性同余算法 (LCG)
  15. java jsessionid_关于JSESSIONID
  16. 如何把文本文字转换为语音
  17. DSC测试仪器校正及检验
  18. uniapp设置的组件样式在H5和APP中生效,在微信小程序中不生效问题解决
  19. MATLAB牛顿法求解非线性方程组2
  20. 东芝转型再遭财务造假拦路 陷业绩低迷泥沼

热门文章

  1. 基于jsp的图书管理系统_计算机毕业设计基于JSP书籍租阅管理系统的设计与实现...
  2. 华为云NP考试题库_华为认证网络工程师怎么考
  3. 管理 zabbix_Zabbix 2019 峰会丨看睿象云如何在 Zabbix 中玩转告警
  4. 军用软件概算计价规范_工程造价五算:估算、概算、预算、结算、决算
  5. java中后台是那一部分_一套Java后台管理系统,拿来即用(附项目地址)
  6. canvas 文字颜色_Canvas技术概述
  7. 安装envi出现cannot find lincese_Ubuntu 16.04 安装 CUDA10.1 (解决循环登陆的问题)
  8. python怎么查看代码错误_python中的错误如何查看
  9. qt4的quick程序升级到qt5_最新8月书单出炉!送给你程序员
  10. VVeboTableView 源码解析