标签:
直接用SecureCRT登录到我的linux服务器,连接mysql后出现以下错误
然后我用root用户登录到mysql查看了我的用户信息,如下
出现问题1的原因有很多种,我这里是因为用错了yanglibin这个用户的密码,用正确的密码就ok了
更多详细信息请看 http://blog.csdn.net/lioncode/article/details/7917310(说的很全了)
那篇博客里面还提到过一种很常见的问题就是mysql无法远程登录,
也就是“原因2 : 用户账号存在,但未对其所在的客户端的IP进行远程访问授权允许”
为了模拟这种情况,我创建了一个用户 testmysql如下
提示错误信息如下
这种情况就如博客中所说的“原因2”解决方法是给testmysql用户赋予它所有机器可以登录的权限
注:用以下方式授权用户的前提是mysql.user表中没有其他的testmysql用户,否则很容易报错
为了测试方便我另建了一个用户testmysql1;
最后发现用testmysql1这个用户还是无法登陆的mysql,从那篇博客中的以下截图中找到了一个方法,就是把testmysql1这个用户的密码置空
update mysql.user set Password = PASSWORD(‘‘) where User= ‘testmysql1‘;
然后去登陆就可以了,不太清楚这是为什么,很疑惑
这个时候已经可以通过远程链接,如用secureCRT用testmysql1用户去登录mysql,可以行通,但是用这个用户通过navicat这个软件去连接mysql会提示如下错误
到了这一步碰到这个问题找了很多网上的解决方法,比如
http://kiddwyl.iteye.com/blog/67708
但是都无法解决我的问题,没办法只有继续找了,无意中看到有可能是因为本地机的3306端口被占用,根据这一提示就试着改了下/etc/my.cnf
如下:
vim /etc/my.cnf
再去用navicat连接mysql就可以了,当然这只是一个测试用例为了去说明问题,正式情况一般不会去改mysql的端口号
另外推荐一篇关于mysql用户权限的文章
http://blog.csdn.net/mchdba/article/details/45934981
标签:
原文地址:http://www.cnblogs.com/ryanlamp/p/4757115.html