mysql部署后无法远程连接的原因(错误代码10061),服务监听127.0.0.1和0.0.0.0的区别
在Ubuntu上部署mysql服务并添加了一个非root用户后,发现无法远程连接,
Navicat连接mysql出现2003——can't connect to mysql server on localhost(10061)。
在网上搜索了一圈后,几乎都指向一个解决方案:修改配置文件/etc/mysql/my.cnf中的一项配置:
bind-address = 127.0.0.1
改为:
bind-address = 0.0.0.0
虽然大家都这么说,但是没有说明原因,于是我又找了一番,终于找到了,特转载于此,
原文在这里,感谢原作者。
========== 以下为转载 ==========
服务监听在127.0.0.1和0.0.0.0上,到底有什么区别呢?给个实际的例子,大家看看
今天发现在nb1380的mysql从nb1381连不上?
1、使用grant加权限,失败
mysql> select user,host,password from mysql.user;
rows in set (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'nb1381' identified by ' ' with grant option;
2、telnet失败,考虑可能是iptables限制,加规则,无效
root@nb1380:/var/log/mysql# iptables -I INPUT -p tcp --dport -j ACCEPT
3、猜测可能是监听在127.0.0.1上,而不是0.0.0.0上,查看my.cnf,果然是这个原因
root@nb1380:/var/log/mysql# vim /etc/mysql/my.cnf
bind-address = 127.0.0.1 改为:
bind-address = 0.0.0.0
重启mysql,果然telnet通了
root@nb1381:~# telnet nb1380
Trying 192.168.64.43...
Connected to nb1380.
Escape character is '^]'.
mysql也能连接了
root@nb1381:~# mysql -uroot -p -hnb1380
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is
Server version: 5.6.-0ubuntu0.14.04. (Ubuntu)
Copyright (c) , , Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
总结:
3306端口监听在127.0.0.1,只有本机客户端可以访问,其他服务器无法访问
3306端口如果监听在0.0.0.0上,如果没有端口限制,那么其他服务器则可以连接该服务器的该端口
========== 转载结束 ==========
文章到这里还没结束,通过错误代码10061,我查到了官方文档的说法。连接如下:
https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html
这里剪辑部分内容:
The error (2003) Can't connect to MySQL server on '
indicates that the network connection has been refused. You should check that there is a MySQL server running, that it has network connections enabled, and that the network port you specified is the one configured on the server.server
' (10061)
Make sure that the server has not been configured to ignore network connections or (if you are attempting to connect remotely) that it has not been configured to listen only locally on its network interfaces. If the server was started with --skip-networking
, it will not accept TCP/IP connections at all. If the server was started with --bind-address=127.0.0.1
, it will listen for TCP/IP connections only locally on the loopback interface and will not accept remote connections.
其实官方文档已经写清楚了,以后有问题,找官方文档结合别人的实践经验效率更高。
mysql部署后无法远程连接的原因(错误代码10061),服务监听127.0.0.1和0.0.0.0的区别的更多相关文章
- 安装好mysql后允许远程连接
安装好mysql后允许远程连接 http://blog.sina.com.cn/s/blog_3eba8f1c0100tsox.html http://blog.csdn.net/zxyvb/arti ...
- MongoDB win安装后无法远程连接访问
mongoDB安装后无法远程连接访问,原因是端口没有开放允许连接的权限 开启允许连接的权限: 管理工具-高级win防火墙
- mysql 发现 navicat 可以远程连接,代码无法远程连接
navicat可以远程连接, root账号也可以用代码连接. 其他的用户无法远程连接. 原因: 1.先检查下 mysql数据库里面 的 servers 表是否存在. 2.更新或者创建用户之后 使用: ...
- [修]开启MySQL远程访问权限 允许远程连接
原文地址:http://www.cnblogs.com/XL-Liang/archive/2012/05/03/2481310.html 这个地址也许更有帮助:http://www.cppblog.c ...
- 开启MySQL远程访问权限 允许远程连接
1.登陆mysql数据库 mysql -u root -p 查看user表 mysql> use mysql;Database changedmysql> select host,user ...
- linux网络连接的查看和端口的监听
网络软件都是由客户端和服务端组成,由服务端在服务器上监听指定的端口处理接收到的数据,而客户端是向服务器端监听的端口发送数据,并由服务器端对该数据进行处理,然后将处理结果返回给客户端. 那么我们在lin ...
- centos 安装mysql密码修改后还是不能连接的原因
centos 上安装mysql密码修改后还是不能连接出现错误:ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for ...
- linux 下解决mysql root 权限无法远程连接问题
问题描述:MySQL数据库安装成功后,在服务器本地可以连接成功,但是使用工具navicat无法进行远程连接,如图: 原因:MySQL默认只允许root帐户在本地登录,如果要在其它机器上连接mysql, ...
- centos7通过yum安装mysql,并授权远程连接
安装: CentOS 7的yum源中没有正常安装MySQL的mysql-sever文件,需要去官网上下载(通过安装mysql的yum容器,再通过yum安装mysql) 注:安装前,需要卸载所有的mar ...
随机推荐
- [CQOI2011]放棋子
想到了50%吧算是. f[i][j][k]表示,前i种,占了j行k列.方案数. 发现,转移要处理:“用c个棋子,占据n行m列”的方案数. 设g[i][j][k]表示,i行j列用k个棋子占的方案数.直接 ...
- Eclipse配置web开发环境
eclipse的web配置: eclipse:Eclipse Java EE IDE for Web Developers. Version: Helios Service Release 1 下载地 ...
- JavaScript定义类与对象的一些方法
最近偶然碰到有朋友问我"hoisting"的问题.即在js里所有变量的声明都是置顶的,而赋值则是在之后发生的.可以看看这个例子: 1 var a = 'global'; 2 (fu ...
- Javascript计算世界完全对称日
今天是 2011-11-02 日,微博啊.G+啊什么的都传是世界完全对称日,还说是多少年一遇的.下面写个 JavaScript 小程序,看看是否真的N年一遇.计算范围在公元2000年到3000年. 名 ...
- Hive架构及应用介绍【链接】
原文链接:https://blog.csdn.net/a2011480169/article/details/51482799
- 跨平台sdk接入总结
sdk说明: 1.Bugly SDK:自动捕获上报App的脚本错误和原生代码引发的崩溃信息,并提供异常问题分类分析. 2.语音 SDK:提供游戏内收发语音功能. 接入步骤: step1:仔细通读一遍s ...
- ASP.NET基础学习(暴力破解密码)
首先写出一段登陆程序: //ashx端 <%@ WebHandler Language="C#" Class="AddCalation" %> us ...
- js 获取当前链接和获取域名
<script language="javascript"> //获取域名 host = window.location.host; host2=document.do ...
- [洛谷P2048] [NOI2010] 超级钢琴
洛谷题目链接:[NOI2010]超级钢琴 题目描述 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐. 这架超级钢琴可以弹奏出n个音符,编号 ...
- 从零开始开发一款app,所想到的
我在知乎上看到这个问题http://www.zhihu.com/question/27645587.我在阅读了各位大牛的答案后,再加上自己的思考,就有了这篇文章的内容. 从零开始开发一款app ...