博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 主从复制
阅读量:4972 次
发布时间:2019-06-12

本文共 3306 字,大约阅读时间需要 11 分钟。

master安装和配置:

为mysql的安装提供前提环境和初始化安装mysql

创建数据库目录

# mkdir /data/mysql –pv
# mkdir /data/mysql/datafile
# mkdir /data/mysql/logfile
创建mysq用户
# useradd -r mysql
修改权限
# chown -R mysql.mysql /data/mysql/
使用mysql-5.5通用二进制包安装
解压mysql软件包
# tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/
创建连接,为了方便查看mysql的版本等信息
# cd /usr/local/
#ln –sv mysql-5.5.28-linux2.6-i686.tar.gzmysql
修改属主属组
# cd mysql
# chown -R root.mysql ./*
初始化数据库
# scripts/mysql_install_db –user=mysql --datadir=/mydata/data/
提供配置文件
# cp support-files/my-large.cnf /etc/my.cnf
提供服务脚本
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
添加至服务列表
# chkconfig --add mysqld
# chkconfig --list mysqld
# chkconfig mysqld on
编辑配置文件,提供数据目录
# vim /etc/my.cnf
# The MySQL server 修改mysqld服务器端的内容
log-bin=mysql-bin 主服务器二进制日志文件前缀名
log-bin-index=mysql-bin.index 索引文件
innodb_file_per_table= 1 开启innodb的一表一个文件的设置
server-id = 1 必须是唯一的
datadir =/mydata/data 数据目录路径
启动mysql服务
# servicemysqld start
为了便于下面的测试,设置环境变量
# vim/etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
执行环境变量脚本,使其立即生效
# . /etc/profile.d/mysql.sh

mysql的安装配置完成,下面增加一个用于同步数据的账户并设置相关的权限吧!

建立用户账户

mysql> grant select on *.* to 'repl'@'10.77.4.%' identified by 'LSzhYccfwVtReKY9';

mysql>grant REPLICATION CLIENT on *.* to 'repl'@'10.77.4.%';

mysql>grant REPLICATION SLAVE on *.* to 'repl'@'10.77.4.%';
刷新数据使其生效
mysql> flush privileges;

至此我们mysql的Master设置完成,下面进行slave端的设置吧!

 

Slave安装配置:

安装环境配置:

创建mysql数据库目录

# mkdir /mydata/data –pv
创建mysql用户
# useradd -r mysql
修改数据目录权限
# chown -R mysql.mysql /mydata/data/
使用mysql-5.5通用二进制包安装mysql
解压mysql软件包
# tar xf mysql-5.5.28-linux2.6-i686.tar.gz-C /usr/local/
创建连接,便于查看mysql的版本等信息
# cd /usr/local/
# ln –sv mysql-5.5.28-linux2.6-i686.tar.gzmysql
修改mysql属主属组
# cd mysql
# chown -R root.mysql ./*
初始化mysql数据库
# scripts/mysql_install_db –user=mysql--datadir=/mydata/data/
提供mysql配置文件
# cp support-files/my-large.cnf /etc/my.cnf
提供服务脚本
# cp support-files/mysql.server /etc/init.d/mysqld
添加至服务列表
# chkconfig --add mysqld
编辑配置文件
# vim /etc/my.cnf
# The MySQL server
#log-bin=mysql-bin 禁用二进制日志,从服务器不需要二进制日志文件
datadir = /mydata/data mysql的数据目录
relay-log = relay-log 设置中继日志
relay-log-index = relay-log.index 中继日志索引
innodb_file_per_table = 1
server-id = 2 id不要和主服务器的一样
设置环境变量
# vim/etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
执行此脚本(导出环境变量)
# . /etc/profile.d/mysql.sh
启动服务
# service mysqld start

到这slave服务的mysql安装和配置完成,下面启动slave复制吧,开启之前先查看下从服务上的二进制文件吧

mysql> show master status; #在Master上执行查看二进制文件

在从服务器上开启复制功能

change master to master_host='10.77.4.8',master_user='repl',master_password='LSzhYccfwVtReKY9',master_log_file='mysql-bin.000002',master_log_pos=876;

开启复制功能

mysql>start slave;

 

杂项:

  • 根据报警找出出错的记录:

/usr/local/mysql/bin/mysqlbinlog -v --stop-position=156190985 /data/mysql/datafile/mysql-bin.000006 > /data/f.log

cat /data/f.log | awk '/end_log_pos 156190985/ {print NR}'

cat /data/f.log | awk 'NR==3989111,NR==3989131'

  • 限定只同步哪张表 .% 表示忽略数据不一致的错误

replicate_wild_do_table=pgenius.%

replicate_wild_do_table=pgznty.%

  • 跳过报错

1.跳过指定数量的事务:

mysql>stop slave ;
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1 #跳过一个事务
mysql>slave start

2.修改mysql的配置文件,通过slave_skip_errors参数来跳所有错误或指定类型的错误
vi /etc/my.cnf
[mysqld]
#slave-skip-errors=1062,1053,1146,1032 #跳过指定error no类型的错误
#slave-skip-errors=all #跳过所有错误

 

转载于:https://www.cnblogs.com/champaign/p/6861324.html

你可能感兴趣的文章
VS中展开和折叠代码
查看>>
如何确定VS编译器版本
查看>>
设置PL/SQL 快捷键
查看>>
个人阅读作业7
查看>>
转载:深入浅出Zookeeper
查看>>
GMA Round 1 新程序
查看>>
node anyproxy ssi简易支持
查看>>
编译预处理指令:文件包含指令、宏定义指令、条件编译指令
查看>>
PHP函数 ------ ctype_alnum
查看>>
网站安全
查看>>
WS-Addressing 初探
查看>>
.NET+模块编排+数据库操作类的封装+分层架构+实体类+Ajax.net+Athem.NET+javascript+Activex组件+用户权限等...
查看>>
Markdown不常见功能
查看>>
(二)NUnit单元测试心得
查看>>
hdu_2604Queuing(快速幂矩阵)
查看>>
frame.bounds和center
查看>>
HDU 1102 Constructing Roads
查看>>
android StaticLayout参数解释
查看>>
多线程之ThreadLocal类
查看>>
Qt-读取文本导出word
查看>>