mysql主从库搭建

1、主备库的搭建:

主库:10.1.1.17
备库:10.1.1.18

2、主库授权:

允许复制备份的权限

GRANT REPLICATION SLAVE ON *.* TO ‘slaveuser‘@‘10.1.1.18‘ IDENTIFIED BY ‘hsdhsT56‘;
FLUSH PRIVILEGES

3、主库数据导出

mysqldump  -uroot -p  -h 127.0.0.1 --databases TestDB --default-character-set=utf8 --net_buffer_length=16535 --single-transaction --master-data=2   >TestDB.sql

如果该机器上有多个库,可以将所有库都导出

mysqldump  -uroot -p  -h 127.0.0.1 --all-databases --default-character-set=utf8 --net_buffer_length=16535 --max_allowed_packet=1048576 --single-transaction --master-data=2   >all_databases.sql

参数说明:

因为我们这里是数据备份出来并作为slave导入,所以需要--single-transaction --master-data搭配使用,如果只是单纯导出数据可以只使用--single-transaction

net_buffer_length:
TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行,如果这个值比目标数据库的值大,可能会出错。

--max_allowed_packet=1048576
客户端/服务器之间通信的缓存区的最大大小,使用这个参数,主要是为加快导出
使用的时候我将该参数设置到了--max_allowed_packet=21048576才把我的13G数据导出时间从8分钟缩短为7分钟。。。

single-transaction:
InnoDB 表在备份时,通常启用选项 --single-transaction 来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据。

master-data=2:
If the option value is 2, the CHANGE MASTER TO statement is written as an SQL comment, and thus is informative only; it has no effect when the dump file is reloaded. If the option value is 1, the statement takes effect when the dump file is reloaded. If the option value is not specified, the default value is 1.
意思是说:如果master-data=1,那么CHANGE MASTER会被写到语句中,如果是master-data=2,那么CHANGE MASTER只是作为注释写到内容中。这里我们使用2,如果使用1,那么数据导入后,CHANGE MASTER立即就运行了。我们希望CHANGE MASTER,由我们手工控制。

4、以上数据导入备库

mysql -uroot -p  -e --max_allowed_packet=1048576 --net_buffer_length=16384 <

5、

查看应该从哪个位置开始同步

grep -i "change master" TestDB.sql
MASTER_LOG_FILE=‘mysql-bin.000004‘, MASTER_LOG_POS=106这里就说明了,我这次数据导出的末尾得主库日志为mysql-bin.000004,位置为106。那么我把备库起来之后,就需要从同步此位置之后的数据

6、开始同步

--停止slave
STOP SLAVE
--CHANGE MASTER到主库
CHANGE MASTER TO MASTER_HOST=‘10.1.1.17‘,MASTER_USER=‘slaveuser‘,MASTER_PASSWORD=‘hsdhsT56‘,MASTER_LOG_FILE=‘mysql-bin.000004‘, MASTER_LOG_POS=106;
--开启slave
START SLAVE;
查看slave状态
SHOW SLAVE STATUS;
时间: 2024-08-05 12:19:26

mysql主从库搭建的相关文章

Mysql主从库同步错误:1062 Error &#39;Duplicate entry &#39;1438019&#39;

mysql主从库同步错误:1062 Error 'Duplicate entry '1438019' for key 'PRIMARY'' on query mysql主从库在同步时会发生1062 Last_SQL_Error: Error ‘Duplicate entry ‘的问题: 显然这个问题是因为插入重复主键导致从库不工作了,错误消息如下 mysql> show slave status\G; *************************** 1. row ************

mysql主从库配置读写分离以及备份

1,什么是读写分离?其实就是将数据库分为了主从库,一个主库用于写数据,多个从库完成读数据的操作,主从库之间通过某种机制进行数据的同步,是一种常见的数据库架构.一个组从同步集群,通常被称为是一个“分组”. 2,数据库分组架构解决什么问题? 大多数互联网业务,往往读多写少,这时候,数据库的读会首先称为数据库的瓶颈,这时,如果我们希望能够线性的提升数据库的读性能,消除读写锁冲突从而提升数据库的写性能,那么就可以使用“分组架构”(读写分离架构).用一句话概括,读写分离是用来解决数据库的读性能瓶颈的. 3

mysql主从库配置ps:mysql5.6

1 Mysql cluster版本主从服务器搭建实践 主从的作用:MySQL的主从服务器可以满足同步数据库,同步表,同步表内容,也可以指定仅同步某个数据库或某个表,还可以排除不同步某个数据库某个表. 同步原理:主从数据库同步主要是通过二进制日志来实现同步的. 从mysql官网下载最新版本:dev.mysql.com 本文环境: 主mysql服务器:10.1.68.110 安装版本:mysql-cluster-gpl-7.0.35-linux-x86_64-glibc23.tar.gz 从mysq

mysql 主从库配置

MySQL从库上有一个IO线程负责从主库取binlog到写到本地.另外有一个SQL线程负责执行这些本地日志,实现命令重放: 一.环境 主机: master操作系统:centos 5.3 IP:192.168.1.222 MySQL版本:5.0.77 从机: slave操作系统:centos 5.3 IP:192.168.1.220 MySQL版本:5.0.77 二.创建数据库 分别登录master机和slave机的mysql:mysql –u root –p 创建数据库:create datab

mysql 主从库同步

#主库修改my.ini [mysqld] server-id=2 log-bin=mysql-bin binlog-do-db=demo #从库修改my.ini [mysqld] server-id=3 replicate-do-db=demo --配置完成后重启主从库 #主库为从库添加用户 grant replication slave,reload,super on *.* to slave@14.23.88.110 identified by '123456'; show master s

MySQL主从库为什么会出现同一条数据的某个字段不一致?

问题描述: 开发环境的MySQL用了两台节点,主从同步结构.忽然有开发同学反映说在主库insert一条数据,发现在从库没有同步,查不到这条数据.于是开始排查. 原因排查: 1.查看主从同步状态 在主库执行: show master status\G 在从库执行: show slave status\G; 发现从库同步的bin log的Position跟主库查询到的不一致,以为是同步延迟了.然后手动在主库创建了一个测试database,发现从库立即同步了,主从同步的点也是一致的. 2.排查插入字段

mysql主从库

http://wangwei007.blog.51cto.com/68019/965575 一.mysql主从的原理 1.Replication 线程 Mysql的 Replication 是一个异步的复制过程(mysql5.1.7以上版本分为异步复制和半同步两种模式),从一个 Mysql instace(我们称之为 Master)复制到另一个 Mysql instance(我们称之 Slave).在 Master 与 Slave 之间的实现整个复制过程主要由三个线程来完成,其中两个线程(Sql

(二)mysql主从同步搭建步骤

Master_Server:192.168.159.10 Slave_Server:192.168.159.11 1.测试远程账户登录 Master_Server: #给backup用户授权 mysql> grant replication slave on *.* to 'backup'@'192.168.159.11'  identified by '123'; #检查  authentication_string 相当于mysql5.5之前的password mysql> select

mysql主从服务器搭建

当业务流量过大时,我们的一台服务器可能难以负载,我们需要用到主从服务器的配置. 具体配置如下: 172.17.10.57位主服务器 172.17.55.206 从服务器 正确的安装数据库后,确保两台的能互通. mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'%' identified by 'q123456'; //一般不用root帐号,"%"表示所有客户端都可能连,只要帐号,密码正确,此处可用具体客户端IP代替,如192.16