红帽企业linux 6.4 64位上实现mysql 5.6主从复制_Centos6上进行Mysql5.6安装和主从复制部署...

系统:centos6

数据库:mysql5.6

服务器:两台,一主一从

一、Mysql5.6二进制版本的安装

Mysql的安装在有三种模式,第一种是yum安装,第二种是二进制模式的安装,第三种是源码编译安装。本篇采用的是二进制安装方式。

安装前有几个工作建议先做一下,尽量排除掉一切可能失败的因素。

1.在安装前要先检查下系统中是不是已经安装过mysql,如果安装,要先卸载Mysql,将相关mysql的东西全部删除。

2.Mysql用到端口3306,要在防火墙方面上将两个端口打开,重点:如果是阿里云服务器,它的防火墙端口在还有一层过滤,需要等上控制台,在规则里面把端口给放开。

①下载安装包

# cd /usr/local 安装目录在/usr/local,先进入目录

#wget https://cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz 下载linux平台下的64位的Mysql5.6

#tar zxvf mysql-5.6.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local 将其解压到/usr/local

#ln –sv mysql-5.6.38-linux-glibc2.12-x86_64 mysql 将解压后的文件建立软连接名字为 mysql

或mv mysql-5.6.38-linux-glibc2.12-x86_64 mysql 将解压后的文件重命名为mysql

②准备Mysql用户

#groupadd mysql                增加mysql用户组

#useradd-s /sbin/nologin -M -g mysql mysql 增加mysql用户

-s表示指定用户所用的shell,此处为/sbin/nologin,表示不登录。

-M表示不创建用户主目录。

-g表示指定用户的组名为mysql。

-最后的mysql表示用户名。

③准备数据库实例datadir目录

# chown mysql:mysql /usr/local/mysql/data 更改data目录的所有者为mysql用户

7770d37823560a6a3aafb42ef4ce5128.png

# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 初始化实例3306的目录

725c0245a82f6313cc2686f532a7f2bb.png

初始化后的data目录

e77c71af9452c3e2d68a5aff357318dd.png

④准备配置文件

在/etc文件夹下建立my.cnf,配置如下内容。

#vim /etc/my.cnf

[client]

port= 3306socket= /tmp/mysql.sock

[mysqld]

port= 3306socket= /tmp/mysql.sock

basedir= /usr/local/mysql

datadir= /usr/local/mysql/data

⑤配置环境变量(此步骤非必须,可以省略)

#vim /etc/profile

添加export PATH=/usr/local/mysql/bin/:$PATH

#source /etc/profile重新加载下配置文件,使配置立即生效

c08dd97032d419e8db5f28ec9cd9c987.png

⑥数据库的启动

启动Mysql有好几种方式,I,II,两种模式实质上最终都是是调用III.mysqld_safe启动。

I.可以将mysql配成服务,用server mysql start启动。

II.可以用mysqld -defaults-file=/etc/my.cnf --user=root 这种方式启动。

III.还可以用mysqld_safe --defaults-file=/etc/my.cnf这种方式启动。

I如果是将mysql配成服务

# cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

# chkconfig--add mysqld 将mysqld服务添加到开机自启列表

# chkconfig mysqld on     设置mysqld服务开机自启

# service mysqld start     启动mysql

a8b570dfa30d3aee365459f2c7a5a24a.png

II如果以mysqld 方式启动

# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --user=root & --user=root参数必须加,要不然报错

46bdf3c7eb824464ca5fbe5ab6d4413c.png

III如果以mysqld_safe方式启动

#/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf 2>&1 >/dev/null &

34fef228008d31803b1f8fc4d31b3894.png

⑥修改管理员密码并测试

# /usr/local/mysql/bin/mysqladmin -u root password 'admin'设置管理员密码

#/usr/local/mysql/bin/mysql -u root -p             测试密码输入

至此,Mysql已经安装完成,另一台服务器mysql的安装也是这样,接下来便开始进行主从复制。

二、Mysql主从复制

我们在两台服务器上都装上Mysql,然后一台作为主服务器,一台作为从服务器,作为一主一从模式。

Master:172.23.216.86

Slvae :172.23.216.87

1.主从复制原理

整体上来说,复制有3个步骤:

①master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);

②slave将master的binary log events拷贝到它的中继日志(relay log);

③slave重做中继日志中的事件,将改变反映它自己的数据。

502731f3fd3fa9a508ec5ff0b358bf10.png

2.主从复制的配置

①主数据库实例设置server-id和开启bin-log;

②主数据库实例创建用于同步的账号;

③从数据库实例设置server-id;

④从数据库实例配置同步参数;

⑤从数据库实例启动同步开关。

①主数据库实例设置server-id和开启bin-log

在master的my.cnf文件中的[mysqld]节点出添加server-id和bin-log

# vim /etc/my.cnf

[mysqld]

log-bin= /usr/local/mysql/data/mysql-bin 二进制日志路径格式

server-id = 1主库从库的id不能相同

replicate-ignore-db = mysql        在进行主从同步时忽略mysql这个库

之后在数据库主库中查看是否开启

mysql>show variables like "server_id";  显示为1表示正确

mysql>show variables like "log_bin";   显示为ON表示二进制日志开启

29fd32241584dc196d5ca9c2743ee7e2.png    

d2df8e044854880c67591ef6a4efb389.png

②主库创建用于同步的账号

mysql>GRANT REPLICATION SLAVE ON *.* TO 'replication'@'%' identified by '123456'; 创建一个用于从库复制的账号

mysql>flush privileges; 刷新下权限列表

mysql> show master status \G; 查看主库状态

9bf290239514ac121488ae5cb1721a0c.png

③从数据库设置server-id

在slave中my.cnf的[mysqld]节点出添加server-id

# vim /etc/my.cnf

[mysqld]

server-id = 2

④在slave中配置同步参数

mysql>CHANGE MASTER TO

MASTER_HOST='172.23.216.86', 主库的ip地址

MASTER_PORT=3306,  端口号

MASTER_USER='replication', 账号

MASTER_PASSWORD='123456', 密码

MASTER_LOG_FILE='mysql-bin.000002', 开始复制的文件

MASTER_LOG_POS=404; 复制的位置

⑤从数据库启动同步开关

mysql>start slave;       从库执行start slave

mysql>show slave status \G;      查看从库状态

04c480b384a0d32781ea60b42fc9b456.png

至此,主从复制完成。现在在master上进行数据库相关操作,之后就会发现从库中也有相关内容。

------------------------------------------------------------------------其他-------------------------------------------------------------

1.彻底解除主从复制关系

1). stop slave;

2). reset slave; 或直接删除master.info和relay-log.info这两个文件;

3). 修改my.cnf删除主从相关配置参数。

2.让slave不随MySQL自动启动

修改my.cnf 在[mysqld]中增加 skip-slave-start 选项。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值