基于SSL实现MySQL的加密主从复制

原创作品,允许转载,转载时请务必以超链接形式标明文章  原始出处 、作者信息和本声明。否则将追究法律责任。 http://laoguang.blog.51cto.com/6013350/1079787

大家都知道MySQL的主从复制是明文传输的,这对一些特殊业务来说是不允许的,下面来尝试构建基于SSL的主从复制

环境:RHEL5.8 SELinux关闭,iptables关闭,MySQL 5.5.28-i686 tar包初始化安装(非编译)
规划:
  
  
  1. master: 172.16.1.18  master.laoguang.me 
  2. slave:  172.16.1.19  slave.laoguang.me 
准备工作:hostname与规划一致,配置/etc/hosts做好解析,时间要同步,过程不再赘述,见 http://laoguang.blog.51cto.com/6013350/1073891,mysql安装见 http://laoguang.blog.51cto.com/6013350/1039208,数据目录为/data/mydata
一.在master上配置CA服务器,并为master,slave颁发证书
1.1 master建立CA服务器,过程见 http://laoguang.blog.51cto.com/6013350/1035608
1.2 master的MySQL证书申请
   
   
  1. mkdir /data/mydata/ssl 
  2. cd /data/mydata/ssl 
  3. openssl genrsa 1024 > mysql.key 
  4. openssl req -new -key mysql.key -out mysql.csr -days 3650
  5. ##接下来的输入与建立CA时的一致,common name为master.laoguang.me 
  6. openssl ca openssl ca -in mysql.csr -out mysql.crt ##为MySQL签证 
  7. cp /etc/pki/CA/cacert.pem .  ##将CA的证书也拷过来 
  8. chown mysql:mysql * 
  9. chmod 600 * 
1.3 slave上申请证书
   
   
  1. mkdir /data/mydata/ssl 
  2. cd /data/mydata/ssl 
  3. openssl genrsa 1024 > mysql.key 
  4. openssl req -new -key mysql.key -out mysql.csr -days 3650
  5. ##接下来的输入与建立CA时的一致,common name为slave.laoguang.me 
  6. scp mysql.csr master:/root 
1.4 master上为slave签发
   
   
  1. cd /root 
  2. openssl ca -in mysql.csr -out mysql.crt 
  3. scp mysql.crt slave:/data/mydata/ssl 
  4. scp /etc/pki/CA/cacert.pem slave:/data/mydata/ssl 
1.5 slave上更改权限与属主
   
   
  1. chown mysql:mysql mysql.* 
  2. chmod 600 mysql.* 
二.Master上编缉/etc/my.cnf启用ssl, 并设置主从
2.1 修改/etc/my.cnf
   
   
  1. [mysqld] 
  2. log-bin=mysql-bin 
  3. sync_binlog     = 1                  ##二进制日志 
  4. server-id       = 1                  ##此id必须全局唯一 
  5. innodb_flush_log_at_trx_commit=1    ##每秒将事务日志立刻刷写到磁盘 
  6. ssl                     ##启用ssl默认是不开启的,mysql中show variables like '%ssl%'查看 
  7. ssl_ca =/data/mydata/ssl/cacert.pem  ##ca文件的位置 
  8. ssl_cert= /data/mydata/ssl/mysql.crt ##证书文件的位置 
  9. ssl_key = /data/mydata/ssl/mysql.key ##私钥文件的位置 
2.2 启动mysql,并查看ssl信息
   
   
  1. service mysqld start 
  2. mysql 
  3. mysql> show variables like '%ssl%'; 
  4. +---------------+-----------------------------+ 
  5. | Variable_name | Value                       | 
  6. +---------------+-----------------------------+ 
  7. | have_openssl  | YES                         | 
  8. | have_ssl      | YES                         | 
  9. | ssl_ca        | /data/mydata/ssl/cacert.pem | 
  10. | ssl_capath    |                             | 
  11. | ssl_cert      | /data/mydata/ssl/mysql.crt  | 
  12. | ssl_cipher    |                             | 
  13. | ssl_key       | /data/mydata/ssl/mysql.key  | 
  14. +---------------+-----------------------------+ 
2.3 为同步建立一最小权限账户,并要求ssl
   
   
  1. mysql> create user 'backup_ssl'@'172.16.1.19' identified by 'redhat'; 
  2. mysql> revoke all privileges,grant option from 'backup_ssl'@'172.16.1.19'; 
  3. mysql> grant replication slave,replication client on *.* to 'backup_ssl'@'172.16.1.19' require ssl; 
  4. mysql> flush privileges; 
