码迷,mamicode.com
首页 > 数据库 > 详细

centos6.6手动安装mysql5.5并配置主从同步

时间:2018-07-19 21:23:28      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:创建   没有   启动mysql   中继日志   数据库   命令   部分   mysqld   软件包   

0.实验环境 

主机IP(Master) 192.168.61.150 centos6.6 
从机IP(Slave)   192.168.61.157 centos6.6 

1.查看centos系统版本

[root@dev2017-b4d16cc2 ~]# rpm -q centos-release
centos-release-6-6.el6.centos.12.2.x86_64

检测系统是否自带安装MySQL并卸载

yum list installed | grep mysql
yum -y remove mysql-libs.x86_64

 

2.下载mysql安装包

由于机器没有外网权限,无法使用yum方式安装,所以需要下载软件包到本地。

wget http://mirrors.sohu.com/mysql/MySQL-5.5/MySQL-5.5.55-1.el6.x86_64.rpm-bundle.tar

3.安装并启动mysql服务

解压压缩包 tar -xf MySQL-5.5.55-1.el6.x86_64.rpm-bundle.tar
安装服务端  rpm -ivh MySQL-server-5.5.55-1.el6.x86_64.rpm
             如果出现如下报错,可以执行 yum install libaio 来解决
             libaio.so.1()(64bit) is needed by MySQL-server-5.5.55-1.el6.x86_64
             libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.5.55-1.el6.x86_64
             libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.5.55-1.el6.x86_64
  安装客户端  rpm -ivh MySQL-client-5.5.55-1.el6.x86_64.rpm

至此mysql服务已经可以启动,后续需要修改配置文件,所以这里先把配置文件放置好再启动服务。

如在/etc/下没有找到my.cnf,则去/usr/share/mysql下找到my-medium.cnf并复制到/etc/下改名为my.cnf

4.启动服务并修改root密码

启动服务
service mysql start
修改root密码
/usr/bin/mysqladmin -u root password  123456
登陆mysql
mysql -u root -p

 

 5.允许root用户远程连接

登陆服务器后执行
GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘IDENTIFIED BY ‘123456‘ WITH GRANT OPTION;

 

 6.配置主从服务

 同样的版本安装好slave机器。

6.1 master授权

6.1.1.向Master添加远程登录的用户

mysql>grant REPLICATION SLAVE on *.* to ‘repl‘@‘192.168.61.157‘ identified by ‘repl‘;

 6.1.2.刷新授权并查看授权结果

mysql>flush privileges;
mysql>show grants for "repl"@"192.168.61.157";

 6.1.3 测试Slave远程登录Master

mysql -h 192.168.61.150 -u repl -prepl(注意-p后无空格)

 6.2 修改master配置文件

在my.cnf找到确认如下信息,如没有则手动添加:
[mysqld]
log-bin=mysql-bin # 确认开启binlog日志
binlog_format=mixed # 确认binlog日志格式为mixd混合类型
server-id=1 # 在整个主从架构内指定一个唯一的server-id

 6.3修改slave配置文件

[mysqld]
log[mysqld] log-bin=mysql-bin # 确认开启binlog日志
binlog_format=mixed # 确认binlog日志格式为mixd混合类型
server-id=2 # 在整个主从架构内指定一个唯一的server-id
replicate_do_db=test0
replicate_do_db=test1

Slave其他可选配置:

 1.白名单 - 只想复制某(些)个库:
    replicate_do_db=testdb #只复制testdb库(可配置多个)

 2.白名单 - 只想复制某(些)个库(的所有表)
     replicate_wild_do_table=testdb.% #复制testdb库的所有表(可配置多个)

 3.白名单 - 只想复制某(些)个库(的部分表)
     replicate_wild_do_table=testdb.t1 #复制testdb.t1表
     replicate_wild_do_table=testdb.t2 #复制testdb.t2表

 4.黑名单 - 想忽略对mysql数据库的复制
     replicate_ignore_db=mysql #不复制mysql库(可配置多个)

 5.黑名单 - 想忽略对某些库的某些表的复制
     replicate_wild_ignore_table=mysql.users # 不复制mysql.users表(可配置多个)

6.如果想实现“主-->从-->从”的链式架构,因为在默认情况下,从Master复制过来的数据不会写入到Slave的binlog日志里,而是写入中继日志(localhost-relay-bin.00000x)里,所以Slave如果还需要充当其它机器的Master,就将从Master复制来的数据同时也写入Slave的本地binlog日志,添加如下配置:
     log-slave-updates =1

 

 

6.4Master操作

mysql>flush logs(刷新Master日志记录)
mysql>show master status(查看主机最后日志文件和最后起始点)

 

 技术分享图片

 

6.5 Slave操作

 1.在Slave上执行命令,动态改变连接到Master的配置,生成或更新master.info文件:

change master to master_host="192.168.61.150",master_port=3359, master_user=‘repl‘,  master_password=‘repl‘,  master_log_file=‘mysql-bin.000009‘,  master_log_pos=107;

可选配置:

master_heartbeat_period=60 #60秒探测一次Master是否在线
master_connect_retry=10 #无法连接Master的时候重试连接的间隔时间为10秒

2.启动IO线程

负责从Master端复制 mysql-bin.00000x 日志,并把复制来的数据全部都放到 localhost-relay-bin.00000n 日志里)和SQL线程(负责读取中继日志(relay-log.info)里的信息,将 localhost-relay-bin.00000n 日志里的数据写入本地Slave。并查看Slave状态。如果没有报错说明配置成功了

mysql> start slave;
mysql> show slave status;

 

 6.6 测试

在master上的test0和test1创建表或者写入数据,将会在slave中出现相同数据

 

 

 

 

 

 

 

centos6.6手动安装mysql5.5并配置主从同步

标签:创建   没有   启动mysql   中继日志   数据库   命令   部分   mysqld   软件包   

原文地址:https://www.cnblogs.com/wzj4858/p/9337748.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!