远程连接mysql数据库碰到的问题及解决方案

直接用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

http://zhidao.baidu.com/link?url=0hbT0VywNqcmN1uiONFtca7qPjDcgdAi4zZgt6Yc86A1Tsm97o9UqWC4T0uiziSjuDdsD4aquJjITzERn1Y8la

http://zhidao.baidu.com/link?url=tO_HElduXYDtdRNgib9Ce07WNFVfaYq7mTLiixf8onfSqvHgpWTSxTy9HZ0Mgy__q2hybelglVArvxlFi4c-p_

但是都无法解决我的问题,没办法只有继续找了,无意中看到有可能是因为本地机的3306端口被占用,根据这一提示就试着改了下/etc/my.cnf

如下:

vim /etc/my.cnf

再去用navicat连接mysql就可以了,当然这只是一个测试用例为了去说明问题,正式情况一般不会去改mysql的端口号

另外推荐一篇关于mysql用户权限的文章

http://blog.csdn.net/mchdba/article/details/45934981

时间: 2024-08-01 02:49:06

远程连接mysql数据库碰到的问题及解决方案的相关文章

Navicat for mysql 远程连接 mySql数据库10061、1045错误

用navicat连接远程的mysql数据报错: 有朋友可能会碰到使用Navicat for mysql 远程连接 mySql数据库会提示10061.1045错误或 2003-Can't connect to MySQL on '192.168.1.2'(10061),这个原因是因为MySQL不准许远程连接. 最简单的办法是 MySQL远程配置 代码如下 复制代码 GRANT ALL PRIVILEGES ON *.* TO [email protected]'%' IDENTIFIED BY '

navcat无法远程连接mysql数据库解决办法

navcat无法远程连接mysql数据库,一般都是因为本地ip没有访问权限,服务器上执行下面指令即可解决 mysql -u root -p GRANT ALL PRIVILEGES ON *.* TO 'mysql数据库用户名'@'本地ip' IDENTIFIED BY 'mysql数据库密码' WITH GRANT OPTION; flush privileges;

Navicat for mysql 远程连接 mySql数据库10061、1045错误问题 (转)

远程使用Navicat for mysql 客户端软件连接 mySql数据时,连接出现 2003-Can’t connect to MySQL on ’192.168.1.2’(10061)错误时,是由于MySQL不准许远程连接. 修改方法如下: 1:在服务端MySQL文件夹下找到my.ini文件.修改bind-address=127.0.0.1 为 bind-address=0.0.0.0 (在MySQL 5的my.ini中未发现此项) 2:重新启动MySQL服务. 测试连接情况: 如果没有给

Windows操作系统下远程连接MySQL数据库

用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是上网搜索发现,mysql 数据库默认的连接只能在本机连接,远程连接必须授权. 远程连接权限配置: 进到你的MySQL\MySQL Server 5.5\bin文件夹下(注:Windows操作系统下doc命令进入) C:\Program Files\MySQL\MySQL Server 5.5>cd

用MyEclipse10.0远程连接Mysql数据库服务器

说明:本文档所有的操作均在满足以下条件的情况下操作, A.远程Linux服务器已经安装好MySQL数据库 B.本地电脑可以ping通远程服务器 C.已经成功安装了Myeclipse 一.下载mysql-connector-java-3.1.14-bin.jar 这个是连接mysql数据库的驱动器. 下载地址: http://dev.mysql.com/downloads/connector/j/5.0.html 也可以到官方网站下载,网址如下:www.mysql.com 二.在Myeclipse

Navicat for mysql 远程连接 mySql数据库10061错误问题

测试连接情况: 如果没有给远程登录用户添加所有机器都能访问的权限,将会出现“1045-Access denied for user ‘[email protected](using password:NO)”,这表明需要添加权限: 添加命令如下: 1 grant all on *.* to 用户名@"%" identified by "密码"; 2 flush privileges; 完成以上步骤,就可以远程访问MySQL数据库了.

Linux系统下实现远程连接MySQL数据库的方法教程

1.在服务器端开启远程访问首先进入mysql数据库,然后输入下面两个命令: grant all privileges on *.* to 'root'@'%' identified by 'password';flush privileges;第一个*是数据库,可以改成允许访问的数据库名称第二个 是数据库的表名称,代表允许访问任意的表root代表远程登录使用的用户名,可以自定义%代表允许任意ip登录,如果你想指定特定的IP,可以把%替换掉就可以了password代表远程登录时使用的密码,可以自定

配置远程连接mysql数据库 Connect to remote mysql database

设有本地机器(local machine), ip地址为localip 远程机器(remote machine), ip地址remoteip 要通过在local machine的终端连接remote machine的mysql数据库,并且对数据库进行操作. 1.在local和remote均安装好mysql,安装方法参考另一篇博客. 2.在本地ssh连接到远程host $ ssh [email protected] 3.打开远程host的mysql,为local添加用户. $ mysql -uro

无法远程连接Mysql数据库

笔者在做项目时,需要用到数据库,然后就在一台服务器上搭建了MySQL数据库,本地测试时需要连接到数据库,于是在使用Navicat连接数据库时发现一个问题,无法连接并且报错了,报错代码1130. 之后发现,其实是数据库默认root用户只允许本地登录,未开启远程登录功能,所以需要我们自己设置一下MySQL. 书接上文,笔者高高兴兴地打开Navicat,开始连接数据库,然后,一脸懵逼. What?1130?(PS:笔者在操作时忘了截图了,下图来自互联网~orz) 图1.Navicat连接数据库报错错误