MySQL 5.7 have_ssl 的SSL加密方法

MySQL 5.7 have_ssl 的SSL加密方法

MySQL 5.7.6或以上版本

(1)创建证书开启SSL验证

–安装openssl

yum install -y openssl

openssl version

OpenSSL 1.0.1e-fips 11 Feb 2013

–安装证书

/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/data/mysql/mysql3306/data

–修改权限

chown -R mysql:mysql /data/mysql/mysql3306/data

pwd

/data/mysql/mysql3306/data

[root@VM_45_133_centos Wed Jun 28 10:51:22 data]# ll

total 1024072

-rw-r----- 1 mysql mysql 56 Jun 19 17:56 auto.cnf

-rw------- 1 root root 1679 Jun 28 10:48 ca-key.pem

-rw-r–r-- 1 root root 1074 Jun 28 10:48 ca.pem

-rw-r–r-- 1 root root 1078 Jun 28 10:48 client-cert.pem

-rw------- 1 root root 1679 Jun 28 10:48 client-key.pem

-rw-r----- 1 mysql mysql 672 Jun 28 10:47 ib_buffer_pool

-rw-r----- 1 mysql mysql 1048576000 Jun 28 10:47 ibdata1

drwxr-x— 2 mysql mysql 4096 Jun 19 17:57 mysql

drwxr-x— 2 mysql mysql 4096 Jun 19 17:57 performance_schema

-rw------- 1 root root 1679 Jun 28 10:48 private_key.pem

-rw-r–r-- 1 root root 451 Jun 28 10:48 public_key.pem

drwxr-x— 2 mysql mysql 4096 Jun 23 10:48 school

-rw-r–r-- 1 root root 1078 Jun 28 10:48 server-cert.pem

-rw------- 1 root root 1675 Jun 28 10:48 server-key.pem

drwxr-x— 2 mysql mysql 12288 Jun 19 17:57 sys

-rw-r----- 1 mysql mysql 418 Jun 20 14:14 VM_45_133_centos.log

客户端连接需要的证书,当然不用证书也是可以的

-rw-r–r-- 1 root root 1074 Jun 28 10:48 ca.pem

-rw-r–r-- 1 root root 1078 Jun 28 10:48 client-cert.pem

-rw------- 1 root root 1679 Jun 28 10:48 client-key.pem

-rw------- 1 root root 1679 Jun 28 10:48 private_key.pem

服务器上的证书

-rw-r–r-- 1 root root 1074 Jun 28 10:48 ca.pem

-rw------- 1 root root 1679 Jun 28 10:48 ca-key.pem

-rw-r–r-- 1 root root 451 Jun 28 10:48 public_key.pem

-rw-r–r-- 1 root root 1078 Jun 28 10:48 server-cert.pem

-rw------- 1 root root 1675 Jun 28 10:48 server-key.pem

–修改my.cnf

#########SSL#############

ssl-ca = /data/mysql/mysql3306/data/ca.pem

ssl-cert = /data/mysql/mysql3306/data/server-cert.pem

ssl-key = /data/mysql/mysql3306/data/server-key.pem

(2)重启mysql

/etc/init.d/mysql stop

/etc/init.d/mysql start

–查看ssl参数状态,查看have_ssl,为YES,这表示已经开始支持SSL了

show global variables like ‘%ssl%’;

±--------------±-------------------------------------------+

| Variable_name | Value |

±--------------±-------------------------------------------+

| have_openssl | YES |

| have_ssl | YES |

| ssl_ca | /data/mysql/mysql3306/data/ca.pem |

| ssl_capath | |

| ssl_cert | /data/mysql/mysql3306/data/server-cert.pem |

| ssl_cipher | |

| ssl_crl | |

| ssl_crlpath | |

| ssl_key | /data/mysql/mysql3306/data/server-key.pem |

±--------------±-------------------------------------------+

show global status like ‘%ssl%’;

±-------------------------------±-------------------------+

| Variable_name | Value |

±-------------------------------±-------------------------+

| Com_show_processlist | 0 |

| Ssl_accept_renegotiates | 0 |

| Ssl_accepts | 0 |

| Ssl_callback_cache_hits | 0 |

| Ssl_cipher | |

| Ssl_cipher_list | |

| Ssl_client_connects | 0 |

| Ssl_connect_renegotiates | 0 |

| Ssl_ctx_verify_depth | 0 |

| Ssl_ctx_verify_mode | 0 |

| Ssl_default_timeout | 0 |

| Ssl_finished_accepts | 0 |

| Ssl_finished_connects | 0 |

