来源:レモンガード
原文:https://www.remonkado.com/note/public/detail/7f000001710d13db81710f9b173a00d7.html
想必各位都看过这个数据库吧,一直以来都不知道有什么用???
当然,有个时候是不会显示这个数据库的,如果你没有看到这个数据库,请执行以下SQL
show databases;
你会惊讶的发现,什么,我隐藏了一个数据库嘛,没错,你的想法是对的,这个数据库里面存储的数据就是MySQL的配置
我们在看一看里面都有一些什么表的
use mysql;
show tables;
我们看到里面有好多好多的表
但只有这张user表示我们的重点,要我们看看里面都有一些什么字段吧
字段多的数不完,呃呃,这就很难受了,不过不要紧,今天的主角只有Host字段这一个重点,我们来查询一下我们root账户的Host字段都有一些什么吧。
select host from user where user = 'root';
我们发现里面的值是localhost,这说明我们只能用localhost和127.0.0.1来登录数据库
这时候,我们把它改一下
update user set host = '%' where user = 'root';
然后我就遇到了一个这样的错误
怎么办了,好解决,我们临时性的关闭安全删除
SET SQL_SAFE_UPDATES = 0;
执行完这条SQL后,就运行刚才那条SQL,你会发现就成功了。
这个时候我们就可以远程访问了,但是注意的是,Host设置成%后,就不能用localhost和127.0.0.1了(网友们讲的,我没试验过)
那么问题来了,Host字段可以设置成其他的值吗,可以的,比如你只想要192.168.1.12这个IP可以远程访问这个数据库,那么就将Host字段设置成192.168.1.12
如果你想要192.168.1.*的可以远程访问,那么就将Host字段改成192.168.1.%,看到这里,想必小伙伴们就清楚了,其实%就是通配符的意思
好了,如果想了解Host字段的跟多信息,拿起你的百度吧,他们写的比我的详细,有的还比我的更加准确