通过 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 数据库,可以开始进行数据库管理和开发工作了。

相关推荐
郝学胜-神的一滴5 分钟前
深入理解Linux中的Try锁机制
linux·服务器·开发语言·c++·程序人生
sim202012 分钟前
把etcd分区挂到SSD盘
linux·etcd
YJlio13 分钟前
Registry Usage (RU) 学习笔记(15.5):注册表内存占用体检与 Hive 体量分析
服务器·windows·笔记·python·学习·tcp/ip·django
·云扬·14 分钟前
MySQL四大系统库详解:作用、核心表与实用SQL查询
android·sql·mysql
EndingCoder17 分钟前
函数基础:参数和返回类型
linux·前端·ubuntu·typescript
CAU界编程小白29 分钟前
Linux系统编程系列之动静态库
linux
济61732 分钟前
linux(第十三期)--filezilla使用方法(实现ubuntu和windows11文件互传)-- Ubuntu20.04
linux·运维·ubuntu
HIT_Weston33 分钟前
91、【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(五)
linux·运维·ubuntu
oMcLin35 分钟前
如何在 Rocky Linux 8.6 上配置并调优 Nginx 与 Lua 脚本,提升 API 网关的性能与并发处理能力
linux·nginx·lua
Yana.nice44 分钟前
Linux目录结构说明
linux