基于SSL的mysql服务器的主从架构实现
2012-04-18 18:43
423 查看
基于[/b]SSL[/b]的[/b]mysql[/b]服务器的主从架构实现[/b]
说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器
从服务器的mysql软件版本应大于或等于主服务器的mysql软件版本
主服务器与从服务器的server-id 应不同
一、准备条件:安装mysql(本文选用类似于一种绿色软件的方式安装mysql,特点:方便、快捷)
1.在172.16.22.1主机上安装mysql-5.5.20
(1).准备数据存放的文件系统
新建一个逻辑卷,并将其挂载至特定目录。
增加一个sda5,id为8e,先不要格式化。
这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
(2).新建用户以安全方式运行进程:
(3).安装并初始化mysql-5.5.20
(4).为mysql提供主配置文件:
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /mydata/data
(5).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(6).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(7).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(8)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
# ldconfig -v
(9).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
2.在172.16.22.3主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
(2).安装并初始化mysql-5.5.22
(3).为mysql提供主配置文件:
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /usr/local/mysql/data
(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(5).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(6).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
# ldconfig -v
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
二、配置主从服务器
1.配置主服务器(172.16.22.1):
(1).为主服务器生成CA证书以及mysql的证书
# cd /etc/pki/tls
# vim openssl.cnf
[ CA_default ]
dir = ../../CA # Where everything is kept
把上面”=../../CA”改为”=/etc/pki/CA”
依次输入”CN、Henan、ZZ、M、Tech 、 、 ” 这是CA为自己签发证书
(1).查看/etc/my.cnf配置文件中是否启动二进制日志:
log-bin=mysql-bin (默认情况下都已经开启,此时不需要做修改)
并在mysql段增加如下三项:
[mysqld]
ssl-ca=/etc/pki/CA/cacert.pem
ssl-cert=/usr/local/ssl/server-cert.pem
ssl-key=/usr/local/ssl/server-key.pem
(2).建立复制权限用户:
2.配置从服务器(172.16.22.3):
(1).编辑/etc/my.cnf配置文件,更改server-id使它和主服务器的server-id不一样,关闭二进制日志并打开中继日志:
# vim /etc/my.cnf
找到server-id,并改为
server-id = 11
找到 log-bin=mysql-bin 并禁用此项(在前面加上“#”即可)
在“#log-bin=mysql-bin”下面增加两项:
relay-log = relay-bin
relay-log-index = relay-bin.index
(2).在从服务器上指定主服务器:
说明:由于基于ssl的mysql主从复制作者本人没有亲身实验,所以实验结果未知,如您在实验之后发现问题,请给予留言提示;如您实验没有成功,请给出错误截图;如您实验成功,请给予实验结果的正确截图,谢谢回帖,来到这儿总要留点痕迹吧,O(∩_∩)O哈哈~!
说明:本文选用172.16.22.1作为主服务器,172.16.22.3作为从服务器
从服务器的mysql软件版本应大于或等于主服务器的mysql软件版本
主服务器与从服务器的server-id 应不同
一、准备条件:安装mysql(本文选用类似于一种绿色软件的方式安装mysql,特点:方便、快捷)
1.在172.16.22.1主机上安装mysql-5.5.20
(1).准备数据存放的文件系统
新建一个逻辑卷,并将其挂载至特定目录。
增加一个sda5,id为8e,先不要格式化。
# partprobe /dev/sda # pvcreate /dev/sda5 # vgcreate myvg /dev/sda5 # lvcreate -L 2G -n mysql myvg # mke2fs -j /dev/myvg/mysql # mkdir /mydata/data -pv # mount /dev/myvg/mysql /mydata
这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
(2).新建用户以安全方式运行进程:
# groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data
(3).安装并初始化mysql-5.5.20
# tar xf mysql-5.5.20-linux2.6-i686.tar.gz -C /usr/local # cd /usr/local/ # ln -sv mysql-5.5.20-linux2.6-i686 mysql # cd mysql # chown -R mysql:mysql . # scripts/mysql_install_db --user=mysql --datadir=/mydata/data # chown -R root .
(4).为mysql提供主配置文件:
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /mydata/data
(5).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
# cd /usr/local/mysql # cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on # service mysqld restart
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(6).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(7).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(8)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
# ldconfig -v
(9).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
# vim /etc/profile PATH=$PATH:/usr/local/mysql/bin # source /etc/profile
2.在172.16.22.3主机上安装mysql-5.5.22
(1) .新建用户以安全方式运行进程:
# groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M mysql
(2).安装并初始化mysql-5.5.22
# tar xvf mysql-5.5.22-linux2.6-i686.tar.gz -C /usr/local # cd /usr/local/ # ln -sv mysql-5.5.22-linux2.6-i686 mysql # cd mysql # chown -R mysql:mysql . # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data # chown -R root .
(3).为mysql提供主配置文件:
# cd /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
并修改此文件中thread_concurrency的值为你的CPU个数乘以2(由于只有一颗CPU,所以这里thread_concurrency = 2),另外还需要添加如下行指定mysql数据文件的存放位置:
thread_concurrency = 2
datadir = /usr/local/mysql/data
(4).为mysql提供sysv服务脚本,并添加mysqld至服务列表,而后启动服务测试。
# cd /usr/local/mysql # cp support-files/mysql.server /etc/rc.d/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on # service mysqld restart
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
(5).输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
MANPATH /usr/local/mysql/man
(6).输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
# ln -sv /usr/local/mysql/include /usr/include/mysql
(7)输出mysql的库文件给系统库查找路径, 而后让系统重新载入系统库:
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf
# ldconfig -v
(8).修改PATH环境变量(直接在/etc/profile文件里添加“PATH=$PATH:/usr/local/mysql/bin”即可),让系统可以直接使用mysql的相关命令:
# vim /etc/profile PATH=$PATH:/usr/local/mysql/bin # source /etc/profile
二、配置主从服务器
1.配置主服务器(172.16.22.1):
(1).为主服务器生成CA证书以及mysql的证书
# cd /etc/pki/tls
# vim openssl.cnf
[ CA_default ]
dir = ../../CA # Where everything is kept
把上面”=../../CA”改为”=/etc/pki/CA”
# cd .. # cd CA # mkdir certs crl newcerts # touch index.txt # echo 01 > serial # echo 01 > crlnumber # (umask 077;openssl genrsa 2048 > private/cakey.pem) #生成CA自己的私钥 # openssl req –new –x509 –key private/cakey.pem –out cacert.pem –days 3650
依次输入”CN、Henan、ZZ、M、Tech 、 、 ” 这是CA为自己签发证书
# mkdir /usr/local/ssl # cd /usr/local/ssl # (umask 077;openssl genrsa 1024 > server-key.key) #生成mysql的私钥 # openssl rsa –in server-key.key –pubout > server-cert.pem #生成mysql的公钥
(1).查看/etc/my.cnf配置文件中是否启动二进制日志:
log-bin=mysql-bin (默认情况下都已经开启,此时不需要做修改)
并在mysql段增加如下三项:
[mysqld]
ssl-ca=/etc/pki/CA/cacert.pem
ssl-cert=/usr/local/ssl/server-cert.pem
ssl-key=/usr/local/ssl/server-key.pem
(2).建立复制权限用户:
# mysql mysql> CREATE USER 'lh'@'172.16.22.2' IDENTIFIED BY '123456'; mysql> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO 'lh'@'172.16.22.2' REQUIRE SSL; mysql> SHOW GRANTS FOR lh@’172.16.22.%’;
2.配置从服务器(172.16.22.3):
(1).编辑/etc/my.cnf配置文件,更改server-id使它和主服务器的server-id不一样,关闭二进制日志并打开中继日志:
# vim /etc/my.cnf
找到server-id,并改为
server-id = 11
找到 log-bin=mysql-bin 并禁用此项(在前面加上“#”即可)
在“#log-bin=mysql-bin”下面增加两项:
relay-log = relay-bin
relay-log-index = relay-bin.index
(2).在从服务器上指定主服务器:
# mysql mysql> CHANGE MASTER TO -> MASTER_HOST=’172.16.22.1’, -> MASTER_USER=’lh’, -> MASTER_PASSWORD=’123456’; -> MASTER_SSL=1, -> MASTER_SSL_CA = 'cacert.pem', -> MASTER_SSL_CAPATH = '/etc/pki/CA', -> MASTER_SSL_CERT = ‘/usr/local/ssl/server-cert.pem', -> MASTER_SSL_KEY = '/usr/local/ssl/server-key.pem'; mysql> START SLAVE; mysql> SHOW SLAVE STATUS\G
说明:由于基于ssl的mysql主从复制作者本人没有亲身实验,所以实验结果未知,如您在实验之后发现问题,请给予留言提示;如您实验没有成功,请给出错误截图;如您实验成功,请给予实验结果的正确截图,谢谢回帖,来到这儿总要留点痕迹吧,O(∩_∩)O哈哈~!
相关文章推荐
- 基于RHEL6.0的mysql服务器复制的主从架构实现
- 基于SSL实现MySQL的加密主从复制
- 基于SSL实现Mysql加密的主从复制配置
- mysql服务器复制的主从架构半同步的实现
- MySQL互为主从模型实现基于SSL复制
- mysql基于SSL实现主从复制
- 基于SSL实现MySQL的加密主从复制
- 红帽6.4 64位上实现mysql5.6的主从复制、基于GTID复制、半同步、ssl加密复制以及读写分离 推荐
- 基于SSL实现MySQL的加密主从复制
- 基于SSL实现MySQL的加密主从复制
- MySQL互为主从模型实现基于SSL复制 推荐
- 基于SSL实现MySQL主从复制
- 教你构建MySQL主从结构,实现基于SSL加密的主从同步机制。
- 基于RHEL6.0的mysql服务器复制的主主架构实现
- MySQL(十五)之基于ssl加密搭建含有gtid特性的MySQL主从复制
- 如何实现mysql主从服务器的半同步复制
- 分布式架构高可用架构篇_08_MyCat在MySQL主从复制基础上实现读写分离
- 使用MySQL主从服务器配置实现双机热备
- Mysql实现企业级数据库主从复制架构实战
- 基于 EntityFramework 的数据库主从读写分离架构(1) - 原理概述和基本功能实现