基于mysql replication的问题总结

接触replication后,就开始琢磨自己要配置下试试,固然出现了很多问题:经过上网查资料也好问同学也好,终于是解决了些.现在就分享下自己的经历:
首先的问题是配置master的my.cnf,按部就班的配置


代码如下:

server-id               = 1 
log_bin                 =mysql-bin 
#log_bin                        = /var/log/mysql/mysql-bin.log 
expire_logs_days        = 10 
max_binlog_size         = 100M 
#binlog_do_db           = include_database_name 
#binlog_ignore_db       = include_database_name

这里的配置是安装书上写的配置的,自己没有意识到logbin的问题,由于我的mysql是apt-get自动安装的所以有些mysql文件也不知道在哪里,这就导致后来生成的mysql-bin000001这个日志文件不知道放哪里了,纠结了好久,最后用最本的方法find一下(当时电脑瞬间热了),找了在/var/lib/mysql/这个目录下。

这时重启mysql后,查看status的情况:


代码如下:

mysql> show master status; 
+------------------+----------+--------------+------------------+ 
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+--------------+------------------+ 
| mysql-bin.000001 |      106 |              |                  | 
+------------------+----------+--------------+------------------+ 
1 row in set (0.00 sec)

挺好证明日志已经开起。可是第二次我又差了下发现:


代码如下:

mysql> show master status; 
+------------------+----------+--------------+------------------+ 
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+--------------+------------------+ 
| mysql-bin.000002 |      106 |              |                  | 
+------------------+----------+--------------+------------------+ 
1 row in set (0.00 sec)

原来是,当mysql服务重新启动一次后,它会自动重新开启一个日子文件,所有的文件目录都在mysql-bin.index中。

然后是,配置我的slave,由于资源不够就用了台windows的pc机来测,可是mysql目录下的配置文件好多啊,我也分不清楚是用那个配置,反正就在my.ini中将server-id=2。然后重启mysql服务,mysqladmin这个命令来停止和启动mysql。然后在使用命令:


代码如下:

mysql> CHANGE MASTER TO

-> MASTER_HOST='10.5.110.234',

-> MASTER_USER='replica',

-> MASTER_PASSWORD='replica',

-> MASTER_LOG_FILE='mysql-bin.000001',

-> MASTER_LOG_POS=228;

Query OK, 0 rows affected (0.01 sec)

重新启动slave
启动后查询下当前的状态,让我纠结了,我的io-thread没有打开。start slave io-thread,运行成功可是io就是打不开。

然后ping一下服务器,是可以的。然后我又远程登录mysql知道原因在哪里了,mysql本身就没有连接上主服务器:


代码如下:

ERROR 2003 (HY000): Can't connect to MySQL server on '10.5.110.234' (111)

在网上查了好久,终于看到一种解决办法让我顿时兴奋起来,就是在我的服务器mysql中的my.cnf配置文件里

•bind-address           = 127.0.0.1  
把它给注掉就可以了。又重新连接一次搞定了。

•这个问题刚搞定又出现一个新的问题,我在主服务器上面插入一条数据,结果在slave中查看到的状态是这样的。


代码如下:

Last_Error: Error 'Table 'test.chen' doesn't exist' on query. Default database: 'test'. Query: 'insert into chen values(112,'chen','chen')'

这里问题很简单了就是因为从服务器上面的数据库没有这张表,所以查看下主库的表show create,再在从库上面建一个表。搞定……


代码如下:

1 row in set (0.02 sec)

mysql> insert into chen values(1111,'chen','chen');
Query OK, 1 row affected (0.00 sec)

从库上面的查看:

代码如下:

mysql> select * from chen;
+------+------+---------+
| id   | name | address |
+------+------+---------+
|  112 | chen | chen    |
| 1111 | chen | chen    |
+------+------+---------+
2 rows in set (0.01 sec)

(0)

