前面我们对负载均衡功能配置的系统方面配置,接下来我们就来具体介绍一下MySQL数据库的负载均衡功能配置的问题。那么,分为几个步骤来进行讲解,结构比较清晰,望大家都能清楚了解配置过程。
MySQL数据库系统负载均衡功能配置
为了能使上述系统实现一对多的主从复制(replication)和冗余机制,还需要对以上四个MySQL服务器进行一些必要的配置。
(1). 配置主机名和IP地址
本实现方案中把MySQL服务器Master主机名设为FreebsdMaster,IP地址配置为192.168.1.100,其它三台Slave依次设为FreebsdSlave1,192.168.1.101;FreebsdSlave2,192.168.1.102;FreebsdSlave3,IP地址192.168.1.103。
(2). 设置root用户密码
MySQL的root用户初始密码为空,为保证系统安全必须为root用户设置密码:
[root@FreebsdMaster /]# /app/mysql5/bin/mysql –uroot –p
Enter password:
mysql>SET PASSWORD=PASSWORD(‘secret');
同Unix系统一样,输入密码时屏幕没有任何回显,进入系统后执行SET PASSWORD SQL语句设置或修改MySQL root用户密码。为使应用系统服务器远程连接到MySQL数据库服务器,除本地root用户以外,还要设置一个能从用户内部网络其它终端登录的root用户。具体操作如下:
mysql>USE mysql;
mysql>UPDATE user SET Host='%' WHERE Host='hostname.yourdomain' AND User='root';
mysql>flush privileges;
完成上述操作后应用系统服务器就可以连接到MySQL数据库服务器进行各种操作了,这个远程root用户的初始密码为空,用户需要从远程终端登录,为其设置密码。
(3). 负载均衡功能配置下一步:开启MySQL服务器的二进制更新日志功能
上述MySQL服务器安装完成后,安装程序没有生成my.cnf配置文件,为此用户需要手工添加/etc/my.cnf文件。MySQL服务是由/app/myql5/libexec/mysqld提供的,其寻找my.cnf配置文件的默认顺序为/etc/my.cnf,~/.my.cnf,/usr/local/mysql/etc/my.cnf。启动ee编辑器,# ee /etc/my.cnf,在Master机器的配置文件写入如下内容:
[mysqld]
log-bin=mysql-master-bin
server-id=1
在其它三台Slave机器的配置文件/etc/my.cnf文件写入如下内容:
[mysqld]
server-id=int
其中,int为一大于1且互不相等的正整数,如2,3,4等。若要完成负载均衡功能配置,务必要正确设置每个机器上的/etc/my.cnf配置文件,尤其是server-id不能有重复,这是一对多数据库复制能否成功的关键!
设定好上述/etc/my.cnf文件后启动Master上的MySQL数据库服务时就自动开启了二进制更新日志功能。在Slave上启动MySQL时要加上--log-bin参数,即可开启二进制更新日志功能。在Slave机器上启动MySQL服务的命令如下:
# /app/mysql5/bin/mysqld_safe --user=mysql --log-bin &
这样做的目的为了实现冗余容错功能。当主服务器Master出现故障停止服务时,在预转换角色成为Master的Slave上执行STOP SLAVE; RESET MASTER SQL语句,在其它两台Slave上执行CHANGE MASTER TO SQL语句,执行STOP SLAVE; RESET MASTER SQL语句的Slave服务器即转换成新的Master,其余两台机器则从新的Master复制数据库数据(在负载均衡功能配置操作中,复制的是更新UPDATE、INSERT等操作,并不是简单的copy),从而实现冗余容错。