码迷,mamicode.com
首页 > 数据库 > 详细

关于远程连接MySQL数据库的问题解决

时间:2015-04-22 14:03:12      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:配置   系统   


问题描述

出于兴趣,本人在Windows和Ubuntu系统上均安装了MySQL服务器和客户端。现在有这样一些预备信息:

  • Windows系统的IP地址: 192.168.5.196
  • Ubuntu系统的IP地址:192.168.5.228

现在我试图在Windows上远程连接Ubuntu终端主机。
首先,在远程Ubuntu主机上配置MySQL访问权限,具体过程如下:

mysql> grant all privileges on . to ‘longlong’@’%’ identified by ‘123456’;

现在,在Ubuntu主机上查询MySQL权限信息如下:

技术分享

现在,在Windows上远程登录Ubuntu主机MySQL数据库,结果为:

技术分享
一直报出这种错误!


问题解决方法

在CSDN ASK提出这个问题后,尝试了各位么么哒网友的建议,比如通过mysql -u xx -p xxxx -h xxxx或是关闭Windows防火墙以及通过 ufw disable 命令关闭Ubuntu防火墙,仍然无法解决这个问题。
后来,得知Ubuntu上MySQL通过/etc/mysql/my.cnf配置文件配置整个MySQL。摘录一二:

[mysqld]
38 port = 3306
39 basedir = /usr
40 datadir = /var/lib/mysql
41 tmpdir = /tmp
45 # Instead of skip-networking the default is now to listen only
46 # on localhost which is more compatible and is not less secure.
47 bind-address = 127.0.0.1

注意,在上述配置文件中,存在一句配置命令:

bind-address = 127.0.0.1

这句命令即表明,本Ubuntu主机在本地监听,仅处理本地的连接请求。
我们也可以通过netstat命令来查看相关端口监听信息:

shell> netstat -anp | grep 3306
output> tcp 127.0.0.1:3306 LISTEN

现在,我们将my.cnf的bind-address语句注释掉,并重启MySQL服务:

shell> sudo service mysql restart
output> mysql stop/waiting mysql start/running, process 25765

现在,我们在Windows远程连接Ubuntu上的MySQL数据库,就不会报错了。
再次运行netstat命令:

shell> netstat -anp | grep 3306
output> tcp 0.0.0.0:3306 LISTEN

这时,我们发现3306端口不再仅仅监听在本地,同时也可以监听来自远端的连接请求。

关于远程连接MySQL数据库的问题解决

标签:配置   系统   

原文地址:http://blog.csdn.net/zhaobryant/article/details/45192887

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!