广告
返回顶部
首页 > 资讯 > 数据库 >怎么使用SSL连接到远程MySQL服务器
  • 714
分享到

怎么使用SSL连接到远程MySQL服务器

sslmysql服务器 2023-02-14 15:02:01 714人浏览 独家记忆
摘要

这篇文章主要介绍了怎么使用SSL连接到远程Mysql服务器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SSL连接到远程mysql服务器文章都会有所收获,下面我们一起来

这篇文章主要介绍了怎么使用SSL连接到远程Mysql服务器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SSL连接到远程mysql服务器文章都会有所收获,下面我们一起来看看吧。

先决条件 (Prerequisite)

对于本文,需要安装两个linux ubuntu 18.04实例。

在其中一台Ubuntu计算机上,使用“ 如何在Ubuntu 18.04上安装Mysql”页面中的指南安装MySQL并配置root用户。

在第二台计算机上,使用以下命令安装MySQL客户端:

sudo apt install mysql-client

否则,当尝试连接到远程MySQL服务器时,您将收到以下消息:

sudo: mysql: command not found

怎么使用SSL连接到远程MySQL服务器      

在本文中,MySQL服务器所在的计算机的名称将称为SSLServer1 ,从中我们将建立与MySQL服务器的安全SSL连接的计算机的名称将称为SSLServer2 。

检查SSL状态 (Checking status of SSL)

因此,让我们开始为SSLServer1计算机上MySQL服务器配置SSL。 首先,让我们检查远程MySQL服务器实例上SSL的当前状态。

使用以下命令登录到MySQL实例:

mysql -u root -p -h 127.0.0.1

怎么使用SSL连接到远程MySQL服务器      

输入root用户的密码,然后按键盘上的Enter键。

登录后,键入并执行以下命令:

SHOW VARIABLES LIKE ‘%ssl%’;

显示变量,例如'%ssl%';

根据计算机上安装MySQL版本,您可以获得不同的结果。 如果运行的是MySQL服务器5.7.27及以下版本,则可能会得到以下结果:

怎么使用SSL连接到远程MySQL服务器      

怎么使用SSL连接到远程MySQL服务器      

可以看出,禁用了have_openssl和have_ssl变量。 要确认当前连接未使用SSL,请执行以下操作:

\s
\ s
or

要么状态

怎么使用SSL连接到远程MySQL服务器      

输出结果将类似于以下内容:

————–
mysql Ver 14.14 Distrib 5.7.29, for Linux (x86_64) using EditLine wrapper
Connection id: 3
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ”
Using delimiter: ;
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)
Protocol version: 10
Connection: 127.0.0.1 via tcp/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
TCP port: 3306
Uptime: 10 min 10 sec
Threads: 1 Questions: 6 Slow queries: 0 Opens: 106 Flush tables: 1 Open tables: 99 Queries per second avg: 0.009
————–
——————
适用于Linux(x86_64)的mysql Ver 14.14 Distrib 5.7.29,使用EditLine包装器
连接ID:3
当前数据库
当前用户:root @ localhost
SSL:未使用
当前寻呼机:标准输出
使用outfile:”
使用定界符:;
服务器版本:5.7.29-0ubuntu0.18.04.1(Ubuntu)
协议版本:10
连接:通过TCP / IP的127.0.0.1
服务器字符集:latin1
DB字符集:latin1
客户端特征集:utf8
康涅狄格州字符集:utf8
TCP端口:3306
正常运行时间:10分钟10秒
线程:1问题:6慢查询:0打开:106刷新表:1打开表:每秒平均查询99次:0.009
——————

从上面可以看出,该连接未使用SSL。

确定当前与MySQL服务器的连接是否使用加密的另一种方法是检查Ssl_cipher状态变量的会话值:

SHOW SESSION STATUS LIKE ‘Ssl_cipher’;

显示会话状态,例如“ Ssl_cipher”;

如果该值为空,则表明当前连接未使用加密:

怎么使用SSL连接到远程MySQL服务器      

在当前连接使用加密的情况下,该值将不会为空,如下所示:

怎么使用SSL连接到远程MySQL服务器         

  • 注意:我使用的是MySQL 5.7.29版本,默认情况下启用了SSL,但在此示例中,我通过修改my.cnf文件以显示SSL的禁用状态来禁用 SSL:

怎么使用SSL连接到远程MySQL服务器      

在此配置文件中,我输入了以下命令来禁用SSL:

skip_ssl
skip_ssl

怎么使用SSL连接到远程MySQL服务器      

要启用SSL并生成适当的证书和密钥文件,可以使用mysql_ssl_rsa_setup实用程序:

sudo mysql_ssl_rsa_setup –uid=mysql
sudo mysql_ssl_rsa_setup –uid = mysql

默认情况下,MySQL在以下位置存储SSL证书:

 / var / lib / mysql

让我们通过执行以下命令进行检查:

sudo find /var/lib/mysql/ -name ‘*.pem’

怎么使用SSL连接到远程MySQL服务器      

但是,如果您安装了MySQL 5.7.28及更高版本,则将在/ var / lib / mysql位置上自动生成SSL认证,并在启动MySQL时启用SSL加密:

怎么使用SSL连接到远程MySQL服务器      

怎么使用SSL连接到远程MySQL服务器      

配置远程MySQL服务器 (Configuring remote MySQL Server)

既然我们已经启用了SSL,那么MySQL配置的下一步就是启用(允许)远程连接。 默认情况下,MySQL配置为侦听来自其安装机器的连接,并且仅接受来自本地主机 AKA 127.0.0.1 IP地址的连接。

如果现在尝试从客户端计算机(SSLServer2)连接到位于SSLServer1计算机上MySQL,我们可能会收到以下错误消息:

ERROR 2003 (HY000): Can’t connect to MySQL server on (111)

错误2003(HY000):无法连接到(111)上MySQL服务器

怎么使用SSL连接到远程MySQL服务器      

要允许从任何远程IP地址连接到MySQL服务器,请在MySQL配置文件/etc/mysql/my.cnf中添加以下内容:

怎么使用SSL连接到远程MySQL服务器      

现在,重新启动MySQL服务,以使更改生效:

怎么使用SSL连接到远程MySQL服务器      

当我们再次尝试连接到远程MySQL服务器时,我们将收到一条错误消息:

怎么使用SSL连接到远程MySQL服务器      

当前,所有MySQL用户都配置为从MySQL服务器本地连接。 要连接到远程MySQL服务器,您将需要使用客户端计算机的IP地址创建一个新用户,在本例中,我们需要SSLServer2计算机的IP地址。

要在终端类型中查看机器的IP地址(SSLServer2),然后执行以下命令:

Ifconfig

怎么使用SSL连接到远程MySQL服务器      

现在,当我们获得所有必要的信息时,让我们通过添加REQUIRE SSL子句,创建一个可以通过安全连接连接到远程MySQL的用户:

CREATE USER ‘SSL_USER’@'
CREATE USER'SSL_USER'@'

创建用户后,让我们授予他访问所有远程MySQL数据库的所有权限。

执行以下命令:

GRANT ALL ON *.* TO ‘SSL_USER’@'

要立即应用这些设置,请执行以下操作:

FLUSH PRIVILEGES;

在SSLServer1计算机上还需要完成的另一件事是将require_secure_transport选项添加到my.cnf文件并将其设置为ON 。

怎么使用SSL连接到远程MySQL服务器      

这要求使用SSL建立所有远程连接。

之后,重新启动MySQL服务,以应用新设置:

sudo service mysql restart

这样,我们就允许SSL_USER从远程位置进行连接。 为了确认,让我们用SSL_USER连接从SSLServer2机。

在SSLServer2计算机上,打开终端并执行以下命令:

mysql -u SSL_USER -p -h

怎么使用SSL连接到远程MySQL服务器      

输入SSL_USER的密码后,您将能够连接到位于SSLServer1机器上的远程MySQL服务器:

怎么使用SSL连接到远程MySQL服务器      

现在,键入\ s确认服务器状态并确认您正在使用安全连接:

怎么使用SSL连接到远程MySQL服务器      

要确认MySQL服务器仅接受安全连接并拒绝不安全,请尝试使用相同的凭据进行连接,但这一次在连接字符串中添加–ssl-mode = disabled命令:

mysql -u SSL_USER -p -h –ssl-mode=disabled

执行后,可能会出现以下错误:

错误1045(28000):用户'SSL_USER'@''SSLServer2_IP'的访问被拒绝(使用密码:是)

怎么使用SSL连接到远程MySQL服务器      

到目前为止,您已经为MySQL服务器设置了由本地生成的证书颁发机构(CA)签名的SSL证书,这足以为传入的连接提供安全的加密。

为了提供SSLServer1和SSLServer2计算机之间的完全信任关系,将从SSLServer1计算机复制带有客户端证书和客户端密钥的CA证书到SSLServer2计算机,还将SSL_USER修改为需要信任证书。

首先在SSLServer2机器上,创建一个文件夹,将在其中放置客户端文件:

mkdir ~/ssl-client