| Ssl_server_not_after | Jun 26 02:48:05 2027 GMT |

| Ssl_server_not_before | Jun 28 02:48:05 2017 GMT |

| Ssl_session_cache_hits | 0 |

| Ssl_session_cache_misses | 0 |

| Ssl_session_cache_mode | Unknown |

| Ssl_session_cache_overflows | 0 |

| Ssl_session_cache_size | 0 |

| Ssl_session_cache_timeouts | 0 |

| Ssl_sessions_reused | 0 |

| Ssl_used_session_cache_entries | 0 |

| Ssl_verify_depth | 0 |

| Ssl_verify_mode | 0 |

| Ssl_version | |

±-------------------------------±-------------------------+

查看SSL的加密方式

show global variables like ‘tls_version’;

±--------------±--------------+

| Variable_name | Value |

±--------------±--------------+

| tls_version | TLSv1,TLSv1.1 |

±--------------±--------------+

(3)配置SSL用户

取消ssl验证

grant all privileges on . to abcssl@‘%’ identified by ‘123456’ require none;

alter user abcssl@‘%’ require none;

–强制ssl验证,即使设置了强制ssl,在登录时候使用–ssl-mode=disable依然可以避开ssl验证

grant all privileges on . to abcssl@‘%’ identified by ‘123465’ require ssl;

alter user abcssl@‘%’ require ssl;

查看是否开启强制用户使用SSL

select user,host,ssl_type,ssl_cipher from mysql.user;

±----------±----------±---------±-----------+

| user | host | ssl_type | ssl_cipher |

±----------±----------±---------±-----------+

| root | % | | |

| mysql.sys | localhost | | |

| abcssl | % | ANY | |

±----------±----------±---------±-----------+

(4)连接数据库的时候,带上SSL

不指定客户端证书方式

5.6

–ssl、–disable-ssl、–skip-ssl:在mysql5.7是将被废弃的选项,将来版本不再支持,建议使用–ssl-mode选项,

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl 默认为1

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=0

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl=1 默认为1

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --disable-ssl

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --skip-ssl

5.7

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=disable

/usr/local/mysql/bin/mysql -uroot -p -h127.0.0.1 --ssl-mode=required 默认required

从另一台机器连接过去也可以ssl加密,表明不需要安装客户端证书的

/usr/local/mysql/bin/mysql -uroot -p -h10.105.45.133 --ssl-mode=required

指定客户端证书方式,5.6的方式,5.7也可以用

/usr/local/mysql/bin/mysql --ssl-ca=/data/mysql/mysql3306/data/ca.pem \

–ssl-cert=/data/mysql/mysql3306/data/client-cert.pem \

–ssl-key=/data/mysql/mysql3306/data/client-key.pem \

-uroot -p -h127.0.0.1

(5)连接验证连接是否用了ssl

\s == status


/usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.7.18, for linux-glibc2.5 (x86_64) using EditLine wrapper 客户端版本

Connection id: 69

Current database:

Current user: root@127.0.0.1

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

Current pager: stdout

Using outfile: ‘’

Using delimiter: ;

Server version: 5.7.18-log MySQL Community Server (GPL)

Protocol version: 10

Connection: 127.0.0.1 via TCP/IP

Server characterset: utf8mb4

Db characterset: utf8mb4

Client characterset: utf8

Conn. characterset: utf8

TCP port: 3306

Uptime: 28 min 14 sec

Threads: 2 Questions: 1755 Slow queries: 0 Opens: 114 Flush tables: 1 Open tables: 102 Queries per second avg: 1.036


JDBC客户端的解决方法

连接字符串url中加入ssl=true或false:

