开发者社区> adoryn> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

运维调试记录:无法远程连接MySQL数据库

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/45192887 问题描述 出于兴趣,本人在Windows和Ubuntu系统上均安装了MySQL服务器和客户端。
+关注继续查看
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhaobryant/article/details/45192887

问题描述

出于兴趣,本人在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。摘录一二:

41 [mysqld]
42 port = 3306
43 basedir = /usr
44 datadir = /var/lib/mysql
45 tmpdir = /tmp
46 #Instead of skip-networking the default is now to listen only
47 #on localhost which is more compatible and is not less secure.
48 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远程连接数据库很慢
<p style="line-height:27.2px; color:rgb(73,73,73); font-size:16px; margin:10px auto; padding-top:0px; padding-bottom:0px"> <br></p> <p style="line-height:27.2px; font-size:16px; margin:10px auto
6753 0
远程连接MySQL数据库问题总结
远程连接MySQL数据库时,陆陆续续遇到了一些杂七杂八的问题,相信很多人也曾经遇到过这类问题,下面总结归纳在下面,方便以后直接查找。   1:出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.
1146 0
如何使用内置Mysql解决单测中数据库的问题
## 本文的目的 单元测试无疑是软件开发中特别重要的一个环节,只有有了单元测试,你的代码才有可能具备可重构的能力。本文主要讲述单元测试中如何解决数据库的问题。 ## 问题 有人可能存在疑问,为什么单元测试需要用到数据库呢?随着软件的复杂程度不断的增加,针对某个类或方法的测试已经远远无法满足我们的需求。我们需要有一种更加高效,投入产出比更高的测试方式,我们称之为组件测试。而组件测试是需要用到数据库
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
RDS数据库入门一本通
立即下载
DTS控制台一本通
立即下载
PostgreSQL复制原理及高可用集群
立即下载