centos mysql 主从(mysql主从复制配置)

大家好,今天来为大家解答centos mysql 主从这个问题的一些问题点,包括mysql主从复制配置也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

怎么reset mysql master

重置mysql主从同步(MySQL Reset Master-Slave Replication)

在mysql主从同步的过程中,可能会因为各种原因出现主库与从库不同步的情况,网上虽然有一些解决办法,但是有时很难彻底解决,重置主从服务器也许不是最快的办法,但却是最安全有效的。

下面将自己重置主从同步的步骤总结一下,以备不时之需。

master与slave均使用:centos6.0+mysql 5.1.61,假设有db1,db2两个数据库需要热备。

文中shell与mysql均使用root账号,在真实环境中,请根据情况更换。

1.停止slave服务器的主从同步

为了防止主从数据不同步,需要先停止slave上的同步服务。

STOP SLAVE;

2.对master服务器的数据库加锁

为了避免在备份的时候对数据库进行更新操作,必须对数据库加锁。

FLUSH TABLES WITH READ LOCK;

如果是web服务器也可以关闭apache或nginx服务,效果也是一样的。

3.备份master上的数据

mysqldump-u root-p-databases db1 db2> bak.sql

4.重置master服务

RESET MASTER;

这个是重置master的核心语法,看一下官方解释。

RESET MASTER removes all binary log files that are listed in the index file, leaving only a single, empty binary log file with a numeric suffix of.000001, whereas the numbering is not reset by PURGE BINARY LOGS.

RESET MASTER is not intended to be used while any replication slaves are running. The behavior. of RESET MASTER when used while slaves are running is undefined(and thus unsupported), whereas PURGE BINARY LOGS may be safely used while replication slaves are running.

大概的意思是RESET MASTER将删除所有的二进制日志,创建一个.000001的空日志。RESET MASTER并不会影响SLAVE服务器上的工作状态,所以盲目的执行这个命令会导致slave找不到master的binlog,造成同步失败。

但是我们就是要重置同步,所以必须执行它。

5.对master服务器的数据库解锁

UNLOCK TABLES;

如果你停止了apache或nginx,请开启它们

6.将master上的备份文件拷贝到slave服务器上

大可不必用WinScp先下载到本地再上传到slave上,可以直接使用scp命令在服务器间拷贝,速度更快。

scp-r root@XXX.XXX.XXX.XXX:/root/bak.sql./

7.删除slave服务器上的旧数据

删除前,请先确认该备份的是否都备份了。

DROP DATABASE db1;

DROP DATABASE db2;

8.导入数据

SOURCE/root/bak.sql;

9.重置slave服务

RESET SLAVE;

还是看一下官方解释

RESET SLAVE makes the slave forget its replication position in the master's binary log. This statement is meant to be used for a clean start: It deletes the master.info and relay-log.info files, all the relay log files, and starts a new relay log file. To use RESET SLAVE, the slave replication threads must be stopped(use STOP SLAVE if necessary).

大概意思是,RESET SLAVE将清除slave上的同步位置,删除所有旧的同步日志,使用新的日志重新开始,这正是我们想要的。需要注意的是,必须先停止slave服务(STOP SLAVE),我们已经在第一步停止了它。

10.开启slave服务

START SLAVE;

大功告成,SHOW SLAVE STATUS\G检查同步状态,一切正常。

mysql 主从如何设置同步

mysql主从同步设置

同步介绍 mysql的主从同步是一个异步的复制过程,从一个 Master复制到另一个 Slave上。在 Master与 Slave之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql线程和IO线程)在 Slave端,另外一个线程(IO线程)在 Master端。要实现 MySQL的主从同步,首先必须打开 Master端的BinaryLog(mysql-bin)功能,否则无法实现。因为整个复制过程实际上就是Slave从Master端获取该日志然后再在自己身上完全顺序的执行日志中所记录的各种操作。打开 MySQL的 Binary Log可以通过在启动 MySQL Server的过程中使用“—log-bin”参数选项,或者在 my.cnf配置文件中的 mysqld参数组([mysqld]标识后的参数部分)增加“log-bin”参数项。

Mysql主从服务器配置主服务器IP:192.168.1.60从服务IP:192.168.1.61 Linux:centOS Mysql版本:5.1.58以下配置皆在此服务上进行配置

