我有一个需要访问数据库的用户。我为他设置了一个用户,但他告诉我他的主机名是什么,我为用户名添加了主机名,但他无法连接。我认为可能存在一些脱节,希望可能有办法看到哪个主机名即将通过。他通过VPN连接到我们的网络,所以我觉得主机名可能会有所改变。感谢
答案 0 :(得分:0)
MySQL的权限系统为每个用户@主机授予权限。例如,joe @ localhost可能具有与joe @ some-host不同的权限。
示例:
// grants all permissions to joe if he connects from localhost
CREATE USER 'joe'@'localhost' IDENTIFIED BY 'secret';
GRANT ALL ON db1.* TO 'joe'@'localhost';
// grants select permissions to joe if he connects from "other-host"
CREATE USER 'joe'@'other-host' IDENTIFIED BY 'secret';
GRANT SELECT ON db1.* TO 'joe'@'other-host';
如果您根本不关心主持人,可以使用joe@*
。
进一步阅读:Manual
答案 1 :(得分:0)
根据您的评论中的“MySQL说:无法获取您的地址的主机名”,这必须与VPN配置相关。您或您的网络管理员应该能够告诉您在专用网络上的盒子主机名是什么,并且应该在MySQL用户表中用作主机。
关闭MySQL服务器的名称解析可能也会有所帮助:MySQL error: Can't get hostname from your ip address