三.Slave上编缉/etc/my.cnf,启用ssl,并设置主从
3.1 编缉/etc/my.cnf
   
   
  1. [mysqld] 
  2. server-id       = 2                  ##此id必须全局唯一 
    ##log-bin = mysql-bin ##注释掉,从服务器不需要二进制日志
  3. relay-log = mysql-ralay              ##中继日志 
  4. relay-log-index = mysql-ralay.index  ##中继目录 
  5. read-only = 1 ##从服务器只读
  6. ssl                          ##启用ssl默认是不开启的,mysql中show variables like '%ssl%'查看 
  7. ssl_ca =/data/mydata/ssl/cacert.pem  ##ca文件的位置 
  8. ssl_cert= /data/mydata/ssl/mysql.crt ##证书文件的位置 
  9. ssl_key = /data/mydata/ssl/mysql.key ##私钥文件的位置 
3.2 启用mysqld并查看ssl相关信息
   
   
  1. servie mysqld start 
  2. mysql> show variables like '%ssl%'; 
  3. +---------------+-----------------------------+ 
  4. | Variable_name | Value                       | 
  5. +---------------+-----------------------------+ 
  6. | have_openssl  | YES                         | 
  7. | have_ssl      | YES                         | 
  8. | ssl_ca        | /data/mydata/ssl/cacert.pem | 
  9. | ssl_capath    |                             | 
  10. | ssl_cert      | /data/mydata/ssl/mysql.crt  | 
  11. | ssl_cipher    |                             | 
  12. | ssl_key       | /data/mydata/ssl/mysql.key  | 
  13. +---------------+-----------------------------+ 
3.3 启动slave同步进程,连接主服务器
   
   
  1. mysql> change master to  
  2.     -> master_host='172.16.1.18'
  3.     -> master_user='backup_ssl'
  4.     -> master_password='redhat'
  5.     -> master_log_file='mysql-bin.000001'
  6.     -> master_ssl=1
  7.     -> master_ssl_ca='/data/mydata/ssl/cacert.pem'
  8.     -> master_ssl_cert='/data/mydata/ssl/mysql.crt'
  9.     -> master_ssl_key='/data/mydata/ssl/mysql.key'
  10. mysql> start slave 
  11. mysql> show slave status\G; ##查看slave状态 
关注以下参数:
   
   
  1. Slave_IO_Running: Yes      ##IOthread是否运行,如果为No代表slave运行不正常 
  2. Slave_SQL_Running: Yes     ##SQLthread是否运行,如果为No代表slave运行不正常 
  3. Master_SSL_CA_File: /data/mydata/ssl/cacert.pem  ##是否启用了ssl 
  4. Master_SSL_Cert: /data/mydata/ssl/mysql.crt 
  5. Master_SSL_Key: /data/mydata/ssl/mysql.key 
  6. Master_Log_File: mysql-bin.000023                ##最后接收的主服务器的二进制 
  7. Exec_Master_Log_Pos: 1087                        ##最后执行的位置,查看master中是不是该位置 
  8. Last_IO_Errno: 0                                 ##最后一次IOthread有没有报错 
如果与上图累似,slave基本正常,下面测试
四.测试
4.1 主服务器上建立一数据库
   
   
  1. mysql> create database testssl; 
4.2 从服务器上查看有没有同步过去
   
   
  1. mysql> show databases; 
如果同步成功,说明没有错误
4.3 从服务器mysql基于ssl连接主服务器,查看连接状态是否加密
   
   
  1. mysql -ubackup_ssl -predhat -h172.16.1.18 --ssl-cert=/data/mydata/ssl/mysql.crt \
  2. --ssl-key=/data/mydata/ssl/mysql.key 
查看连接状态
   
   
  1. mysql> status; 
  2. Current user:       backup_ssl@slave.laoguang.me 
  3. SSL:            Cipher in use is DHE-RSA-AES256-SHA 
由此可知连接是加密的,可以用tcpdump抓包测试
到此基于SSL的mysql主从同步构建完毕,如果你的从服务器是新加的,先将主服务器最近一次的完整备份恢复到从服务器,并从同步完整备份后的二进制日志,即change master时添加master_log_op=n, n代表完整备份后的二进制位置,其它的基本一致。
 
