centos6下mysql的主从复制的配置

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 2015年9月17日 23:00:36 update想要好好了解mysql复制,还是去看看《高性能MySQL》(第三版)好了,上面说的比较详细。===========在本地用virtualbox安装了两台centos6.7服务器,配置了主从复制。

2015年9月17日 23:00:36 update
想要好好了解mysql复制,还是去看看《高性能MySQL》(第三版)好了,上面说的比较详细。

===========
在本地用virtualbox安装了两台centos6.7服务器,配置了主从复制。两个服务器都配置了第二块网卡(host-only),master的ip为192.168.56.102
slave的ip为192.168.56.103

安装

centos-6.7-minimal.iso

配置eth0网卡

默认不能上网!因为没开启eth0

vi /etc/sysconfig/network-scripts/ifcfg-eth0

ONBOOT=yes #修改!
MM_Controlled=no #修改!
BOOTPROTO=dhcp #不修改,就用它!
##其他没有列出的行,用默认值,不要动!

/etc/init.d/network restart

添加网卡

cd /etc/sysconfig/network-scripts
cp ifcfg-eth0 ifcfg-eth1

vi /etc/udev/rules.d/70-persistent-net.rule #查看eth1的mac地址并复制
vi ifcfg-eth1
#修改掉mac地址
#删除UUID  没有这个UUID一样可以玩!因为我并没有找到好用的寻找到uuid的方法

关selinux

我就没见这东西好用过!

vi /etc/selinux/config

SELINUX=disabled #!修改!

reboot #退出vim后,重启才能生效

mysql安装和简单配置

yum install mysql mysql-devel mysql-server
chkconfig --add mysqld
chkconfig mysqld on  #开机自动启动
service mysqld start

mysql_secure_installation  #安全安装:设定root密码,移除匿名用户,禁用远程登陆,删除测试数据和访问权限,重新加载用户权限表

master配置

cp /etc/my.cnf /etc/my.cnf.bak  #备份
vi /etc/my.cnf

#编辑文件内容为:
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-bin=mysql-bin  #新增。表示使用二进制日志。前面的datadir则指定了binlog的存放目录
server-id=102  #新增。用本机ip最后一段,比如192.168.56.102那么使用102


/etc/init.d/mysqld restart #重启mysql
mysql -uroot -ppipe36#    #登陆mysql
mysql>grant replication slave, replication client on *.* to 'repl'@'192.168.56.103' identified by 'zjmos123567'
# 设定允许slave服务器使用的master帐号,允许其远程登陆(指定了slave的ip地址),同时设定了用户名和密码

接下来,从数据库中导出数据,然后传送给slave服务器,并在slave服务器中导入sql文件。
为了确保没有数据库插入或者修改操作,要设定lock:

mysqldump -uroot -ppipe36# --lock-all-tables testDB > testDB.sql  #导出testDB数据库到testDB.sql文件
mysql -u root -p

mysql>show master status; #查看状态!重要! File字段和Position字段给slave用的!

slave配置

my.cnf中加入server-id

#[mysqld]下添加两行
log-bin=mysql-bin #非必须
server-id=103  #一般取本及机ip最后一段

重启mysql

service mysqld restart

导入master的sql文件

注意 master导出的文件可能只是一个数据库的(本例),因此可能sql文件中头部缺少两句:

create database xxx if not exists;
use xxx;

那么需要slave登陆mysql后手动输入这两句,以指定数据库名。

mysql -u root -p
source testDB.sql
change master to master_host='192.168.56.102',master_user='repl',master_password='zjmos123567',master_log_file='mysql-bin.000009',master_log_pos=901;

此处,master_user用户是master上创建的用户,master_password和前面master中的配置的要保持一致;master_log_file的值要和master中查询到的master status结果中的File保持一致,master_log_pos则和Position字段保持一致。

mysql> start slave; #开启slave
mysql> show slave status\G  #查看slave是否正常工作,主要看`Slave_IO_Running`和`Slave_SQL_Running`

还是不行?

无语了。slave的Slave_IO_Running项一直显示NO

发现是防火墙iptable在作怪。master和slave都关掉好了:

service iptables stop
chkconfig iptables off

然后重启动mysql服务,终于好了。

===

常见错误和solution

Error duplicate entry ....

因为同步出错了。
在slave上执行:

stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;

然而,counter设置为1也还是很不靠谱的。

有时候因为mysql发生了回滚操作,因此要避开的insert失败(错误代码1062)项,有非常多。
这时候不妨在my.cnf(windows下是my.ini)中进行配置:

slave-skip-errors = 1062

然后重启mysql服务,再看看mysql主从复制的结果。等复制好了,再把上面这条skip的配置项去掉。毕竟一直skip感觉很不安全啊。。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
4月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
619 87
|
7天前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
190 16
|
12天前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
177 7
|
1月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
151 10
|
2月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
139 16
|
2月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
370 9
|
4月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
1290 29
|
4月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
161 5
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
350 11