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

【数据库】如何从本地电脑连接服务器上的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.dtcms.com/a/319136.html

相关文章:

  • 某梆企业壳frida检测绕过
  • 网页前端CSS实现表格3行平均分配高度,或者用div Flexbox布局
  • Springboot2+vue2+uniapp 实现搜索联想自动补全功能
  • vue2.如何给一个页面设置动态的name。不同路由使用一样的组件。页面不刷新怎么办?
  • 小米前端笔试和面试
  • Redis 分布式Session
  • 内存杀手机器:TensorFlow Lite + Spring Boot移动端模型服务深度优化方案
  • 前端三大核心要素以及前后端通讯
  • 机器学习之随机森林(Random Forest)实战案例
  • 数据结构第8问:什么是树?
  • 深入理解String类:揭秘Java字符串常量池的优化机制
  • word生成问题总结
  • 【智能协同云图库】第六期:基于 百度API 和 Jsoup 爬虫实现以图搜图
  • 北京-4年功能测试2年空窗-报培训班学测开-第七十天-面试第一天
  • 国内主流数据集成厂商有哪些?有那些免费的数据集成平台?
  • 容器 vs 虚拟机
  • 机器学习核心算法与实践要素(全篇)
  • 汽车流通行业4S门店生存性指标:零服吸收率
  • 0基础法考 单选50条错题总结
  • 安卓系统属性之androidboot.xxx转换成ro.boot.xxx
  • 分布式面经
  • 虚幻GAS底层原理解剖七 (ASC)
  • Day 6: CNN卷积神经网络 - 计算机视觉的核心引擎
  • 多场景两阶段分布式鲁棒优化模型、数据驱动的综合能源系统
  • PostgreSQL面试题及详细答案120道(61-80)
  • 59.螺旋矩阵II
  • 恒虚警检测(CFAR)仿真:杂波边缘与多目标场景分析
  • 目标检测数据集 - 疟疾检测数据集下载「包含VOC、COCO、YOLO三种格式」
  • 微算法科技(NASDAQ:MLGO)利用集成学习方法,实现更低成本、更稳健的区块链虚拟货币交易价格预测
  • RocketMQ概览