后记:今天尝试只给slave签发证书,master拥有有CA的证书,理论上应该能成功的,不过就是连接不上,所以暂时放弃,然后尝试master的证书名字为master.crt,slave的证书为slave.crt结果也连不上,后来google,把master与slave的证书,私钥都叫mysql.crt,mysql.key才得以完成,有了解的人说明一下,单证书为何不行,两个证书名称不一致也不行在原因,感谢!
 

本文出自 “Free Linux,Share Linux” 博客,请务必保留此出处http://laoguang.blog.51cto.com/6013350/1079787


 为了方便大家阅读,快速找到对自己有用的资料,先讲明我做此实验所用的硬件环境,和所使用的软件版本,同时中间也列出了试验中遇到的问题,及个人的解决方法,希望对大家有所帮助,同时也希望留下你的宝贵意见和建议。

   实验环境 :

      linux-2.6.18-308.el5

     mysql-5.5.24-linux2.6-i686.tar.gz 编译安装好的 

  实验拓扑图:

实验思路:

         1、主从服务器的基本设置及主从复制,先确保简单的主从复制没有问题

         2、准备证书和私钥

         3、配置基于ssl的主从复制

具体操作步骤:

一、主从服务器的基本设置及简单的主从复制

     1、master的配置:

  
  
  1. mysql> grant replication slave,replication client on *.* to
  2.  'slave'@'172.16.2.2' identified by 'redhat'; 授权用户 
  3. mysql> flush privileges; 
  4. mysql> show master status;  
  5. +------------------+----------+--------------+------------------+ 
  6. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
  7. +------------------+----------+--------------+------------------+ 
  8. mysql-bin.000008 |      353 |      这两个值需要记着  
  9. +------------------+----------+--------------+------------------+ 
  10. 1 row in set (0.00 sec)  

      2、slave的配置:

  
  
  1. # vim /etc/my.cnf  
  2.     server-id       = 12     修改server-id 只要两个服务器不一样  
  3.     relay-log=mysql-relay     开启中继日志  
  4. # service mysqld restart    修改配置文件 需要重启服务  
  5. mysql> change master to master_host='172.16.2.1',连入mysql 修改参数
  6.         -> master_user='slave',                      
  7.         -> master_password='redhat'
  8.         -> master_log_file='mysql-bin.000008',  
  9.         -> master_log_pos=353;      这些参数都要和master上的对应  
  10.     Query OK, 0 rows affected (0.27 sec)  
  11.  
  12.   注意:5.5以后必须使用命令 不可以写入配置文件。 

     注:此时如果出现一下类似错误,很可能就是你的主服务器版本高于从服务器,配置主从服务器,主服务器的版本不能高于从服务器的。

  
  
  1. ERROR 1201 (HY000): Could not initialize master info structure;
  2.  more error messages can be found in the MySQL error log 

 

  3、启动slave 前提必须是上面的命令执行成功

  
  
  1. mysql> start slave;    启动slave  
  2.     Query OK, 0 rows affected (0.07 sec)     
  3. mysql> show slave status\G 
  4. *************************** 1. row *************************** 
  5.              Slave_IO_State: Waiting for master to send event 
  6.                       Master_Host: 172.16.2.1 
  7.                       Master_User: slave 
  8.                       Master_Port: 3306 
  9.                     Connect_Retry: 60 
  10.                   Master_Log_File: mysql-bin.000008 
  11.               Read_Master_Log_Pos: 353 
  12.                    Relay_Log_File: mysql-relay.000002 
  13.                     Relay_Log_Pos: 253 
  14.             Relay_Master_Log_File: mysql-bin.000008 
  15.                  Slave_IO_Running: Yes 
  16.                 Slave_SQL_Running: Yes 这两项都为yes 才说明启动成功了  
  17.                   Replicate_Do_DB:  
  18.               Replicate_Ignore_DB:  
  19.                Replicate_Do_Table:  
  20.            Replicate_Ignore_Table:  
  21.           Replicate_Wild_Do_Table:  
  22.       Replicate_Wild_Ignore_Table:  
  23.                        Last_Errno: 0 
  24.                        Last_Error:  
  25.                      Skip_Counter: 0 
  26.               Exec_Master_Log_Pos: 353 
  27.                   Relay_Log_Space: 405 
  28.                   Until_Condition: None 
  29.                    Until_Log_File:  
  30.                     Until_Log_Pos: 0 
  31.                Master_SSL_Allowed: No 
  32.                Master_SSL_CA_File:  
  33.                Master_SSL_CA_Path:  
  34.                   Master_SSL_Cert:  
  35.                 Master_SSL_Cipher:  
  36.                    Master_SSL_Key:  
  37.             Seconds_Behind_Master: 0 
  38.     Master_SSL_Verify_Server_Cert: No 
  39.                     Last_IO_Errno: 0 
  40.                     Last_IO_Error: 这里不显示信息表示没有错误  
  41.                    Last_SQL_Errno: 0 
  42.                    Last_SQL_Error:  
  43.       Replicate_Ignore_Server_Ids:  
  44.                  Master_Server_Id: 12 
  45.     1 row in set (0.00 sec) 

    4、此时一个简单的主从复制就做好了,可以测试一下,在主服务器上创建数据库,到从服务器上查看。但是此刻如果你在从服务器上写入数据,也是可以的 ,但主服务器不会到从服务器上复制数据,这样就导致了主从的数据不一样,所以我们要在从服务器上修改一个参数,让从服务器只读不可以写。

    mysql> show global variables like 'read_only';

