资源描述
. . . .
MySQL 5.6.19 基于RHEL6.4
主从模式部署手册
菜
2014年8月
文档版本
时 间
作 者
容
版 本
2014-08
菜
创建Linux平台下MySQL5.6.19主从安装文档手册
1.0
目录
Install MySQL 5.6.19 on Linux1
文档版本2
一、文档简介4
二、安装须知4
1.操作系统版本4
2.磁盘情况5
3.网络情况5
4.YUM源7
5.防火墙7
三、cmake版本9
四、MySQL安装部署12
1.部署方式12
2.部署步骤12
3.MySQL初始化15
Install MySQL 5.6.19 on Linux
一、文档简介
本文档仅用于学习交流MySQL主从部署相关技术,非商业性文档。
该文档容是关于Linux平台下MySQL源码包安装方法、步骤与相关须知等容,适用于研发人员、运维与现场实施人员参考。
请全文通读后,再进行MySQL安装的相关操作,如安装过程中遇到错误,请先解决错误后,再按顺序进行安装。
二、安装须知
在MySQL安装前,请先以root用户登录操作系统,并确认服务器的网络、磁盘、防火墙、YUM源等信息,以便于顺利的开展安装MySQL的工作。
本次部署为MySQL主从形式,需要在三台服务器上分别进行部署配置。本示例采用两台虚拟机进行部署练习,主从机信息详见下表:
Master
Slave01
Slave02
IP
192.168.1.81
192.168.1.84
192.168.1.85
ID
81
84
85
1. 操作系统版本
演示安装的操作系统版本: Red Hat Enterprise Linux Server release 6.4 (Santiago)
查看操作系统版本命令:lsb_release –a或 cat /etc/system-release
Lsb_release –a 执行结果如以下图所示:
cat /etc/system-release 执行结果如以下图所示:
2. 磁盘情况
查看磁盘使用要,MySQL需要至少2G的磁盘空间,若有数据需要写入,请按实际业务量划分存储。
硬盘使用情况查看命令:df–h
df –h 执行结果如以下图所示:
通过查询结果得知在“/”目录下,有8.8G的空间,可供使用,本次MySQL将安装在/usr/local下。
3. 网络情况
查看本地IP地址,以保证本机做为MySQL服务器的情况下,其他用户可以访问。
查看本地IP命令:ifconifg
Ifconfig 执行结果如以下图所示,本机的IP地址为192.168.1.81, Mask:255.255.255.0
测试192.168.1.81、192.168.1.84和192.168.1.85三台服务器是否可以ping通,为后续部署做准备。执行命令ping 192.168.1.81、ping 192.168.1.84和 192.168.1.85
执行结果如以下图所示
4. YUM源
分别查看192.168.1.81、192.168.1.84和192.168.1.85服务器一下YUM源信息,以方便在安装MySQL相关依赖包时,可以通过YUM顺利解决。
通过查看YUM配置文件来确认YUM源信息,执行命令:
vim /etc/yum.repos.d/rhel-source.repo
YUM源信息显示,该源所指向本地/mnt文件夹(baseurl=file:///mnt)
查看/mnt 是否有效,验证命令 cd /mnt 或 df –h
df –h 执行结果显示 /rhel6.4.iso 挂载在/mnt目录下,即该源有效
5. 防火墙
查看防火墙(iptables)状态,防止因防火墙策略问题导致远程无法本地MySQL情况,本次部署中,192.168.1.81、192.168.1.84和192.168.1.85服务器全部选择关闭防火墙。
查看防火墙壮态命令/etc/init.d/iptables status
执行结果显示 iptables正在工作
关闭防火墙指令/etc/init.d/iptables stop
执行结果如以下图所示
再次执行/etc/init.d/iptables status
执行结果显示防火墙当前已关闭。
为了防止防火墙开机自启动,执行命令chkconfig iptables --list
执行结果显示防火墙为开机启动
关闭防火墙开机启动命令chkconfig iptables off,如执行正确没有信息反馈。
再次查看检查防火墙开机启动状态,执行命令chkconfig iptables –list
执行结果显示,已完全关闭开机防火墙自启动策略。
三、cmake版本
cmake是MySQL安装时所需要的软件,该软件一定要在MySQL前安装。
本次使用的cmake版本为cmake-3.0.0.tar.gz。
1. 解压cmake-3.0.0.tar.gz,执行命令:tar xvf cmake-3.0.0.tar.gz
解压后得到cmake-2.8.12.2文件夹
2. 进入cmake-2.8.12.2文件夹,执行 cd cmake-2.8.12.2
以下图为cmake-2.8.12.2文件夹中容
3. 安装cmake相关依赖包,执行命令:
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
4. 在cmake-2.8.12.2文件夹中,执行 ./bootstrap 命令
执行结果部分截图如以下图所示
5. 编译cmake源码,执行命令:make
执行结果部分截图如以下图所示
6. 安装cmake,执行命令:make install
执行结果部分截图如以下图所示
7. 查看cmake版本,执行命令:cmake –version
执行结果显示,cmake 安装成功
8. 数据库版本
四、MySQL安装部署
1. 部署方式
本次MySQL采用主从部署方式
2. 部署步骤
1. 创建 mysql 组,执行命令:groupadd mysql
2. 创建 mysql 用户,并加入到mysql组中,执行命令:
useradd -M -g mysql -s /sbin/nologin mysql
3. 解压mysql5.6.19压缩包,执行命令:tar xvf mysql-5.6.19.tar.gz
4. 进入mysql-5.6.19 文件夹,执行命令:cd mysql-5.6.19
5. 通过cmake工具来编译MySQL源码,在编译项中添加相关参数。MySQL安装路径为/usr/local/mysql,数据文件路径为/usr/local/mysql/data,监听端口为3306,字符集为utf8等。执行命令:
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
执行命令示如以下图所示
执行结果部分截图如以下图所示:
6. 编译MySQL源码,执行命令:make
执行结果部分截图如以下图所示
7. 安装MySQL,执行命令:make install
执行结果部分截图如以下图所示
3. MySQL初始化
1. 改变MySQL工作目录所属,执行命令:
chown -R mysql:mysql /usr/local/mysql
2. 进入MySQL工作目录,执行命令:cd /usr/local/mysql
3. 初始化MySQL数据,并指定数据文件位置,执行命令:
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
执行结果部分截图如以下图所示
执行成功
4. 将my-defaultf文件复制到/etc目录下,并命名为myf,该文件做为MySQL的系统配置文件,执行命令
:cp support-files/my-defaultf /etc/myf
主机(192.168.1.81)更改/etc/myf 配置,要末尾处添加
log-bin=mysql-bin
server-id=81
编辑容如以下图所示
从机01(192.168.1.84)更改/etc/myf 配置,要末尾处添加
log-bin=mysql-bin
server-id=84
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
从机02(192.168.1.85)更改/etc/myf 配置,要末尾处添加
log-bin=mysql-bin
server-id=85
relay_log=mysql-relay-bin
log_slave_updates=1
read_only=1
5. 将MySQL服务加添加到系统中,执行命令:
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
6. 改变mysqld的执行权限,执行命令:
chmod 755 /etc/rc.d/init.d/mysqld
7. 添加mysqld服务开机启动,执行命令:chkconfig --add mysqld
查看是否执行成功,执行命令:chkconfig --list mysqld
8. 启动MySQL服务,执行命令:service mysqld start或
执行成功截图如以下图所示:
9. 将MySQL相关信息添加到系统环境变量中,执行命令:
echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
10. 刷新系统环境变量,执行命令:source /etc/profile
11. 初始化MySQL管理员密码(密码:123456),执行命令:
mysqladmin -uroot password '123456'
12. 以root身份登录分别三台服务器MySQL,执行命令:mysql -uroot -p123456
执行结果如以下图所示:
13. 分别在Master和slave01、slave02数据库中进行配置
主机(192.168.1.81):
1. 设置该节点为master
2. 创建rep1用户,并授予slave相关权限且开放IP围为192.168.1.1至192.168.1.255的访问权限。
3. 让MySQL重新加载权限
执行以下语句(注:“mysql>”“ 为mysql提示符)
mysql> reset master;
mysql> grant replication slave, replication client on *.*
to rep1'192.168.1.%' identified by '1';
mysql> flush privileges;
执行结果如以下图所示:
4. 测试rep1用户在slave01和slave02服务器上是否可以正常登录。
Slave01(192.168.1.84)
mysql –urep1 –p1 –h192.168.1.81
Slave02(192.168.1.85)
mysql –urep1 –p1 –h192.168.1.81
上图为正常访问截图,如果无法连接,请确认网络与iptables是否已关闭。
slave01 设置master地址、用户、需要同步的master_log_file等信息,以root用户登录,并执行命令如下:
mysql> change master to
master_host='192.168.1.81',
master_user='rep1',
master_password='1',
master_log_file='mysql-bin.000001',
master_log_pos=0;
slave02 设置master地址、用户、需要同步的master_log_file等信息,以root用户登录,并执行命令如下:
mysql> change master to
master_host='192.168.1.81',
master_user='rep1',
master_password='1',
master_log_file='mysql-bin.000001',
master_log_pos=0;
5. 在slave01和slave02的mysql中查看slave状态 ,在mysql中执行命令show slave status \G;
执行结果如以下图所示:
6. 分别在slave01和slave02的mysql中启动slave,执行命令start slave;
执行结果如以下图所示:
7. 验证
a) Master(192.168.1.81)以root身份登录mysql,执行命令 mysql –uroot –p1
b) 查看当前数据库,执行命令 show databases;
c) 创建新数据库shop,执行命令:create database shop;
d) 切换到shop库中,执行命令:use shop;
e) 创建一名为product的表,执行命令create table product(id int, name varchar(10));
f) 插入3条数据,执行命令:
insert into product values(1, 'apple');
insert into product values(2, 'banana');
insert into product values(2, 'banana');
g) Slave01(192.168.1.84)以root身份登录mysql,执行命令 mysql –uroot –p1
h) 查看当前数据库,执行命令 show databases;
i) 切换到shop库中,执行命令:use shop;
j) 查询数据produce表中的数据,执行命令:
select * from product;
执行结果如以下图所示:
k) Slave02(192.168.1.85)以root身份登录mysql,执行命令 mysql –uroot –p1
l) 查看当前数据库,执行命令 show databases;
m) 切换到shop库中,执行命令:use shop;
n) 查询数据produce表中的数据,执行命令:
select * from product;
执行结果如以下图所示:
以上结果验证了,MySQ主从模式成功部署,且数据已完成同步。
8. 一
26 / 26
展开阅读全文