使用SCP或SFTP将传输文件从一台机器安全保护到另一台机器上,或仅使用cat命令从SSLServer1机器上的CA证书 , client-cert.pem和client-key.pem文件中读取和复制内容,然后创建这些文件并将内容粘贴到SSLServer2计算机上:

怎么使用SSL连接到远程MySQL服务器      

复制适当的文件后,更改SSL_USER ,并放置REQUIRE X509子句:

ALTER USER ‘SSL_USER’@'

现在,当使用SSL_USER用户连接到远程MySQL服务器时,必须指定–ssl-key和–ssl-cert选项,也建议这样做,但不需要指定–ssl-ca选项。 如果我们在未指定客户端证书的情况下连接到远程MySQL服务器:

mysql -u SSL_USER1 -p -h

可能会出现以下错误消息:

ERROR 1045 (28000): Access denied for user ‘SSL_USER’@’SLLServer2_IP’ (using passWord: YES)

让我们通过在连接字符串中添加–ssl-ca,–ssl-cert和–ssl-key选项来指定适当的客户端证书,以指向〜/ ssl-client目录下的文件:

mysql -u SSL_USER -p -h SSLServer1_IP –ssl-ca =〜/ ssl-client / ca.pem –ssl-cert =〜/ ssl-client / client-cert.pem

按下Enter键后 ,您应该成功连接到远程MySQL服务器:

怎么使用SSL连接到远程MySQL服务器      

每次要连接到远程MySQL服务器时,使用–ssl-ca,–ssl-cert和–ssl-key选项并输入相关文件的路径是一项整齐且耗时的工作,因此让我们进行优化和改进连接可用性。

在SSLServer2机器中,如果my.cnf文件在以下位置不存在:

  • /etc/my.cnf

  • /etc/mysql/my.cnf


  • /usr/etc/my.cnf


  • ~/.my.cnf


我们可以在主目录中创建一个:

~/.my.cnf:

执行以下命令:

nano ~/.my.cnf

并在.my.cnf文件中粘贴并保存以下内容:

怎么使用SSL连接到远程MySQL服务器      

现在,您可以连接到远程MySQL服务器,而无需在连接字符串中添加–ssl-ca,–ssl-cert和–ssl-key选项:

怎么使用SSL连接到远程MySQL服务器      

关于“怎么使用SSL连接到远程MySQL服务器”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“怎么使用SSL连接到远程MySQL服务器”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: 怎么使用SSL连接到远程MySQL服务器