| read_only     | OFF   | 默认是关闭的 

     mysql>  set global read_only=1; 设置为只读。 也可以写入配置文件中 

  建议:如果在现实环境中,很可能是主服务器运行很长时间了,才创建从服务器,此时开启从服务器就需要同步很长时间,我们可以先把主服务器备份一下,把数据导入到从服务器,在开启从服务器。

 二、准备证书和私钥 

   1、在master上配置CA服务器

  
  
  1. #vim /etc/pki/tls/openssl.cnf  
  2. 将  dir             = ../../CA 
  3. 修改为dir             = /etc/pki/CA 
  4. #(umask 077;openssl genrsa 2048 > private/cakey.pem) 
  5. #openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650 
  6. #mkdir certs crl newcerts 
  7. #touch index.txt 
  8. #echo 01 > serial 

    2、为mysql准备私钥和证书

     在主服务器上:

  
  
  1. #mkdir /usr/local/mysql/ssl
  2. #cd ssl/ 
  3. #(umask 077;openssl genrsa 1024 > mysql.key) 
  4. #openssl req -new -key mysql.key -out mysql.csr 
  5. #openssl ca -in mysql.csr -out mysql.crt 
  6. #cp /etc/pki/CA/cacert.pem /usr/local/mysql/ssl/ 
  7. #chown -R mysql.mysql ssl/  一定要记得修改属主和属组  

     在从服务器上:

  
  
  1. #mkdir /usr/local/mysql/ssl
  2. #chown -R mysql.mysql ssl/
  3. #cd ssl/ 
  4. #(umask 077;openssl genrsa 1024 > mysql.key) 
  5. #openssl req -new -key mysql.key -out mysql.csr 
  6. #scp ./mysql.csr node1:/root  把证书申请传到CA服务器上

     在master为slave签署证书

  
  
  1. #openssl ca -in mysql.csr -out mysql.crt 
  2. #scp ./mysql.crt node2:/usr/local/mysql/ssl 
  3. #cd /etc/pki/CA 
  4. #scp ./cacert.pem node2:/usr/local/mysql/ssl 

   注: node1 :172.16.2.1 node2: 172.16.2.2

到此证书和私钥我们都准备好了,为了下面的实验顺利,我们最好每做一步都验证一下,这样也好排错。

 确保主从服务器上都有以下文件,及属主和属组 都正确。

路径可以自己定义,只要和后面的保持一致就可以 

  
  
  1. [root@node1 ssl]# ll 
  2. total 16 
  3. -rw-r--r-- 1 mysql mysql 1468 Aug  7 10:23 cacert.pem 
  4. -rw-r--r-- 1 mysql mysql 3682 Aug  7 10:23 mysql.crt 
  5. -rw-r--r-- 1 mysql mysql  643 Aug  7 10:22 mysql.csr 
  6. -rw------- 1 mysql mysql  887 Aug  7 10:21 mysql.key 
  7. [root@node1 ssl]# pwd 
  8. /usr/local/mysql/ssl 

