首先声明,实际生产中,网站为了提高用户体验,性能等,将数据库实现读写分离是有必要的,我们让主数据库去写入数据,然后当用户查询的时候,然后在从数据库读取数据,故能减轻数据库的压力,实现良好的用户体验!


下面开始上菜:

mysql主从复制配置

mysql主ip: 192.168.0.232
mysql从ip: 192.168.0.233

配置步骤:

1.mysql主服务器
vim /etc/my.cnf   在【mysqld】添加

server-id=1
log-bin=mysqlmaster-bin.log
sync_binlog=1
innodb_buffer_pool_size = 1024M

innodb_flush_log_at_trx_commit=1
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
lower_case_table_names=1
log_bin_trust_function_creators=1

2.mysql 从服务器
添加
server-id=2
log-bin=mysqlslave-bin.log
sync_binlog=1
innodb_buffer_pool_size = 1024M
innodb_flush_log_at_trx_commit=1
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
lower_case_table_names=1
log_bin_trust_function_creators=1

3.重启主、从服务器的mysql服务

4.登陆主服务器 执行

mysql>GRANT REPLICATION SLAVE ON *.* TO 'systop1'@'192.168.%' IDENTIFIED BY 'systop';
GRANT REPLICATION SLAVE ON *.* TO 'systop2'@'192.168.%' IDENTIFIED BY 'systop';

mysql>FLUSH TABLES WITH READ LOCK;

mysql>SHOW MASTER STATUS;

--------------+
| File                   | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------------+----------+--------------+------------------+-------------------+
| mysqlmaster-bin.000001 |      630 |              |                  |                   |
+------------------------+----------+--------------+------------------+-----
记下file = mysqlmaster-bin.000001
和 Position = 630
从服务器开启复制会用到

5.主服务器上另开一连接(另开一窗口,不到退出第一个窗口,退出后上面的锁表将失效)
执行下面命令将数据库导出

mysqldump -uroot -p -P3306 --all-databases  --triggers --routines --events >mysqlall.sql

6.解锁
UNLOCK TABLES;

7.将导出的数据传到从服务器
scp mysqlall.sql  192.168.X.X:/tmp/

切换到从服务器

8.导入数据
mysql -uroot -p -h127.0.0.1 -P3306  <  /tmp/mysqlall.sql

9.登陆从数据库执行

CHANGE MASTER TO MASTER_HOST='192.168.4.101',MASTER_USER='systop2',MASTER_PASSWORD='systop',MASTER_LOG_FILE='mysqlmaster-bin.000011',MASTER_LOG_POS=120;

10.start slave;

show slave status \G;
查看Slave_IO_Running: Yes
   Slave_SQL_Running: Yes
都显示yes表示启动正常

若报Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file' 错误,Slave_IO_Running为no

执行
flush logs;
清空缓冲区数据,此时缓冲区数据都会被写到数据库里

mysql> show master status;

重新执行第9步

测试:在主服务器上进行数据更新,在从服务器上查看

作者介绍:半路学IT,做开发3年,先就职在一家共享单车公司,做后台开发!

我开了一个公众号,欢迎各位有志同道合朋友,关注!不定期分享干活,和我得故事!

