通过 HeidiSQL 连接 CentOS 7 中的 MySQL 5.7

通过 HeidiSQL 连接 CentOS 7 中的 MySQL 5.7

本教程将指导如何使用 HeidiSQL 客户端工具连接到已安装在 CentOS 7 服务器(虚拟机、物理机或云服务器)中的 MySQL 5.7 数据库。

软件版本

本文基于以下软件版本进行操作演示。

  • 操作系统: CentOS 7.9
  • MySQL 版本: 5.7.44
  • HeidiSQL 版本: 11.3.0.6295

前提条件

  1. MySQL 已安装 :确保已在 CentOS 7 中成功安装并运行 MySQL 5.7。如果您尚未安装,请先参考教程:CentOS 7 安装 MySQL 5.7
  2. HeidiSQL 已安装:确保已在主机(例如 Windows)上安装了 HeidiSQL 客户端。
  3. 网络连接
    • 虚拟机用户 :建议使用 桥接模式(Bridged Mode),确保主机能 ping 通虚拟机 IP。
    • 云服务器/物理机用户:确保客户端主机能够访问服务器的 IP 地址(公网 IP 或局域网 IP)。

1. 准备工作

1.1 获取 CentOS 7 服务器 IP 地址

场景 A:虚拟机或局域网物理机

在 CentOS 7 中执行以下命令获取 IP 地址:

bash 复制代码
ip addr show
# 或者
ifconfig

记录下网卡(通常是 ens33eth0)的 IP 地址,例如:192.168.1.100

场景 B:云服务器(阿里云/腾讯云/AWS等)

请登录云服务商的控制台,查看该实例的 公网 IP (Public IP) 地址。
注意:云服务器内部 ip addr 通常只显示内网 IP,远程连接需使用公网 IP。

1.2 检查网络连通性

在 Windows 主机上测试是否能够访问服务器:

cmd 复制代码
ping <服务器IP地址>

如果 ping 不通:

  • 虚拟机:检查网络模式(NAT/桥接)。
  • 云服务器:检查云厂商的安全组是否允许 ICMP 协议(部分云服务器禁 ping,但不影响连接数据库,可跳过此步)。

1.3 配置 MySQL 允许远程连接

默认情况下,MySQL 只允许本地连接。需要配置允许远程主机连接。

a. 登录 MySQL
bash 复制代码
mysql -u root -p
b. 创建远程连接用户(推荐)

为了安全起见,建议创建一个专门用于远程连接的用户,而不是直接使用 root 用户:

sql 复制代码
-- 创建远程连接用户
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!';

-- 授予所有数据库权限(根据需要调整权限)
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;
c. 或者允许 root 用户远程连接(不推荐用于生产环境)
sql 复制代码
-- 允许任何主机的 root 用户连接
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'YourRootPassword' WITH GRANT OPTION;

-- 刷新权限
FLUSH PRIVILEGES;
d. 退出 MySQL
sql 复制代码
EXIT;

1.4 配置防火墙(关键步骤)

这里涉及两层防火墙,必须同时配置。

第一层:CentOS 系统防火墙 (firewalld)

首先检查 3306 端口是否已经开放:

bash 复制代码
# 检查已开放的端口
firewall-cmd --list-ports

# 或者直接查询特定端口是否开放
firewall-cmd --query-port=3306/tcp

如果 3306/tcp 不在列表中,或者查询结果显示 "no",则需要开放该端口:

bash 复制代码
# 永久开放 3306 端口
firewall-cmd --permanent --add-port=3306/tcp

# 重新加载防火墙规则
firewall-cmd --reload

# 再次验证端口是否开放
firewall-cmd --list-ports
第二层:云平台安全组(仅限云服务器用户)

如果是云服务器(如阿里云、腾讯云、AWS),必须要在云控制台的"安全组"或"防火墙"设置中,添加入站规则:

  • 协议: TCP
  • 端口范围: 3306
  • 授权对象: 0.0.0.0/0 (允许所有 IP) 或 仅填写你自己的公网 IP。

如果是虚拟机或内网物理机,通常没有这一层,可忽略。

1.5 检查 MySQL 绑定地址

确保 MySQL 配置文件中没有限制只能本地连接:

bash 复制代码
# 检查配置文件
cat /etc/my.cnf | grep bind-address

如果有 bind-address = 127.0.0.1 这一行,需要注释掉或修改为:

bash 复制代码
vi /etc/my.cnf
ini 复制代码
[mysqld]
# ... 其他配置 ...
# 注释掉或修改这一行
# bind-address = 127.0.0.1
# 或者改为
bind-address = 0.0.0.0

修改后重启 MySQL 服务:

bash 复制代码
service mysqld restart

2. 下载和安装 HeidiSQL

2.1 下载 HeidiSQL