三、配置基于ssl 的主从复制 

   1、在主从服务器上都开启ssl功能:在主从服务器上都操作   

  
  
  1. mysql> show variables like '%ssl%'; 
  2. +---------------+----------+ 
  3. | Variable_name | Value    | 
  4. +---------------+----------+ 
  5. have_openssl  | DISABLED |  
  6. | have_ssl      | DISABLED |  默认是disabled 关闭的 
  7. #vim /etc/my.cnf 
  8. 在[mysqld]段,添加 
  9. ssl                    #表示开启mysql的ssl功能 
  10. # service mysqld restart          一定要重启服务 
  11. mysql> show variables like '%ssl%'; 
  12. +---------------+-------+ 
  13. | Variable_name | Value | 
  14. +---------------+-------+ 
  15. | have_openssl  | YES   | 
  16. | have_ssl      | YES   |  验证一下 为yes 表示启动了  
  17. 注: 在两台服务器上做同样的操作,且确保两台都启动了

     2、配置ssl参数 :(在主从服务器上都操作 )

  
  
  1. #vim /etc/my.cnf    在之间添加的ssl下面添加以下内容: 
  2. ssl-ca=/usr/local/mysql/ssl/cacert.pem 
  3. ssl-cert=/usr/local/mysql/ssl/mysql.crt 
  4. ssl-key=/usr/local/mysql/ssl/mysql.key 
  5. 注:  这里使用绝对路径和前面你放置证书和私钥的位置保持一致  

      验证配置

  
  
  1. # service mysqld restart 每修改一次配置文件都要重启服务  
  2. mysql> show variables like '%ssl%'; 
  3. +---------------+---------------------------------+ 
  4. | Variable_name | Value                           | 
  5. +---------------+---------------------------------+ 
  6. | have_openssl  | YES                             | 
  7. | have_ssl      | YES                             | 
  8. | ssl_ca        | /usr/local/mysql/ssl/cacert.pem | 
  9. | ssl_capath    |                                 | 
  10. | ssl_cert      | /usr/local/mysql/ssl/mysql.crt  | 
  11. | ssl_cipher    |                                 | 
  12. | ssl_key       | /usr/local/mysql/ssl/mysql.key  | 
  13. +---------------+---------------------------------+ 
  14. 7 rows in set (0.09 sec) 

  3、在master上:记录主服务器的二进制文件及时间,授权用户

  
  
  1. mysql> show master status; 
  2. +------------------+----------+--------------+------------------+ 
  3. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
  4. +------------------+----------+--------------+------------------+ 
  5. | mysql-bin.000007 |      107 |              |                  | 
  6. +------------------+----------+--------------+------------------+ 
  7. 1 row in set (0.00 sec) 
  8. mysql> grant replication slave,replication client on *.* to
  9.  'slave'@'172.16.2.2' identified by 'redhat' require ssl
  10. Query OK, 0 rows affected (0.04 sec) 
  11. require ssl 只能ssl认证才可以复制

    4、 在slave 上修改参数,启动slave 

  
  
  1. mysql> change master to  
  2.       master_host='172.16.2.1'
  3.       master_user='slave',  
  4.       master_password='redhat',  
  5.       master_log_file='mysql-bin.000007'
  6.       master_log_pos=107,  和master的对应
  7.       master_ssl=1,              
  8.  master_ssl_ca='/usr/local/mysql/ssl/cacert.pem',
  9.     master_ssl_capath='/usr/local/mysql/ssl',
  10.  master_ssl_cert='/usr/local/mysql/ssl/mysql.crt'
  11. master_ssl_key='/usr/local/mysql/ssl/mysql.key'
  12. mysql> start slave; 
  13.     Query OK, 0 rows affected (0.01 sec) 
  14. mysql> show slave status \G 
  15. *************************** 1. row *************************** 
  16.                    Slave_IO_State: Waiting for master to send event  
  17.                       Master_Host: 172.16.2.1 
  18.                       Master_User: slave 
  19.                       Master_Port: 3306 
  20.                     Connect_Retry: 60 
  21.                   Master_Log_File: mysql-bin.000007 
  22.               Read_Master_Log_Pos: 107 
  23.                    Relay_Log_File: mysql-relay.000002 
  24.                     Relay_Log_Pos: 253 
  25.             Relay_Master_Log_File: mysql-bin.000007 
  26.                  Slave_IO_Running: Yes 
  27.                 Slave_SQL_Running: Yes 
  28.                   Replicate_Do_DB:  
  29.               Replicate_Ignore_DB:  
  30.                Replicate_Do_Table:  
  31.            Replicate_Ignore_Table:  
  32.           Replicate_Wild_Do_Table:  
  33.       Replicate_Wild_Ignore_Table:  
  34.                        Last_Errno: 0 
  35.                        Last_Error:  
  36.                      Skip_Counter: 0 
  37.               Exec_Master_Log_Pos: 107 
  38.                   Relay_Log_Space: 405 
  39.                   Until_Condition: None 
  40.                    Until_Log_File:  
  41.                     Until_Log_Pos: 0 
  42.                Master_SSL_Allowed: Yes 
  43.                Master_SSL_CA_File: /usr/local/mysql/ssl/cacert.pem 
  44.                Master_SSL_CA_Path: /usr/local/mysql/ssl 
  45.                   Master_SSL_Cert: /usr/local/mysql/ssl/mysql.crt 
  46.                 Master_SSL_Cipher:  
  47.                    Master_SSL_Key: /usr/local/mysql/ssl/mysql.key 
  48.             Seconds_Behind_Master: 0 
  49.     Master_SSL_Verify_Server_Cert: No 
  50.                     Last_IO_Errno: 0 
  51.                     Last_IO_Error:  
  52.                    Last_SQL_Errno: 0 
  53.                    Last_SQL_Error:  
  54.       Replicate_Ignore_Server_Ids:  
  55.                  Master_Server_Id: 1 
  56.     1 row in set (0.00 sec) 

  1. Slave_IO_Running: Yes 
  2. Slave_SQL_Running: Yes
  3. Master_SSL_Allowed: Yes  三个都输出为yes 才表明配置成功

