我正在构建一个mysql服务器,允许用户只在内部ip地址上访问数据库。
SET PASSWORD FOR 'testuser'@'MyIPwillgohere' = PASSWORD('password');
但使用上述语句时出现以下错误
Can't find any matching row in the user table
我认为这与主机是%而不是本地主机或我的IP地址有关。
+------------------+-------------+
| user | host |
+------------------+-------------+
| testuser | % |
| root | 127.0.0.1 |
| root | ::1 |
| debian-sys-maint | localhost |
| root | localhost |
| root | raspberrypi |
+------------------+-------------+
如何更改主机或我该怎么做才能解决此问题。我使用putty SSH连接连接到服务器并以root用户身份运行mysql。
问题是如何更改测试用户主机?
我想将主机从%更改为本地主机或可能是我自己的IP地址。我已经使用workbench作为编辑器登录,但主机仍然是相同的?
答案 0 :(得分:0)
你可以尝试这样的事情(但请注意DROP
实质上意味着“DELETE
”所以要小心):
DROP USER 'testuser';
GRANT USAGE ON dbnamegoeshere.* to 'testuser@MyIPwillgohere' IDENTIFIED BY 'password';
答案 1 :(得分:0)
我找到了解决自己问题的方法。它没有让我通过更改密码EG
来更改主机连接的位置你可能会尝试这样的事情(但请注意DROP本质上 意思是“删除”所以要小心):
DROP USER'testuser';在dbnamegoeshere上授予使用权。* to 'testuser @ MyIPwillgohere'识别'密码';
这样说它没有找到匹配。我首先向用户授予权限,并说明他要连接的位置,然后允许更改密码。