跳至主要內容

远程连接 MySQL 配置

logycoconut数据库MySQL大约 1 分钟

问题背景

开发环境与数据库不在一台机器上,需要远程访问数据库进行数据的增删改查

在安装完 MySQL,确定开启远程连接权限的情况下,SQLyog还是提示 1130 - Host XXX is not allowed to connect to this MySQL server

经过排查后发现,是因为安装数据库的机器的防火墙阻止了3306端口(MySQL的默认端口),将其开启即可顺利访问

远程连接授权

  • 查看 MySQL 库中 user 表
    • 选择数据库 use mysql;
    • 查看 user 表中的 host、user 信息 select host, user from user;
user表
user表
  • 赋予访问数据库的权限

    如果开发主机的IP没有在表中,则需要给开发主机授权
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION ,这意味着赋予所有主机访问数据库的权限

    (如果只给单个主机则可以使用 GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'USERIP' IDENTIFIED BY 'USERPASSWORD' WITH GRANT OPTION;

  • 刷新权限 FLUSH PRIVILEGES

开启MySQL主机防火墙的3306端口

以Win10为例

  • 打开控制面板 - 所有控制面板 - Windows Defender防火墙 - 高级设置
高级设置
高级设置
  • 点击入站规则 - 新建规则 - 选择"端口"
  • 应用于TCP,特定本地端口为3306(MySQL的默认端口)
  • 然后无脑下一步,输入名称(你为这个入站规则起的名字)后点击完成即可

参考资料