远程连接MySQL数据库

前言

首先我们来说说什么是远程连接MySQL?远程连接MySQL和本地连接MySQL有什么不同?

什么是远程连接MySQL

远程连接MySQL指的是使用MySQL数据库管理系统,通过网络从一台计算机连接到另一台运行MySQL服务器的远程计算机或设备上的MySQL数据库。当你使用远程连接MySQL时,你可以利用MySQL客户端工具(如MySQL命令行客户端、MySQL Workbench等)通过网络连接到托管数据库的远程服务器,然后执行数据库操作,如查询、插入、更新或删除数据等。

远程连接MySQL需要具备以下要素:

  1. MySQL服务器设置允许远程连接:在MySQL服务器配置中,必须允许远程连接。默认情况下,MySQL服务器可能会限制只允许本地连接,需要在配置中设置允许远程连接,并确保网络和防火墙配置允许连接。
  2. 网络连接参数:远程连接需要知道目标MySQL服务器的IP地址、端口号以及有效的凭据(一般是用户名和密码)来进行认证。
  3. MySQL客户端工具:使用支持MySQL协议的客户端工具,例如MySQL命令行客户端、MySQL Workbench、phpMyAdmin等,来建立连接并执行操作。

远程连接和本地连接有什么不同

本地连接MySQL和远程连接MySQL之间的主要区别在于连接的位置和方式:

连接位置

  • 本地连接MySQL指的是在同一台计算机上运行MySQL数据库服务器和连接到该服务器的MySQL客户端。数据库服务器和客户端应用程序都在同一台计算机上,因此连接是针对本地主机上的MySQL服务进行的。
  • 远程连接MySQL是指连接到位于不同计算机或设备上的MySQL数据库服务器。MySQL服务器位于远程位置,连接是通过网络进行的。

方式

  • 本地连接MySQL不涉及网络,因为MySQL服务器和客户端都在同一台计算机上。连接速度通常更快,并且由于没有网络延迟,响应时间更快。
  • 远程连接MySQL涉及通过网络连接到远程主机上的MySQL服务器。由于涉及网络传输,连接速度可能受网络质量和延迟影响,响应时间可能会稍有延迟。

实现远程连接

需要远程连接MySQL数据库时,需要确保MySQL服务器允许远程连接,并且有相应的权限进行连接。接下来我们就一步一步的去开放对应的权限,然后进行数据库的远程连接。

在MySQL服务器上进行设置

确保MySQL服务器允许远程连接

MySQL默认情况下可能不允许远程连接,需要进行配置。在MySQL服务器的配置文件中(通常是 my.cnf 或 my.ini),找到并编辑 bind-address 属性,将其设置为服务器的公共IP地址或者 0.0.0.0(允许所有地址连接)。

bind-address = 0.0.0.0

bind-address 属性用于指定MySQL服务器绑定的网络接口地址。默认情况下,MySQL服务器配置文件中的 bind-address 属性可能设置为 127.0.0.1 或 localhost,这表示MySQL仅监听来自本地主机(即服务器自身)的连接请求,而不接受来自其他主机的连接。如果要允许远程主机连接到MySQL服务器,需要将 bind-address 属性设置为服务器的公共IP地址或 0.0.0.0,以允许所有地址的连接。这样做允许了MySQL服务器监听来自网络上其他设备的连接请求,允许远程连接。

授权远程连接的用户

确保你希望远程连接的用户具有从远程主机连接的权限。在MySQL中,使用如下命令为用户授权:

GRANT ALL PRIVILEGES ON *.* TO '用户名'@'远程主机IP' IDENTIFIED BY '密码' WITH GRANT OPTION;

远程主机IP如果写%,那么所有IP地址都可以连接,可以使用localhost、服务器IP地址、127.0.0.1进行连接;

如果只写localhost,那就只能使用localhost进行连接,写了服务器IP地址,那就只能使用服务器IP地址连接,写了127.0.0.1,那就只能使用127.0.0.1连接;

ALL PRIVILEGES 是MySQL中最高级别的权限之一,赋予用户对所有数据库和表执行任何操作的权限。授予用户 ALL PRIVILEGES 权限将使其具有管理数据库、创建、修改和删除数据库以及对所有表执行各种操作的权限。除了 ALL PRIVILEGES 外,MySQL中还有其他一些权限,这些权限允许用户执行特定类型的操作。以下是一些常见的MySQL权限:

  • SELECT:允许用户查询(检索)表中的数据。
  • INSERT:允许用户向表中插入新数据。
  • UPDATE:允许用户修改表中现有的数据。
  • DELETE:允许用户从表中删除数据。
  • CREATE:允许用户创建新的数据库或表。
  • DROP:允许用户删除数据库或表(慎用)。
  • ALTER:允许用户修改数据库或表的结构。
  • GRANT OPTION:允许用户授予或撤销其他用户的权限(需要有相应的权限才能授予该权限)。

在实际使用中,应根据安全性和实际需要,为用户分配最小必要的权限,以避免给予过多权限导致安全隐患。

刷新权限

授权后需要刷新MySQL权限使其生效。

FLUSH PRIVILEGES;
防火墙设置

确保服务器的防火墙允许MySQL的连接端口(默认端口为3306)通过。要允许Linux系统防火墙通过3306端口进行连接,可以使用 iptables 或者更现代化的工具如 firewalld(在大多数最新的Linux发行版中都有)来配置。

使用 iptables 进行设置:
  1. 检查当前防火墙规则:首先,你可以使用以下命令检查当前的iptables规则,确认3306端口是否已经允许通过:
    sudo iptables -L
  2. 允许端口3306:如果3306端口被阻止了,可以使用以下命令允许该端口通过防火墙:
    sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

这条命令允许TCP流量通过3306端口。

  1. 保存设置:确保保存iptables设置,以便在系统重新启动后规则仍然有效:
    sudo iptables-save > /etc/iptables/rules.v4
使用 firewalld 进行设置:
  1. 检查当前防火墙状态:使用以下命令检查firewalld的状态:
    sudo firewall-cmd --state
  2. 允许端口3306:如果防火墙状态为运行中,并且3306端口被拒绝,可以使用以下命令允许该端口通过防火墙:
    sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent

这将永久地允许TCP流量通过3306端口。

  1. 重新加载防火墙设置:重新加载防火墙设置以使更改生效:
    sudo firewall-cmd --reload

无论是使用 iptables 还是 firewalld,都需要在确认更改后保存设置,并确保3306端口是允许通信的。这样,你的MySQL服务器就可以接受来自其他设备的连接请求了。

注意:如果你是使用root账户,那么在命令面前可以不用加sudo,如果不是root账户那就需要加sudo,加了sudo的命令都会以管理员的身份运行

在本地机器上连接MySQL

  1. 安装MySQL客户端:确保你的本地机器上安装了MySQL客户端或者能够连接MySQL数据库的工具。可以使用 MySQL 官方提供的命令行客户端、GUI工具(如Navicat、MySQL Workbench)等。
  2. 连接到MySQL:使用以下命令或相应的图形界面工具连接到MySQL服务器:
    mysql -u 用户名 -p -h 服务器IP地址

输入密码后即可连接

请注意,远程连接MySQL存在安全风险,因此应该谨慎设置,并且使用安全措施(如限制可访问的IP范围、使用SSH隧道等)来确保连接的安全性。

以上内容是对于Linux服务器的,如果是Windows服务器,方法都是一样的,只是配置防火墙的内容不一样。

作者:rm -rf *
链接:远程连接MySQL数据库-挨踢星球
来源:挨踢星球
著作权归作者所有。所有转载请注明出处。 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值