参考文章:http://www.howtoforge.com/how-to-set-up-mysql-database-replication-with-ssl-encryption-on-centos-5.4
外国人写文章真严谨,步骤详尽,讲解明了,我除了安装方式使用了源代码编译,其余部分基本都是照做,操作步骤写在这里,仅做记录。
测试环境准备:
准备两台计算机,一台master,一台slave,配置随便,反正centos只安装字符界面,不需要太好配置,当然配置越低,编译安装速度越慢,如果你找不到计算机,手头只有一台计算机,那么用virtualbox虚拟然后搭网桥一样可以模拟一台局域网计算机,为了学习技术,有条件上,没有条件也要创造条件上!
master服务器
192.168.90.216
centOS 5.3 x86_64
mysql-5.0.67
slave服务器
192.168.90.89
centOS 5.3 x86_64
mysql-5.0.67
编译安装mysql,主从服务器的操作都一样
准备配置文件和启动脚本
设置自动启动
初始化授权表
启动mysql
加入环境变量
给数据库root用户加上密码
登录mysql检查
如果mysql输出如上所述,那么继续操作开启ssl;如果不是,重新编译安装mysql,注意生成makefile时填写参数正确。
退出mysql,编辑/etc/my.cnf
在[mysqld]章节最后,即[mysqld]和[mysqldump]之间,加入下列配置信息:
保存后重新启动mysql,再次登录mysql
输出结果显示YES,现在ssl被完美启动起来了。
对主从服务器进行配置
在master服务器上为mysql的bin-log创建存放日志的目录
在master服务器上生成ssl秘钥
查看一下都生成了什么文件
好了,秘钥生成了,下面需要做的是把ca-cert.pem、client-cert.pem、and client-key.pem拷贝到slave服务器上,首先我们在slave服务器上创建同样的文件夹。
现在在master服务器上把秘钥文件拷贝到slave服务器上
我们继续修改master服务器上的mysql配置文件,打开/etc/my.cnf
在我们刚才添加的配置代码中增加三行,如下:
重新启动mysql
现在我们在master服务器上登录mysql,创建帐号并提供给slave服务器以便访问master服务器。
输入如下命令创建帐号:
我们继续修改master服务器的mysql配置文件,填写需要读写分离的数据库名。打开/etc/my.cnf,
修改我们前面填写的配置代码如下:
重新启动master服务器上的mysql
登录mysql,把需要读写分离的数据库导出生成sql文件并提供给slave服务器用,操作期间需要锁表,等操作完毕,再解锁。
继续查看master状态,查看mysql输出信息如下:
连接mysql的shell别关闭,因为一旦关闭mysql就解锁了。再打开一个终端窗口,导出sql文件并拷贝到slave服务器上。
好了,现在我们可以把master服务器上的mysql终端关闭退出了,继续输入:
让我们开始配置slave服务器,打开编辑mysql的配置文件/etc/my.cnf
在[mysqld]和[mysqldump]之间的章节加入如下配置代码:
重新启动slave服务器上的mysql
接下来我们首先停掉slave服务器上的mysql slave服务
然后我们导入sql文件
现在登录slave服务器上的mysql
参考刚才在master服务器mysql终端输入show master status命令打印出来的结果,我们输入以下命令并执行:
启动slave服务:
现在来看一下slave的状态,mysql返回结果为:
好了,现在我们在master服务器上操作mysql插入一条数据,slave服务器的mysql也会更新同样的一条数据,删除亦会同步,mysql replication配置完毕。