MySql(18)——Linux MySQL主从配置

MySQL 主从配置

Author:xushuyi

参照技术:http://www.cnblogs.com/kevingrace/p/6256603.html

 

1. 主从数据库

1、主库:192.168.56.100

2、从库:192.168.56.102

3、创建主从数据库一定要保证主从数据库字符集编码的一致性,否则主从同步数据会发生异常。

  因主从数据字符集编码不一致,常见的问题如下:

  1. Column 1 of table 'xxx' cannot be converted from type 'varchar(33)' to type 'varchar(11)'

    解决方案:http://www.cnblogs.com/wzbz/p/6825761.html

  2. 一定要调整主从数据库字符集编码一致性

    

 

4、创建表时一定要加上字符集编码 utf8 设置,避免主从数据同步异常问题,其实遇到问题类同 3

  1、修改数据表字符集:ALTER TABLE transfervouchers CONVERT TO CHARACTER SET utf8;

  2、创建表 设置字符集

    

create table jpgxhealthvalrecordhistory
(ID                   bigint not null auto_increment comment '主键ID',activityid           bigint comment '活动ID',userid               bigint comment '用户ID',activitylotteryid    bigint comment '活动抽奖ID',activityawardid      bigint comment '活动奖品ID',contributehealthvalue bigint comment '已贡献健康值',createtime           timestamp comment '创建时间',modifytime           timestamp comment '修改时间',primary key (ID)
)CHARACTER SET utf8;
alter table jpgxhealthvalrecordhistory comment '奖品贡献健康值历史记录表';

 

4、主库一旦重启,主库对应二进制文件发生改变,从库需要重新指向主库新的二进制文件

master_host='192.168.56.100',master_user='slave',master_password='Sino@slave12345',  master_log_file='mysql-bin.000002',master_log_pos=400;

 

2.主库配置:

#vi /etc/my.cnf

[mysqld]

    log-bin=mysql-bin    //[必须]启用二进制日志

    server-id=1100   //[必须]服务器唯一ID,默认是1,一般取IP最后一段

  binlog-do-db=imove  //需要同步的数据库。如果是多个同步库,就以此格式另写几行即可。如果不指明对某个具体库同步,就去掉此行,表示同步所有库(除了ignore忽略的库)

  binlog-ignore-db=sys  //#不同步mysql系统数据库。如果是多个不同步库,就以此格式另写几行;也可以在一行,中间逗号隔开

 

 

登录主库MySQL

#cd /usr/local/mysql

#./bin/mysql -u root -p

 

 

mysql> create user slave identified by 'Sino@slave12345';

mysql> grant all on *.* to slave@'192.168.56.102' identified by 'Sino@slave12345';

mysql> exit;

 

重启主库MySQL

#/etc/init.d/mysql restart;

#show master status;

 

 

3.从库配置:

vi /etc/my.cnf

log-bin=mysql-bin      //[必须]启用二进制日志

server-id=102      //[必须]服务器唯一ID,默认是1,一般取IP最后一段

replicate-do-db=imove //需要同步的数据库名。如果不指明同步哪些库,就去掉这行,表示所有库的同步(除了ignore忽略的库)

replicate-ignore-db=sys  //不同步mysql系统数据库

slave-skip-errors=all     //跳过所有的错误错误,继续执行复制操作; 这个配置最好不要加上,遇到问题就要解决问题,不能直接跳过

 

 

 

重启主库MySQL

#/etc/init.d/mysql restart;

之后进入从库MySQL 修改master配置:

登录主库MySQL

#cd /usr/local/mysql

#./bin/mysql -u root -p

mysql> change master to master_host='192.168.56.100',master_user='slave',master_password='Sino@slave12345',      master_log_file='mysql-bin.000002',master_log_pos=400;

查看从库master是否配置成功:

 mysql> show slave status\G;

 

======------------------------------可能使用的命令:在更改 master 的时候------------============

STOP SLAVE IO_THREAD FOR CHANNEL '';

START SLAVE IO_THREAD FOR CHANNEL '';

 

 

 

上图可以看到: Slave_IO_running: NO

Salve_SQL_Running: NO

需要对slave mysql 进行设置:

先关闭slave

mysql> stop slave

之后进行设置:

mysql> set global sql_slave_skip_counter =1 ;

之后再开启:

mysql> start slave

mysql> show slave status\G

 

 

OK.

 

异常情况:

 

 

这个异常情况说明,从库同步主库二进制文件的位置不正确。

解决:http://www.linuxidc.com/Linux/2012-02/54729.htm

binlog二进制文件转换为txt文件

 

 

说明从库同步主库的二进制文件应该从 123 行开始。

登录从库MySQL

mysql> stop slave;

mysql> change master to master_log_file='mysql-bin.000002',master_log_pos=123;

mysql> start slave;

mysql> show slave status\G;

 

 

4.验证主从同步

之后登录 master mysql, 进行如下操作:

create database hi_db;

use hi_db;

create table hi_tb(id int(3),name char(10));

insert into hi_tb values(001,'bobu');

show databases;

 

 

 

之后登录slave mysql

show databases;

可以看到:

 

 

转载于:https://www.cnblogs.com/xushuyi/articles/7699024.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux之PHY

