远程连接 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;
- 选择数据库
赋予访问数据库的权限
如果开发主机的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的默认端口)
- 然后无脑下一步,输入名称(你为这个入站规则起的名字)后点击完成即可