注:出现的错误:

  
  
  1. Slave_IO_State: Connecting to master    
  2. Slave_IO_Running: Connecting  一直显示 正在连接   
  3. Slave_SQL_Running: Yes 
  4. Last_IO_Error: error connecting to master 'slave@172.16.2.1:3306' - retry-time: 60  retries: 86400 
  5. 问题原因:两个服务器的时间不一致,同步一下时间就OK,排查一个上午原来就是这的原因,让我很是郁闷 

 此时基于ssl的mysql的主从复制配置成功 

四、测试 

   在slave服务器上:

  
  
  1. # mysql -uslave -h172.16.2.1 -predhat  
  2. --sslca=/usr/local/mysql/ssl/cacert.pem 
  3.  --ssl-cert=/usr/local/mysql/ssl/mysql.crt 
  4.  --ssl-key=/usr/local/mysql/ssl/mysql.key  这是一行命令 连接master mysql 
  5. mysql> \s  显示信息  
  6.     -------------- 
  7.     mysql  Ver 14.14 Distrib 5.5.24, for linux2.6 (i686) using readline 5.1 
  8.      
  9.     Connection id:      5 
  10.     Current database:    
  11.     Current user:       slave@node2.magedu.com 
  12.     SSL:            Cipher in use is DHE-RSA-AES256-SHA 
  13.     Current pager:      stdout 
  14.     Using outfile:      '' 
  15.     Using delimiter:    ; 
  16.     Server version:     5.5.24-log MySQL Community Server (GPL) 
  17.     Protocol version:   10 
  18.     Connection:     172.16.2.1 via TCP/IP 
  19.     Server characterset:    latin1 
  20.     Db     characterset:    latin1 
  21.     Client characterset:    utf8 
  22.     Conn.  characterset:    utf8 
  23.     TCP port:       3306 
  24.     Uptime:         14 min 6 sec 
  25.      
  26.     Threads: 3  Questions: 13  Slow queries: 0  Opens: 33  Flush tables: 1  Open tables: 26  Queries per second avg: 0.015 
  27.     -------------- 

      SSL:            Cipher in use is DHE-RSA-AES256-SHA 

     说明连接是加密的  

     如果显示 :SSL: Not in use 则连接没有加密。

到此基于ssl的mysql主从复制就配置好了,如果要配置主主复制的只需要在两台服务器上做同样的操作就可以了。

   遗留问题:由于SSL相关的配置写进了配置文件,则默认是加密连接的。那要取消加密连接,怎么办?  --skip-ssl 怎么用?希望大家多提宝贵意见,留作下次分析吧。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值