当前位置: 首页 > ops >正文

【数据库】如何从本地电脑连接服务器上的MySQL数据库?

文章目录

  • 前言
  • 一、前提条件
  • 二、配置MySQL允许远程连接
    • 1. 修改MySQL配置文件
    • 2. 创建远程访问用户或授权现有用户
    • 3. 检查防火墙设置
  • 三、使用Navicat连接远程MySQL数据库
    • 1. 打开Navicat并新建连接
    • 2. 测试连接
    • 3. 保存并连接
  • 四、常见问题及解决方法
    • 1. 连接超时或拒绝
    • 2. 认证失败
  • 五、总结


前言

在开发和运维过程中,我们经常需要从本地电脑连接远程服务器上的MySQL数据库,进行数据查询、调试或管理。本文将详细介绍如何从本地电脑通过Navicat连接服务器上的MySQL数据库,实现远程数据库管理。


一、前提条件

在开始之前,请确保以下条件已满足:

  1. 服务器和本地电脑处于同一网络:确保你的本地电脑和服务器在同一个局域网内,或者服务器已对外暴露MySQL服务端口(默认3306)。
  2. 服务器已安装MySQL:服务器上必须已安装并运行MySQL服务。
  3. 已知服务器IP地址:你需要知道服务器的IP地址(如 192.168.1.100)。
  4. MySQL用户权限:确保MySQL用户具有远程访问权限(或允许从你的本地IP访问)。
  5. Navicat已安装:本地电脑已安装Navicat(或其他数据库管理工具,如DBeaver、HeidiSQL等)。

二、配置MySQL允许远程连接

1. 修改MySQL配置文件

  • 登录服务器,编辑MySQL配置文件(通常位于 /etc/mysql/my.cnf/etc/my.cnf):
    sudo vim /etc/mysql/my.cnf
    
  • 找到 bind-address 配置项,确保其值为 0.0.0.0 或注释掉该行(允许所有IP访问):
    # bind-address = 127.0.0.1
    bind-address = 0.0.0.0
    
  • 保存并退出,然后重启MySQL服务:
    sudo systemctl restart mysql
    

2. 创建远程访问用户或授权现有用户

  • 登录MySQL命令行:
    mysql -u root -p
    
  • 创建一个允许远程访问的用户(或授权现有用户):
    -- 创建新用户(可选)
    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';-- 授权用户(赋予所有权限,或按需授权)
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;-- 刷新权限
    FLUSH PRIVILEGES;
    
    • % 表示允许所有IP访问,也可以指定具体IP(如 'remote_user'@'192.168.1.%')。

3. 检查防火墙设置

  • 确保服务器防火墙已放行MySQL端口(默认3306):
    sudo ufw allow 3306/tcp
    
  • 如果使用云服务器(如阿里云、AWS),还需在安全组中放行3306端口。

三、使用Navicat连接远程MySQL数据库

1. 打开Navicat并新建连接

  • 打开Navicat,点击 连接 > MySQL。

  • 在弹出的窗口中填写连接信息:

    • 连接名:自定义(如 Server_MySQL)。
    • 主机名或IP地址:服务器的IP地址(如 192.168.1.100)。
    • 端口:默认 3306(如果修改过,请填写实际端口)。
    • 用户名:MySQL用户名(如 remote_user)。
    • 密码:MySQL用户的密码。

    在这里插入图片描述

2. 测试连接

  • 点击 测试连接,确保提示 连接成功。
  • 如果失败,检查:
    • 服务器IP是否正确。
    • MySQL服务是否运行。
    • 防火墙是否放行3306端口。
    • 用户名和密码是否正确。

3. 保存并连接

  • 点击 确定 保存连接配置。
  • 双击新建的连接,即可开始管理远程数据库。

四、常见问题及解决方法

1. 连接超时或拒绝

  • 原因:防火墙未放行、MySQL未监听0.0.0.0、用户权限不足。
  • 解决方法:
    • 检查服务器防火墙和云服务商安全组。
    • 确认MySQL配置 bind-address0.0.0.0
    • 重新授权用户:
      GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' IDENTIFIED BY 'your_password';
      FLUSH PRIVILEGES;
      

2. 认证失败

  • 原因:用户名或密码错误。
  • 解决方法:
    • 确认密码是否正确。
    • 尝试在服务器本地登录MySQL,验证用户信息:
      mysql -u remote_user -p
      

五、总结

通过以上步骤,你可以轻松地从本地电脑连接服务器上的MySQL数据库,进行远程管理。关键点包括:

  1. 确保MySQL允许远程访问(配置 bind-address 和用户权限)。
  2. 确保网络畅通(防火墙和安全组放行3306端口)。
  3. 使用Navicat等工具建立连接。

推荐后续操作:

  • 定期备份数据库,避免数据丢失。
  • 使用SSL加密连接,提高安全性。
  • 限制远程访问IP,减少安全风险。

希望本文对你有所帮助!如果有任何问题,欢迎留言讨论。 🚀

http://www.xdnf.cn/news/17171.html

相关文章:

  • 第二集 测试概念
  • 3a服务器的基本功能1之身份认证
  • 【ee类保研面试】数学类---概率论
  • 嵌入式硬件学习(十一)—— platform驱动框架
  • 基于 HT 引擎实现 3D 智慧物流转运中心一体化管控系统
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的用户留存策略研究
  • 计算机基础·linux系统
  • 解决Git提交人信息默认全局化问题:让提交人自动关联当前用户
  • 阿里云部署若依后,浏览器能正常访问,但是apifox和小程序访问后报错链接被重置
  • 【保姆级喂饭教程】python基于mysql-connector-python的数据库操作通用封装类(连接池版)
  • 动态代理常用的两种方式?
  • 大疆无人机使用eport连接Jetson主板实现目标检测
  • 异构系统数据集成之数据源管理:打通企业数据孤岛的关键一步
  • TDengine IDMP 背后的技术三问:目录、标准与情景
  • ​ubuntu22.04系统入门 (四)linux入门命令 权限管理、ACL权限、管道与重定向
  • 思途AOP学习笔记 0806
  • day20|学习前端
  • 比特币量化模型高级因子筛选与信号生成报告
  • 数据大集网:以数据为纽带,重构企业贷获客生态的助贷平台实践
  • 重生之我在暑假学习微服务第十一天《配置篇》+网关篇错误订正
  • 【图像处理基石】什么是数字高程模型?如何使用数字高程模型?
  • HarmonyOS应用开发环境搭建以及快速入门介绍
  • Diamond基础1:认识Lattice器件
  • 【LeetCode 热题 100】347. 前 K 个高频元素——(解法三)桶排序
  • 接口——串口uart(485)
  • 常用排序方法
  • LeetCode 面试经典 150_数组/字符串_O(1)时间插入、删除和获取随机元素(12_380_C++_中等)(哈希表)
  • Java throw exception时需要重点关注的事情!
  • 项目中MySQL遇到的索引失效的问题
  • QT+opencv+yolov8推理