url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL 5.7是一个广泛使用的关系型数据库管理系统,下面是MySQL 5.7维护手册的内容: MySQL 5.7维护手册提供了关于如何维护MySQL数据库的详细信息。手册中包含了许多方面的内容,包括安装、配置、备份和恢复、性能优化、监控和故障排除等。 手册首先介绍了如何安装和配置MySQL数据库。它详细描述了安装过程中的各个步骤,并提供了配置文件的相关指导。此外,手册还介绍了如何升级和卸载MySQL 5.7。 接下来,手册讲解了如何备份和恢复MySQL数据库。它介绍了备份的几种方法,包括物理备份和逻辑备份,并讨论了每种方法的优缺点。手册还解释了如何进行数据恢复,并提供了一些常见问题的解决方案。 性能优化是MySQL数据库维护中的一个重要方面。手册中提供了一些性能优化的技巧和建议,包括优化查询语句、索引优化、参数调整以及缓存设置等。此外,手册还介绍了一些常见的性能问题,并提供了相应的解决方案。 监控是保持MySQL数据库正常运行的关键。手册中列举了一些有效的监控工具和技术,包括使用内置的监控工具、使用第三方监控工具以及编写自定义脚本。手册还介绍了一些常见的故障排除方法,帮助用户解决数据库运行中可能出现的问题。 总而言之,MySQL 5.7维护手册是一个全面的指南,涵盖了安装、配置、备份和恢复、性能优化、监控和故障排除等方面的内容。它为用户提供了解决MySQL数据库相关问题的详细信息和方法。无论是初学者还是有经验的数据库管理员,都可以从中获得帮助。 ### 回答2: MySQL 5.7是一个流行的关系型数据库管理系统,具有强大的功能和灵活性。维护MySQL数据库非常重要,可以保持数据库的性能和稳定性。以下是MySQL 5.7维护手册的一些关键内容: 1.备份和恢复:通过定期备份可以保护数据库免受意外数据丢失的影响。MySQL 5.7提供了多种备份方法,包括物理备份和逻辑备份。通过使用合适的备份和恢复策略,可以确保数据库的完整性和可用性。 2.性能调优:MySQL 5.7提供了一套丰富的性能调优工具和功能,可以帮助提升数据库的响应速度和吞吐量。例如,可以使用Explain来分析查询计划,使用慢查询日志来找出性能问题的根本原因,并使用索引和分区等技术来优化查询性能。 3.安全性管理:MySQL 5.7提供了多种安全功能和选项,用于保护数据库的机密性和完整性。例如,可以使用访问控制列表(ACL)来限制用户对数据库的访问权限,使用SSL/TLS来加密数据传输,以及启用审计日志来跟踪数据库的操作。 4.故障处理和性能监测:MySQL 5.7提供了多种故障处理和性能监测工具,用于检测和处理数据库中的故障,并监测和诊断数据库的性能问题。例如,可以使用MySQL的错误日志来查找和解决故障,使用性能模式和工具来监测数据库的性能指标,并使用监控和警报系统来及时发现和解决潜在的问题。 5.升级和迁移:维护手册还包括了MySQL 5.7的升级和迁移指南。根据具体情况,可以选择在原有的环境中升级MySQL,或者将数据迁移到新的服务器上。无论选择哪种方式,都需要进行适当的规划和测试,以确保平滑和成功地完成升级或迁移过程。 综上所述,MySQL 5.7维护手册涵盖了备份和恢复、性能调优、安全管理、故障处理和性能监测、升级和迁移等关键内容。通过遵循这些指南和最佳实践,可以确保MySQL数据库的正常运行和高效性能。 ### 回答3: MySQL是一种常用的开源关系型数据库管理系统,版本5.7是其较早的一个版本。MySQL 5.7维护手册是为了帮助用户更好地使用和维护这个版本的MySQL数据库而编写的。下面我将用300字中文回答有关MySQL 5.7维护手册的问题。 MySQL 5.7维护手册包含了大量关于MySQL数据库的维护和管理的内容,主要分为以下几个方面: 1. 数据库备份与恢复:介绍了如何进行数据库的备份和恢复操作,以保证数据的安全性和可用性。手册详细说明了备份和恢复的方法,以及如何选择合适的备份策略。 2. 数据库性能优化:手册介绍了各种优化技术和方法,帮助用户改善数据库的性能。这些方法包括如何优化查询语句、配置数据库参数、使用索引和分区等。 3. 数据库安全性:手册详细介绍了如何保护数据库的安全性,包括访问控制、权限管理、数据加密和身份验证等方面的内容。用户可以根据手册提供的指导,加强数据库的安全防护能力。 4. 故障排除和故障恢复:手册提供了针对不同类型故障的排查和恢复方法,帮助用户解决数据库出现的问题。这些问题可能涉及到数据库服务的故障、数据损坏和性能下降等。 5. 高可用和负载均衡:手册介绍了MySQL 5.7的高可用和负载均衡的解决方案,如复制和集群技术。用户可以根据手册提供的步骤和配置进行部署和管理。 总之,MySQL 5.7维护手册是一本很有价值的参考资料,对于使用MySQL 5.7的用户来说,可以帮助他们更好地了解和使用这个版本的数据库。手册内容丰富,涵盖了数据库备份与恢复、性能优化、安全性、故障排除和高可用等方面,提供了详细的操作步骤和建议,对于用户维护和管理MySQL 5.7数据库非常有帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值