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

相关推荐
huhy~9 小时前
基于CentOS7.9搭建MySQL高可用集群【MGR单主】
数据库·mysql
晨非辰9 小时前
Linux权限管理速成:umask掩码/file透视/粘滞位防护15分钟精通,掌握权限减法与安全协作模型
linux·运维·服务器·c++·人工智能·后端
夜颂春秋10 小时前
jmeter做压力测试
linux·运维·服务器·压力测试
lihui_cbdd13 小时前
AMBER 24 生产环境部署完全指南(5090可用)
linux·计算化学
生活很暖很治愈16 小时前
Linux基础开发工具
linux·服务器·git·vim
似霰17 小时前
Linux Shell 脚本编程——核心基础语法
linux·shell
LUCIFER19 小时前
[驱动进阶——MIPI摄像头驱动(五)]rk3588+OV13855摄像头驱动加载过程详细解析第四部分——ISP驱动
linux·驱动开发
暮云星影20 小时前
四、linux系统 应用开发:UI开发环境配置概述 (一)
linux·ui·arm
海天一色y20 小时前
普利姆算法(Prim)和克鲁斯卡尔算法(Kruskal)
windows·算法
不想写bug呀20 小时前
MySQL索引介绍
数据库·mysql