相关推荐

  • mysql5.5 master-slave(Replication)配置方法

    一主一从: Master: OS:centos release 5.6 DB:mysql 5.5.8 IP:192.168.1.2 Slave: OS:centos release 5.6 DB:mysql 5.5.8 IP:192.168.1.3 修改主机Master配置文件 (/etc/my.cnf) 复制代码 代码如下: [mysqld] //至少要有server-id.与log-bin两项 server-id=1 log-bin=/var/lib/mysql/mysql-bin data

  • MySQL-group-replication 配置步骤(推荐)

    MySQL-Group-Replication 是mysql-5.7.17版本开发出来的新特性:它在master-slave 之间实现了强一致性, 但是就目前来说主要是性能不太好. [1]确定当前的mysql数据库版本为5.7.17及以上 /usr/local/mysql/bin/mysqld --version /usr/local/mysql/bin/mysqld Ver 5.7.17 for linux-glibc2.5 on x86_64 (MySQL Community Server

  • 基于mysql replication的问题总结

    接触replication后,就开始琢磨自己要配置下试试,固然出现了很多问题:经过上网查资料也好问同学也好,终于是解决了些.现在就分享下自己的经历: 首先的问题是配置master的my.cnf,按部就班的配置 复制代码 代码如下: server-id               = 1  log_bin                 =mysql-bin  #log_bin                        = /var/log/mysql/mysql-bin.log  expir

  • 基于MySQL的存储引擎与日志说明(全面讲解)

    1.1 存储引擎的介绍 1.1.1 文件系统存储 文件系统:操作系统组织和存取数据的一种机制.文件系统是一种软件. 类型:ext2 3 4 ,xfs 数据. 不管使用什么文件系统,数据内容不会变化,不同的是,存储空间.大小.速度. 1.1.2 mysql数据库存储 MySQL引擎: 可以理解为,MySQL的"文件系统",只不过功能更加强大. MySQL引擎功能: 除了可以提供基本的存取功能,还有更多功能事务功能.锁定.备份和恢复.优化以及特殊功能. 1.1.3 MySQL存储引擎种类

  • MySQL Replication中的并行复制示例详解

    目录 传统单线程复制说明 总结 MySQL5.6基于库级别的并行复制 MySQL5.7基于组提交的并行复制 组提交说明 MySQL8.0基于writeset的并行复制 关键参数查看 参数配置项说明 引用资料: 传统单线程复制说明 众所周知,MySQL在5.6版本之前,主从复制的从节点上有两个线程,分别是I/O线程和SQL线程. I/O线程负责接收二进制日志的Event写入Relay Log. SQL线程读取Relay Log并在数据库中进行回放. 以上方式偶尔会造成延迟,那么可能造成主从节点延迟

  • 基于Mysql的Sequence实现方法

    团队更换新框架.新的业务全部使用新的框架,甚至是新的数据库--Mysql. 这边之前一直是使用oracle,各种订单号.流水号.批次号啥的,都是直接使用oracle的sequence提供的数字序列号.现在数据库更换成Mysql了,显然以前的老方法不能适用了. 需要新写一个: •分布式场景使用 •满足一定的并发要求 找了一些相关的资料,发现mysql这方面的实现,原理都是一条数据库记录,不断update它的值.然后大部分的实现方案,都用到了函数. 贴一下网上的代码: 基于mysql函数实现 表结构

  • 基于MySql的扩展功能生成全局ID

    本文利用 MySQL的扩展功能 REPLACE INTO 来生成全局id,REPLACE INTO和INSERT的功能一样,但是当使用REPLACE INTO插入新数据行时,如果新插入的行的主键或唯一键(UNIQUE Key)已有的行重复时,已有的行会先被删除,然后再将新数据行插入(REPLACE INTO 是原始操作). 建立类似下面的表: CREATE TABLE `tickets64` ( `id` bigint(20) unsigned NOT NULL auto_increment,

  • PHP基于MySQL数据库实现对象持久层的方法

    本文实例讲述了PHP基于MySQL数据库实现对象持久层的方法.分享给大家供大家参考.具体如下: 心血来潮,做了一下PHP的对象到数据库的简单持久层. 不常用PHP,对PHP也不熟,关于PHP反射的大部分内容都是现学的. 目前功能比较弱,只是完成一些简单的工作,对象之间的关系还没法映射,并且对象的成员只能支持string或者integer两种类型的. 成员变量的值也没有转义一下... 下面就贴一下代码: 首先是数据库的相关定义,该文件定义了数据库的连接属性: <?php /* * Filename

  • Java基于MySQL实现学生管理系统

    本文为大家分享了Java基于MySQL实现学生管理系统,供大家参考,具体内容如下 因为实验室要交作业然后就做了一个学生管理系统,贴个代码纪念一下,做的太急界面什么的也比较差. 还有一些小细节没有完善不过还是能实现主要的功能的. Window是主界面 package First; import java.sql.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Window { pub

  • 基于mysql+mycat搭建稳定高可用集群负载均衡主备复制读写分离操作

    数据库性能优化普遍采用集群方式,oracle集群软硬件投入昂贵,今天花了一天时间搭建基于mysql的集群环境. 主要思路 简单说,实现mysql主备复制-->利用mycat实现负载均衡. 比较了常用的读写分离方式,推荐mycat,社区活跃,性能稳定. 测试环境 MYSQL版本:Server version: 5.5.53,到官网可以下载WINDWOS安装包. 注意:确保mysql版本为5.5以后,以前版本主备同步配置方式不同. linux实现思路类似,修改my.cnf即可. A主mysql.19

  • Python基于mysql实现学生管理系统

    本篇文章主要介绍了Python基于mysql实现学生管理系统,分享给大家,具体如下: import pymysql import re def idinput(string): ID = input(string) pattern = re.compile("^\d{1,3}$") while not re.match(pattern, ID): ID = input("请输入1-3位整数:") return ID def appendStudentInfo():

  • 基于 Mysql 实现一个简易版搜索引擎

    目录 基于 Mysql 实现一个搜索引擎 一.ngram 全文解析器 二.创建全文索引 1.建表时创建全文索引 2.通过 alter table 方式 3.通过 create index 方式 三.检索方式 1.自然语言检索(NATURAL LANGUAGE MODE) 四.与 Like 对比 基于 Mysql 实现一个搜索引擎 前言: 其实 Mysql 很早就支持全文索引了,只不过一直只支持英文的检索,从5.7.6 版本开始,Mysql 就内置了 ngram 全文解析器,用来支持中文.日文.韩

随机推荐