查看主库服务器的my.cnf配置文件,根据mysql安装包、版本不同,相关的路径和配置文件路径会大致不一样,不过大多情况下是一样的。该文件在 etc/目录下。Mysql服务也提供了对不同服务器配置使用不同的配置文件,要使用它们的时候,只需用它们任一一个替换上面的my.cnf文件即可。注:替换文件名必须为my.cnf。 cnf配置文件一般会有四个,可以根据命令# ll/usr/share/mysql/*.cnf查看; my-small.cnf内存少于或等于64M,只提供很少的的数据库服务; my-medium.cnf内存在32M--64M之间而且和其他服务一起使用,例如web; my-large.cnf内存有512M主要提供数据库服务; my-huge.cnf内存有1G到2G,主要提供数据库服务; my-innodb-heavy-4G.cnf内存有4G,主要提供较大负载数据库服务(一般服务器都使用这个);可以根据服务器配置的不同选择不同的cnf配置文件。

配置my.cnf文件采用系统默认的etc/my.cnf配置文件进行配置,对主服务器进行配置主要需要在配置文件中添加以下几项(在添加的时候要确保它们不在文件中存在,因为如选择上面几种不同的配置文件,配置里的内容会不一样,如果没有相应的项,需要添加)。用vi etc/my.cnf打开文件,对文件进行修改,在[mysqld]下面进行添加修改: Server-id= 1#这是数据库ID,此ID是唯一的,主库默认为1,其他从库以此ID进行递增,ID值不能重复,否则会同步出错; log-bin= mysql-bin二进制日志文件,此项为必填项,否则不能同步数据; binlog-do-db= testcreate#需要同步的数据库,如果需要同步多个数据库;则继续添加此项。 binlog-do-db= testcreate1 binlog-do-db= testcreate2 binlog-ignore-db= mysql不需要同步的数据库;至此主服务器配置my.cnf配置完成,保存退出文件。现在对Mysql服务器进行重启:#servicemysqld restart如果重启失败,则证明配置文件错误,需重新检查。建议:对my.cnf修改之前最好对其进行备份,以免配置文件修改失败不能及时重启服务器。

配置完成后需要建立同步用的数据库账户主库需要提供一个账户让从库对起连接并同步,用命令mysql服务器 mysqlgrantreplication slave on*.* to‘testcreate’@’192.168.1.61’ identified by‘123456’;说明:’testcreate’:同步的数据库;‘192.168.1.61’:同步的数据库地址;‘123456’:同步的数据库密码,在从库配置时需要设置。

显示主库信息 mysqlshowmaster status;执行上述命令显示:看到上述信息则表示主库建立成功。

备份数据库(如果从服务器也为新建库,则不需要此操作)备份数据库的方法有很多种:如果在同一局域网可以直接复制数据库,也可以用工具直接进行数据导入。复制数据库用打包的方法:# cd/data转到存放Mysql数据库的路径下# tarcvfz testcreate.tar.gz db/再从数据库中进行复制解压# cd/data# scp192.168.1.61:/data/testcreate.tar.gz#tarxvfz testcreate.tar.gz数据复制完毕;

从库配置从服务器的配置基本与主库配置差不多,选择的从库服务器为:192.168.1.61 1.配置从库服务my.cnf文件# vietc/my.cnf对其进行如下修改: Server-id= 2#这里ID改为2因为主库为1; log-bin= mysql-bin必填项,用于数据同步; master-host= 192.168.1.60主库IP; master-user= test同步用的账户; master-password= 123456同步账户密码,主库时的设置; master-port= 3306同步数据库的端口号。

重启从库服务器#service mysqld restart如果重启失败则配置文件有问题,需重新检查配置。

调整复制过来的数据库的权限(如果有从主库复制过来的数据库)主库复制过来的数据库权限都为root权限,需要修改为mysql权限#chown–R mysql:mysql/var/lib/mysql如果从库是新建的库就不需要进行此步骤

显示从服务器状态进行mysql服务器: mysqlshowslave status\G;显示如图:

如果slave_io_running和slave_sql_running都为yes则表示从服务器配置成功。如果遇到关于position相关的错误,就需要再手动设置以下File/Postion的信息 mysqlChangemaster to master_host=‘192.168.1.60’ master_user=‘test’ master_password=’123456’ master_log_file=’mysql-bin.000001’,主库的文件信息 master_log_pos=’106’;主库的Position信息

运维人员需要掌握关于mysql的哪些知识

云运维涉及的方面比较广,基础知识仍然是必不可少:Linux基础,基本linux命令的使用,Shell脚本编程,Linux操作系统知识(Ubuntu,CentOS系统等)。

了解完基础知识后,可以给自己确定下方向:

1、大数据方向:涉及Hadoop(hdfs,yarn等),spark,hbase,hive,storm等知识

2、虚拟化技术:openstack,kvm,nova,docker,vmware,xen等

3、应用:mysql,redis,memcached,sqlserver

4、对目前的云提供商的业务的了解:阿里云,腾讯云,京东云,金山云,AWS等

5、脚本开发(DevOps必备):python,ruby

6、比较常用的运维工具:jenkins,chef,puppet,ansible等

阅读剩余
THE END