首页 / MYSQL / mysql基于SSL实现主从复制
mysql基于SSL实现主从复制
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql基于SSL实现主从复制,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9087字,纯文字阅读大概需要13分钟。
内容图文
#node1和node2操作一样[root@node1~]#systemctl start chronyd.service
#启动服务
node1和node2基于key连接
[root@node1~]#ssh-keygen
[root@node1~]#ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.4.62
#将公钥复制到node2上
node2操作和node1操作相同。
修改hosts文件
node1和node2配置相同
[root@node1~]#vim /etc/hosts
3 192.168.4.61 node1 4 192.168.4.62 node2
确保关闭iptables和selinux
node1和node2安装mariadb数据库
[root@node1~]#yum install -y mariadb-server
[root@node2~]#yum install -y mariadb-server
配置node1为主服务器
[root@node1~]#vim /etc/my.cnf.d/server.cnf
[root@node1~]#systemctl start mariadb
#启动mariadb服务
MariaDB [(none)]> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO ‘joah‘@‘192.168.4.62‘ IDENTIFIED BY ‘123456‘; #对用户授权
查看是否开启二进制日志
MariaDB [(none)]> SHOW VARIABLES LIKE ‘%log%bin%‘;
在node1上二进制日志状态信息
MariaDB [(none)]> SHOW MASTER STATUS;
配置node2从服务器
[root@node2~]#vim /etc/my.cnf.d/server.cnf
[root@node2~]#systemctl start mariadb
#启动mariadb服务
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST=‘192.168.4.61‘,MASTER_USER=‘joah‘,MASTER_PASSWORD=‘123456‘,MASTER_LOG_FILE=‘master-log.000003‘,MASTER_LOG_POS=417; #设置连接主服务器
启动从服务器
MariaDB [(none)]> START SLAVE;
启动IO线程和SQL线程
MariaDB [(none)]> START SLAVE IO_THREAD,SQL_THREAD;
查看从服务器状态
MariaDB [(none)]> START SLAVE IO_THREAD,SQL_THREAD;
如果出现图中红框中的信息说明已经启动成功。
测试是否已经实现主从复制
实现SSL功能
搭建CA服务器
[root@CA/etc/pki/CA]#touch index.txt
[root@CA/etc/pki/CA]#echo 01 > serial
生成key文件
[root@CA/etc/pki/CA]#(umask 077;openssl genrsa -out private/cakey.pem 2048)
生成自签证书
[root@CA/etc/pki/CA]#openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
node1生成证书
[root@node1~]#mkdir /etc/mysql/ssl -pv
[root@node1~]#chown mysql.mysql /etc/mysql/ssl/ -R
[root@node1/etc/mysql/ssl]#(umask 077;openssl genrsa -out master.key 2048)
[root@node1/etc/mysql/ssl]#openssl req -new -key master.key -out master.csr
[root@node1/etc/mysql/ssl]#scp master.csr 192.168.4.63:/etc/pki/CA/newcerts/
[root@CA/etc/pki/CA/newcerts]#openssl ca -in master.csr -out master.crt -days 365
[root@CA/etc/pki/CA/newcerts]#scp master.crt ../cacert.pem 192.168.4.61:/etc/mysql/ssl
[root@node1~]#vim /etc/my.cnf.d/server.cnf
[root@node1~]#systemctl restart mariadb
查看是否开启SSL功能
node2生成证书
[root@node2~]#mkdir /etc/mysql/ssl -pv
[root@node2~]#chown mysql.mysql /etc/mysql/ssl/ -R
[root@node2/etc/mysql/ssl]#(umask 077;openssl genrsa -out slave.key 2048)
[root@node2/etc/mysql/ssl]#openssl req -new -key slave.key -out slave.csr
[root@node2/etc/mysql/ssl]#scp slave.csr 192.168.4.63:/etc/pki/CA/newcerts
[root@CA/etc/pki/CA/newcerts]#openssl ca -in slave.csr -out slave.crt -days 365
[root@CA/etc/pki/CA/newcerts]#scp slave.crt ../cacert.pem 192.168.4.62:/etc/mysql/ssl
[root@node2/etc/mysql/ssl]#vim /etc/my.cnf.d/server.cnf
重启服务
[root@node2/etc/mysql/ssl]#systemctl restart mariadb
基于SSL连接
node1授权
MariaDB [(none)]> GRANT REPLICATION CLIENT,REPLICATION SLAVE ON *.* TO ‘joah‘@‘192.168.4.62‘ IDENTIFIED BY ‘123456‘ REQUIRE SSL;
测试
[root@node2~]#mysql -ujoah -p123456 -h192.168.4.61 --ssl
node2连接主服务器以ssl复制
MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST=‘192.168.4.61‘,MASTER_USER=‘joah‘,MASTER_PASSWORD=‘123456‘,MASTER_LOG_FILE=‘master-log.000008‘,MASTER_LOG_POS=429,MASTER_SSL=1,MASTER_SSL_CA=‘/etc/mysql/ssl/cacert.pem‘,MASTER_SSL_CERT=‘/etc/mysql/ssl/slave.crt‘,MASTER_SSL_KEY=‘/etc/mysql/ssl/slave.key‘; MariaDB [(none)]> START SLAVE; #启动从服务器 MariaDB [(none)]> SHOW SLAVE STATUS\G;
小结
(1)如果你已经正确的添加了证书,但是启动以后还是没有启动SSL功能,有可能没有权限
[root@node2~]#chown mysql.mysql -R /etc/mysql/ssl
(2)如果出现图片中的问题,停止slave即可
(3)每一个过程中都需要验证是否成功然后进行下面的操作。
本文出自 “Joah” 博客,请务必保留此出处http://merit.blog.51cto.com/10757694/1980965
mysql基于SSL实现主从复制
标签:mysql主从复制 ssl ca
本文系统来源:http://merit.blog.51cto.com/10757694/1980965
内容总结
以上是互联网集市为您收集整理的mysql基于SSL实现主从复制全部内容,希望文章能够帮你解决mysql基于SSL实现主从复制所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。