访问 HeidiSQL 官方网站:https://www.heidisql.com/download.php

下载最新版本的 HeidiSQL 安装程序。

2.2 安装 HeidiSQL

  1. 运行下载的安装程序
  2. 按照安装向导完成安装
  3. 选择默认设置即可

3. 配置 HeidiSQL 连接

3.1 启动 HeidiSQL

安装完成后,启动 HeidiSQL 应用程序。

3.2 创建新连接

  1. 点击左下角的 "新建" 按钮
  2. 在弹出的会话管理器中,选择 "MySQL" 作为网络类型

3.3 配置连接参数

在连接设置页面填入以下信息:

参数 说明
网络类型 MySQL (TCP/IP) 默认选择
主机名/IP 192.168.1.100 替换为服务器的 IP 地址(虚拟机IP 或 云服务器公网IP)
用户 remote_user 或者 root(如果配置了远程访问)
密码 StrongPassword123! 设置的密码
端口 3306 MySQL 默认端口
数据库 (留空) 连接后可以选择数据库

3.4 测试连接

  1. 填写完连接参数后,点击 "打开" 按钮
  2. 如果配置正确,HeidiSQL 将成功连接到 MySQL 数据库
  3. 左侧面板将显示数据库列表

4. 常见问题排查

4.1 连接被拒绝 (Connection refused)

可能原因:

  • MySQL 服务未启动
  • 防火墙阻止了连接
  • IP 地址错误

解决方法:

bash 复制代码
# 检查 MySQL 服务状态
service mysqld status

# 如果未启动,则启动服务
service mysqld start

# 检查端口是否监听
netstat -tlnp | grep 3306

# 检查防火墙状态
firewall-cmd --list-ports

4.2 访问被拒绝 (Access denied)

可能原因:

  • 用户名或密码错误
  • MySQL 用户没有远程连接权限

解决方法:

sql 复制代码
-- 重新登录 MySQL 并检查用户权限
mysql -u root -p

-- 查看用户权限
SELECT user, host FROM mysql.user WHERE user='remote_user';

-- 如果没有 % 主机,重新授权
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' IDENTIFIED BY 'StrongPassword123!';
FLUSH PRIVILEGES;

4.3 网络不可达 / 连接超时

可能原因:

  • 云服务器安全组未开放 3306 端口(最常见原因)
  • 虚拟机网络配置错误
  • IP 地址填写错误

解决方法:

  1. 云服务器用户:务必登录云控制台,检查实例的安全组规则,确认 3306 端口对入站流量开放。

  2. 虚拟机用户:确保网络适配器设置为 NAT 或 桥接模式。

  3. 在本地主机尝试 telnet 测试端口连通性:

    cmd 复制代码
    telnet <服务器IP> 3306

    如果 telnet 无法连接,说明网络或防火墙仍有阻断。

5. 安全建议

  1. 使用强密码:确保 MySQL 用户密码足够复杂
  2. 限制用户权限:根据实际需要分配最小权限
  3. 使用专用用户:避免使用 root 用户进行远程连接
  4. 定期更新密码:定期更改数据库用户密码
  5. 网络安全:在生产环境中考虑使用 SSL/TLS 加密连接

6. 连接成功后的操作

连接成功后,可通过 HeidiSQL 执行以下操作:

  • 浏览数据库和表结构
  • 执行 SQL 查询语句
  • 创建、修改和删除数据库对象
  • 导入和导出数据
  • 管理用户权限

至此,已成功通过 HeidiSQL 连接到 CentOS 7 中的 MySQL 5.7 数据库,可以开始进行数据库管理和开发工作了。

相关推荐
今夕资源网28 分钟前
坚果手机直连Windows,打开软件实现键鼠操作TNT系统 视频教程+所需软件(今夕存档)
windows·智能手机·tnt·smartisan·smartisan tnt·锤子系统·坚果手机
阿梦Anmory28 分钟前
保姆级教程:Flask应用实现后台常驻运行(Linux服务器)
linux·服务器·flask
夏日听雨眠28 分钟前
Linux学习1
linux·服务器·学习
小生不才yz29 分钟前
【Makefile 专家之路 | 函数篇】10. 逻辑增强:逻辑函数(if/and/or)与环境断言(info/error)
linux
123过去35 分钟前
sslyze使用教程
linux·网络·安全
闫记康42 分钟前
Linux ip基础
linux·网络·tcp/ip
思麟呀1 小时前
应用层自定义协议与序列化
linux·运维·服务器·网络·c++
kabu_Charlie1 小时前
找不到CentOS 7 64 位-00000.vmdk
centos
Lost_in_the_woods1 小时前
Java程序员的Linux之路——命令篇
linux·运维·服务器
optimistic_chen1 小时前
【Vue3入门】自定义指令与插槽详解
linux·运维·服务器·vue.js·前端框架·指令