本文链接: https://www.lsjlt.com/news/196038.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用SSL连接到远程MySQL服务器
    这篇文章主要介绍了怎么使用SSL连接到远程MySQL服务器的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SSL连接到远程MySQL服务器文章都会有所收获,下面我们一起来...
    99+
    2023-02-14
    ssl mysql 服务器
  • Ubuntu上怎么使用SSL远程连接MySQL服务器
    今天小编给大家分享一下Ubuntu上怎么使用SSL远程连接MySQL服务器的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。先决...
    99+
    2023-07-04
  • 使用MobaXterm连接到远程服务器
    仅供参考 文章目录 @[TOC](文章目录) 一、前期准备二、步骤1.点击上册工具栏的Session,在弹出的窗口里选择SSH。2.点击Network settings,再点击中间的jump host。3.在弹出界...
    99+
    2023-08-20
    服务器 ssh
  • xampp怎么连接到mysql服务器
    在xampp连接mysql服务器的方法首先,打开xampp端,进入xampp操作界面;在xampp操作界面中,分别点击Apache与mysql后面的“Start”按钮,进行打开Apache与mysql;Apache与mysql打开后,点击x...
    99+
    2022-10-16
  • win10远程连接云服务器无法连接到服务器
    一、远程连接失败 当使用远程连接云服务器时,如果服务器无法连接,那么就会出现无法连接的情况。这时候我们需要查看是否输入正确的用户名和密码,如果用户名和密码错误,那么就无法连接。如果是密码错误,可以尝试使用管理员账号登录尝试。 二、网络问题...
    99+
    2023-10-28
    服务器 连接到
  • 云服务器怎么远程连接
    要远程连接云服务器,你可以按照以下步骤操作:1. 获取云服务器的IP地址:登录到云服务器提供商的控制台,找到你的云服务器,复制其IP...
    99+
    2023-09-22
    云服务器
  • 怎么远程连接云服务器
    远程连接云服务器可能是您首次尝试远程连接云服务器时遇到的一个挑战。以下是在远程连接云服务器时可能存在的几个常见问题及解决方案的简要说明: 连接失败:在远程访问云服务器时,您可能会遇到连接失败的情况。尝试多次尝试连接并且连接仍未成功,这可...
    99+
    2023-10-26
    服务器
  • 怎么远程连接Linux服务器
    本文小编为大家详细介绍“怎么远程连接Linux服务器”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么远程连接Linux服务器”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、检查是否安装了ftp服务rpm&n...
    99+
    2023-06-28
  • 电脑远程连接云服务器怎么连接
    如果您需要远程连接到云服务器并在其上运行程序,您可以使用以下步骤进行连接: 打开您的浏览器并访问 www.yun.com 域名。这将指示您连接到云服务器。 在云服务器页面上,按照屏幕上的指示输入您的账户信息,例如“admin”或“su”...
    99+
    2023-10-26
    服务器 电脑
  • 远程连接腾讯云服务器怎么连接
    远程连接是指使用虚拟专用网络(VPN)连接腾讯云服务器,实现数据传输和文件共享等功能。要成功连接腾讯云服务器,需要进行以下几个步骤: 第一步:获取VPN配置 要连接腾讯云服务器,需要先进行VPN配置。具体操作步骤如下: 打开浏览器,输入...
    99+
    2023-10-27
    腾讯 服务器
  • 远程连接亚马逊服务器怎么连接
    要远程连接亚马逊服务器,您需要使用远程桌面协议(RDP)连接。以下是连接亚马逊服务器的步骤: 登录您的亚马逊 Web 服务(AWS)控制台。 在控制台中,选择“EC2”服务。 在 EC2 控制台中,选择您要连接的实例。 确认您的实例的安...
    99+
    2023-10-27
    亚马逊 服务器
  • 使用vps远程桌面服务器怎么连接
    使用VPS远程桌面连接需要完成以下几个步骤:1、确认您的VPS服务器已经安装了远程桌面服务(RDP)。2、确认您的本地计算机已经安装...
    99+
    2023-03-19
    vps远程桌面服务器 vps服务器 服务器
  • 如何远程连接到美国服务器
    远程连接到美国服务器的方法:1、使用快捷键【win+R】输入“mstsc”指令打开远程连接窗口;2、输入远程连接的计算机ip,点击连接;3、输入服务商提供的用户名密码连接即可。具体内容如下:1、在win系统操作界面中使用组合键“win+R”...
    99+
    2022-10-07
  • win10远程连接云服务器怎么用
    如果您使用的是Windows操作系统并有网络连接,可以按照以下步骤使用远程连接云服务器: 在Windows系统中搜索远程服务器或服务的名称。你可以通过搜索系统命令(例如“cmd”或“computer”)来找到该服务的相关信息。 在命令行...
    99+
    2023-10-27
    服务器
  • IntelliJ IDEA远程连接Linux服务器、MySQL
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、环境介绍二、操作步骤1.远程连接服务器2.连接远程服务器上的数据库3、使用IntelliJ IDEA远...
    99+
    2023-09-15
    服务器 linux mysql intellij idea
  • 电脑远程连接云服务器怎么连接的
    如果您使用的是Windows操作系统的远程桌面连接功能,可以按照以下步骤在电脑上连接云服务器: 打开“远程桌面连接”应用程序; 在弹出的“远程连接设置”窗口中,选择“允许从其他计算机远程连接到我的计算机”; 按照默认设置,设置您的云服务...
    99+
    2023-10-27
    服务器 电脑
  • 远程连接腾讯云服务器怎么连接的
    具体的操作步骤是:首先下载并安装RDP文件,然后在本地电脑上双击打开RDP文件,点击“连接”后输入Administrator用户密码,即可成功登陆到腾讯云服务器。接着,在本地Windows电脑上登陆,按键盘“Windows+R”,弹出“运行...
    99+
    2023-10-27
    腾讯 服务器
  • Windows云服务器怎么远程连接
    如果您需要远程连接到AliceMind或者其他云服务器,您可以使用以下步骤:打开网络和共享中心 (Network Connectivity and Share Centers)。找到您希望连接到的云服务器的网站。在网站中点击“远程连接”按钮...
    99+
    2023-10-25
    服务器 Windows
  • mac怎么远程连接云服务器
    要远程连接云服务器,可以按照以下步骤进行操作:1. 打开Terminal(终端)应用程序。2. 输入以下命令连接到云服务器(假设云服...
    99+
    2023-09-27
    云服务器 mac
  • 怎么远程连接台湾服务器
    远程连接台湾服务器的方法:1、通过windows操作进行远程连接,点击开始菜单、选择程序、附件、通讯、远程桌面连接,然后输入服务器的IP地址,出现服务器登录界面后,输入用户名和密码即可远程连接;2、使用PCANYWHERE软件进行远...
    99+
    2022-10-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作