最近遇到关于mysql的远程访问用户的权限问题,自己记录下吧。
开发者这边,登陆mysql的一直是非root用户,昨天不小心把所有的权限赋到了其中一个用户上面,于是简单粗暴地把这个用户删了,然后一模一样重新建了一个(反正是测试环境,哈哈),然后问题来了,我发现以前可以看到的一些数据库,居然在navcat(navcat不适用root登陆的)的列表中显示不出来了......觉着应该是权限问题,于是就用root账户登陆了服务器去重新给了一下权限,我是这么写的: grant all privileges on weEngin.* to 用户名@localhost identified by '用户密码',navcat刷新了一下,还是没法显示,最后发现问题出现在 localhost 上,localhost是本机的意思,也就是即使赋予了权限,也只能在登陆本机的时候才可以看到该数据库,所以只要把localhost 改成 ‘%’就好了。正确的写法:
grant all privileges on weEngin.* to '用户名'@'%' identified by '密码';
grant -权限- ON 1.库名.表名(全部*) 2.所有数据库 *.* TO '用户名'@'允许的ip(所有%)' IDENTIFIED BY '用户密码';
最后,不要忘了 刷新权限:FLUSH PRIVILEGES;