未分类

Mysql权限问题小记

由于项目需要,我今天研究了下mysql权限设置问题,期间遇到了很多坑,但幸好最终还是靠着强大的Google解决了所有问题。在此记录下mysql权限设置问题的一些笔记,权当备份。
只能本地连接mysql,远程机器连接不了?

当我在服务器上搭建好mysql,输入以下命令:

 

 
当输入mysql密码,出现mysql>提示后,说明已经成功登陆mysql。

我满心欢喜地打开自己的mac,准备远程连接服务器上的mysql,结果如下:

 

 
显示登陆失败,原因是mysql默认只支持本地登陆,不支持远程登陆。

解决方案

第一步,登陆mysql(服务器本地登陆,因为远程登陆不了),查看user表(内置表)

 

 
可以看到,user表中目前只有一个root用户,并且host为127.0.0.1/localhost,也就是说root用户目前只支持本地ip访问连接。

第二步,修改表内容

增加一个用户,将host设置为%

 

 

或者更改root用户的host字段内容

 

 

flush(必须要flush,使之生效):

 

 
查看用户

 

 
再看下user表内容:

 

 
可以看到user表中增加了一个用户nmask,host为%。

重启Mysql:

 

 
此时再用nmask用户远程连接下Mysql:

 

 
连接成功,因为此用户host内容为%,表示允许任何主机访问此mysql服务。

用户权限很低

当我用nmask账号登陆后,发现权限很低,具体表现为只能看到information_schema数据库。

解决方案

在添加此用户时,就赋予其权限

 

 
或者

 

 
如果是phpmyadmin,可以通过root用户登陆后,进入user表进行修改。

最后重启Mysql:

 

 
自定义授权问题

如果想nmask使用123456密码从任何主机连接到mysql服务器,其他密码不行,则可以:

 

 
如果想允许用户nmask只能从ip为10.0.0.1的主机连接到mysql服务器,并只能使用123456作为密码。

 

 
最后重启Mysql:

 

 
只能连接localhost?

连接报错信息:

 

 
解决方案

修改/etc/my.cnf内容:

 

 
重启mysql服务:

 

 
脱坑秘籍:通过mysql命令行修改内容后,要记得plush;如果还不生效,尝试restart mysql服务

 

原文链接:https://thief.one/2017/07/26/1/  作者 :nMask

(0)

热评文章

发表评论