一.结构体 1.PHY设备 [cpp]view plaincopy struct phy_device { struct phy_driver *drv; //PHY设备驱动 struct mii_bus *bus; //对应的MII总线 struct device dev; //设备文件 u32 phy_id; //PHY ID enum phy_state state; //PHY状态 …

元器件 失效分析 过程介绍

硬件产品在使用过程中,常常会出现功能失效的情况。排除装配异常的话,功能失效一般是电路可能出现故障,具体可能是某个元器件损坏了。需要研发及时分析定位故障原因及时改善排除故障,尤其是在试产阶段,显得十分重要&…

OWI

2019独角兽企业重金招聘Python工程师标准>>> V$EVENT_NAME V$EVENT_NAME displays information about wait events. ColumnDatatypeDescriptionEVENT#NUMBERNumber of the wait eventEVENT_IDNUMBERIdentifier of the wait eventNAMEVARCHAR2(64)Name of the wait e…

201521123110《Java程序设计》第5周学习总结

1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点。 2. 书面作业 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能否编译通过?哪句会出现错误?试改正该错误。并分析输出结果。不能编译通过,因为System.out.println…

Python中正则表达式讲解

正则表达式是匹配字符串的强大武器,它的核心思想是给字符串定义规则,凡是符合规则的字符串就是匹配了,否则就是不合法的。在介绍Python的用法之前,我们先讲解一下正则表达式的规则,然后再介绍在Python中如何运用。 如果…

电源适配器上各符号的意义都清楚吗?

现在家里的电子产品是越来越多了,比如:手机、平板、笔记本、智能电视、智能音箱、路由器、剃须刀等;机身或者充电器上都有很多符号标志。 有没有好奇过或者被小孩询问过,这些符号标志都是什么意思呢?只有读懂这些符号…

苏宁海量服务器自动化配置运维实践

运维的演进 人力运维阶段 在IT产业的早期,服务器运维是通过各种Ad Hoc命令或者Shell脚本来完成基础设施的自动化工作,这种方式对于简单,一次性的工作很方便,但是对于复杂和长期的项目,后期的脚本维护非常麻烦。自动化工…

JS小技巧

JS操作伪元素 CSS代码: #myId:before {content: "hello world!";display: block;width: 100px;height: 100px;background: red; } JS 代码: var myIdElement document.getElementById("myId"); var beforeStyle window.getCompute…

流媒体服务器

1 引言   随着互联网的飞速发展,流媒体技术的应用越来越广泛,从网上广播、电影播放到远程教学以及在线的新闻网站等都用到了流媒体技术。但现有公开文献所报道 的大多是利用现有的流媒体服务器来搭建一个流媒体服务系统,或者是针对流媒体数据的编码方式所进行的…

试产机器发现元器件损毁 风险排查过程

产品在试产阶段或者公测阶段,发现有个别机器功能异常,研发定位为个别元器件损坏; 定位过程大致有如下步骤: A-故障现象复现 B-输入输出检查 C-电源及管脚状态测量 D-交叉验证 E-基本外观观察和特性测量 然后将器件邮寄给原…

腾讯面试经验2

时间:2017年10月16日11:30面试。 地点:重庆万达艾美酒店。 信息:女,本科应届生,面试后台开发岗位。 在深圳的面试已经全部结束了,偶然间听朋友说重庆、长沙等场地的面试还在进行中,只要修改面试…

简易有效Api接口防攻击策略

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 简单…

CSS 如何设置垂直居中

1、水平居中我们都知道,可以直接用: margin:0 auto; 2、垂直居中,需要做一点小小的计算,关键代码如下: height: 600px; position: absolute; top: 50%; margin-top:-300px; 如需水平且垂直居中: height: 60…

被称为海淀妈妈四大神器之一的倾听者K3 硬件拆解

暑假期间发现很多博主都在推荐倾听者K3,被海淀妈妈们称为四大神器之一, 虽然暂没听说其他三大神器是什么,作为教育硬件爱好者还是决定先整个回来拆拆看。 在京东上搜到倾听者K3版本一共有三种颜色,分别是蓝色(悟空蓝&…

有名信号量sem_open和内存信号量sem_init创建信号量的区别

有名信号量sem_open和内存信号量sem_init创建信号量的区别 分类: C/C sem_t *sem sem_open(const char *name, int oflag, .../*mode_t mode,unsinged int value) ;int sem_init(sem_t *sem,int shared, unsigned int value);区别:1.创建有名信号量必须…

KVM虚拟机相关步骤

KVM是Kernel-based Virtual Machine的简称,是一个开源的虚拟化模块,该文档是基于CentOS 7.4环境操作的 一、操作系统安装 本文采用的是CentOS 7.4 1、查看系统版本 cat /etc/redhat-release 2、系统更新 Yum makecache &&yum update && …

dds设计信号发生器

高一 150206101 Dds数字信号发生器设计方案 DDS的工作原理框图如下 在微机内,若插入一块D/A转换卡,然后编制一段小程序,如连续进行加一运算到一定值,然后连续进行减一 运算回到原值,在反复运行该程序,则微机…

Maven--资源文件resource的问题

2019独角兽企业重金招聘Python工程师标准>>> Maven项目的目录有: src/java/main src/java/resource src/test/main src/test/resource 有的时候在resource目录下添加文件却不能加载出来,解决的办法是从把添加的资源文件添加到properties---&g…

pthread_create()创建线程最大个数

线程应用程序最常见导致创建线程失败的原因是线程栈大小的设置。创建一个新的线程,默认情况下系统为线程栈预留了2MB的寻址空间。线程栈起始于进程虚拟 内存的高端地址,并向虚拟内存底端地址方向扩展。取决于线程本身的大小以及其它线程内存分配的情况&a…

C++ Primer 5 CH4 表达式

4.1 基础 函数调用也是一种特殊的运算符,它对运算对象的数量没有限制。C 的表达式要么是左值,要么是右值。左值可以位于赋值语句的左边,右值则不可以。当一个对象被用作右值的时候,用的是对象的值;当对象被用作左值的时…