当前位置:首页 > 问答 > 正文

怎么弄MySQL能让别的电脑也连上去远程操作数据库

要让别的电脑也能连上你的MySQL数据库进行远程操作,你需要完成几个步骤,这个过程就像是把你家数据库的“门”打开,并告诉MySQL允许从“外面”的特定客人进来,而不是只允许“家里”的电脑访问,下面我会一步步说明,尽量用大白话解释。

第一步:检查MySQL当前的监听状态

你需要确认你的MySQL服务目前是不是在“听”来自其他电脑的连接请求,默认情况下,MySQL为了安全,常常只监听本机(也就是你安装MySQL的那台电脑)的请求,相当于把门关上了。

你可以通过登录MySQL命令行来检查,在你安装MySQL的电脑上,打开命令提示符(Windows)或终端(macOS/Linux),输入类似下面的命令登录:

mysql -u root -p

然后输入你的root用户密码,登录成功后,输入以下命令查看MySQL的绑定地址:

SHOW VARIABLES LIKE 'bind_address';

如果显示的值是 0.0.1 或者 localhost,这就说明MySQL只允许本机连接,你需要把它改成 0.0.0,这个特殊的地址表示让它监听所有网络接口的连接,也就是允许来自任何IP地址的电脑连接(后续我们会用防火墙和用户权限来限制谁真的能连)。

第二步:修改MySQL配置以允许远程连接

要改变上面的绑定地址,你需要编辑MySQL的配置文件,这个文件的位置因操作系统和安装方式而异。

  • 在Windows上,它通常叫 my.ini,可能位于MySQL的安装目录(C:\Program Files\MySQL\MySQL Server 8.0\)或者数据目录下。
  • 在Linux上,它通常叫 my.cnf,可能位于 /etc/mysql//etc/ 或者 /etc/mysql/mysql.conf.d/ 目录下。

你需要用记事本(Windows)或nanovim等文本编辑器(Linux)以管理员身份打开这个文件,找到 [mysqld] 这个段落,在里面添加或修改下面这一行:

bind-address = 0.0.0.0

如果这一行已经存在并且被 注释掉了,只需要去掉 并修改值即可,保存文件。

第三步:重启MySQL服务

修改完配置文件后,必须重启MySQL服务才能使更改生效。

  • 在Windows上:按 Win + R,输入 services.msc 打开服务窗口,找到名为“MySQL”或类似名称的服务,右键点击选择“重启”。
  • 在Linux上:使用命令 sudo systemctl restart mysqlsudo service mysql restart(具体命令取决于你的Linux发行版)。

重启后,MySQL就应该开始监听所有网络接口了。

第四步:创建或修改用户权限

光打开门还不够,你还得给想进来的客人一把正确的“钥匙”(用户名和密码),并告诉他可以进哪个“房间”(数据库),MySQL默认的root用户通常只允许从本机登录,所以你需要创建一个新用户,或者修改现有用户,使其可以从其他主机连接。

继续在MySQL命令行中操作:

  1. 创建一个新的远程用户(推荐这样做,比直接用root用户更安全): CREATE USER '你的新用户名'@'%' IDENTIFIED BY '一个强密码'; 这里的 是一个通配符,表示允许这个用户从任何IP地址的主机连接,如果你只想允许从特定IP(比如168.1.100)连接,就把换成那个IP地址,'你的新用户名'@'192.168.1.100'

  2. 授予用户权限:创建用户后,他默认是没有任何操作数据库权限的,你需要给他授权。 GRANT ALL PRIVILEGES ON *.* TO '你的新用户名'@'%'; 这条命令授予该用户对所有数据库()的所有权限,如果你只想让他操作某个特定的数据库(比如名为mydb的数据库),可以改成 GRANT ALL PRIVILEGES ON mydb.* TO '你的新用户名'@'%';,为了安全起见,原则上应该只授予最小必要的权限。

  3. 刷新权限:授权之后,必须执行以下命令让权限设置立即生效: FLUSH PRIVILEGES;

第五步:配置防火墙

MySQL这边已经准备好了,你电脑的防火墙可能会挡住外部的连接请求,MySQL默认使用3306端口进行通信,你需要在防火墙规则中开放这个端口。

  • 在Windows上

    • 进入“控制面板” -> “系统和安全” -> “Windows Defender 防火墙” -> “高级设置”。
    • 在“入站规则”中,新建一条规则。
    • 选择“端口”,下一步,选择“TCP”,特定本地端口输入 3306
    • 选择“允许连接”,下一步,根据需要选择配置文件(域、专用、公用),建议至少勾选“专用”,然后给规则起个名字(如“MySQL Remote Access”)完成即可。
  • 在Linux上(以ufw防火墙为例): sudo ufw allow 3306/tcp 然后可以运行 sudo ufw status 确认规则已添加。

第六步:获取你的电脑的IP地址并测试连接

你需要知道你安装MySQL的这台电脑在局域网内的IP地址,这样别的电脑才能找到它。

  • 在Windows上:打开命令提示符,输入 ipconfig,查找“IPv4 地址”一项。
  • 在Linux/macOS上:打开终端,输入 ifconfigip addr,查找inet地址。

假设你的IP地址是 168.1.50

你可以在另一台电脑上使用MySQL客户端工具(如MySQL Workbench、Navicat,或者命令行客户端)进行测试连接,连接时需要填写:

  • 主机名/IP地址:你刚才查到的 168.1.50
  • 端口3306
  • 用户名:你创建的“你的新用户名”
  • 密码:你设置的“一个强密码”

如果一切设置正确,就应该能成功连接了。

重要安全提醒

允许远程连接数据库会带来安全风险,请务必注意:

  • 强密码:为远程访问用户设置非常复杂的密码。
  • 限制IP:如果可能,尽量使用特定IP地址(如 '用户名'@'192.168.1.100')而不是通配符 ,将访问范围限制在可信的网络或特定机器。
  • 最小权限原则:只授予用户完成其工作所必需的最小权限,不要轻易使用 GRANT ALL PRIVILEGES
  • 考虑VPN:对于需要从外部网络(互联网)访问的情况,强烈建议先通过VPN连接到目标网络,然后再访问数据库,这比直接将数据库端口暴露在公网上要安全得多。

就是让别的电脑远程连接你MySQL数据库的基本步骤,整个过程的核心就是修改配置、设置权限和配置防火墙。

怎么弄MySQL能让别的电脑也连上去远程操作数据库