MySQL搭建主从数据库 实现读写分离的更多相关文章

  1. tp5主从数据库设置读写分离

    // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '192.168.0.5,192.168.0.6', // 数据库名 'databas ...

  2. 使用mysql proxy对数据库进行读写分离

    服务器安排如下: 192.168.100.128 主 192.168.100.129 从 192.168.100.130 mysql-proxy 1.在100.130中下载安装mysql-proxy ...

  3. windows mysql主 Linux mysql 从 主从同步,读写分离

    Mysql –master linux-slave 一.My.ini: Server-id=1 relay-log=relay-bin relay-log-index=relay-bin-index ...

  4. MySQL主从复制技术与读写分离技术amoeba应用

    MySQL主从复制技术与读写分离技术amoeba应用 前言:眼下在搭建一个人才站点,估计流量会非常大,须要用到分布式数据库技术,MySQL的主从复制+读写分离技术.读写分离技术有官方的MySQL-pr ...

  5. MySQL主从同步、读写分离配置步骤、问题解决笔记

    MySQL主从同步.读写分离配置步骤.问题解决笔记 根据要求配置MySQL主从备份.读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记:       现在使用的两台服务器已经 ...

  6. Mycat搭建负载均衡,读写分离的Mysql集群

    Mycat搭建负载均衡,读写分离的Mysql集群 准备环境 1.mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 2.Mycat-server-1.6.7.4-te ...

  7. MySQL主从同步、读写分离配置步骤

    现在使用的两台服务器已经安装了MySQL,全是rpm包装的,能正常使用. 为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致; 环境:192.168.0.1 (Master) 192.168. ...

  8. 利用oneproxy部署mysql数据库的读写分离

    实验系统:CentOS 6.6_x86_64 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:mariadb-10.0.20 oneproxy-rhel ...

  9. 如何轻松实现MySQL数据库的读写分离和负载均衡?

    配置好了 Mysql 的主从复制结构后,我们希望实现读写分离,把读操作分散到从服务器中,并且对多个从服务器能实现负载均衡.读写分离和负载均衡是 Mysql 集群的基础需求,MaxScale 就可以帮着 ...

随机推荐

  1. 【noip模拟】局部最小值

    TimeLimit: 1000ms               MemoryLimit: 256MB Description 有一个n行m列的整数矩阵,其中1到n×m之间的每个整数恰好出现一次.如果一 ...

  2. 通过Java WebService接口从服务端下载文件

    一. 前言 本文讲述如何通过webservice接口,从服务端下载文件.报告到客户端.适用于跨系统间的文件交互,传输文件不大的情况(控制在几百M以内).对于这种情况搭建一个FTP环境,增加了系统部署的 ...

  3. UWP:记录一下这几天踩到的坑

    最近在玩微软的Desktop Bridge项目,遇到了如下几个坑: 1.文档中给的是js项目魔改的方法,其实C#项目也可以魔改加入UWP部分的,区别在于: 不用在项目文件里写<AppxGener ...

  4. cocos creator实现棋牌游戏滑动选牌的功能

    最近在玩cocos creator,打算学着做一款类似双扣游戏的棋牌,名字叫文成三星,比双扣还要多一扣,因为需要三幅牌,在我们老家比较流行这种玩法. 目前实现了绝大部分的逻辑效果如下: 有一点不好的体 ...

  5. 使用Python从Workflowy同步大纲到印象笔记

    title: 从Workflowy到印象笔记 toc: true comment: true date: 2018-03-17 10:05:54 tags: ["Python", ...

  6. BZOJ1565 植物大战僵尸 题解

    题目内容: 题目分析:有选A则必须选B这样的限制条件,可以发现这是最大权闭合子图模型,考虑环的情况,可以推测需要拓扑判环. 代码: #include<bits/stdc++.h> usin ...

  7. ubuntu系统备份与恢复(也适用于其他linux系统)

    在windows环境下面,有很多的备份恢复软件,系统也自带了备份恢复功能,比较知名的软件比如ghost等,为什么要备份系统,我之前一直都是系统出现问题就全新安装原版的windows,然后各种设置,各种 ...

  8. 前端touch事件方向的判断

    移动端touch事件判断滑屏手势的方向 方法一 当开始一个touchstart事件的时候,获取此刻手指的横坐标startX和纵坐标startY: 当触发touchmove事件时,在获取此时手指的横坐标 ...

  9. Tomcat下wtpwebapps文件夹 和 webapps文件夹区别

    这两者其实没有区别.都是项目部署路径 webapps : tomcat默认部署路径 wtpwebapps : eclipse默认部署路径 只不过Tomcat6将wtpwebapps作为了默认路径,如果 ...

  10. 大数据 --> 淘宝异构数据源数据交换工具 DataX

    淘宝异构数据源数据交换工具 DataX DataX是什么? DataX是一个在异构的数据库/文件系统之间高速交换数据的工具,实现了在任意的数据处理系统(RDBMS/Hdfs/Local filesys ...