博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个远程访问MySQL的错误(2003, 10061)的解决
阅读量:5037 次
发布时间:2019-06-12

本文共 1270 字,大约阅读时间需要 4 分钟。

转自:,非常感谢。

今天在配置一台服务器的时候,怎么连不上这台服务器上的mysql。远程登录正常,在这台机器上访问自己的mysql正常。错误提示SQL Error(2003):Can't connect to MySQL server on '**'(ip)(10061)  (**当时就是代指发起访问请求的远程IP)。解决如下:

说明:我使用的是Ubuntu10.04操作系统,使用sudo apt-get命令默认安装的MySQL。

1、首先尝试在mysql内赋予该账户从远程IP访问的权限。

登陆以后运行以下命令,给予远程访问客户端权限..

grant all on *.* to 'remote'@'172.16.21.39' identified by 'password';

其中:remote表示用户名.  '172.16.21.39' 是需要赋予访问权限的Iip地址;password表示远程登陆密码.

结果未成功,命令执行成功,但是还是无法远程访问mysql。还需要进行以下步骤

可能需要以root身份登录上去才能执行该命令。

2、取消mysql本机绑定

也就是取消mysql默认的只能本机访问的限制。

编辑/etc/mysql/my.cnf(ubuntu下默认mysql的话就是my.cnf,不然就有可能不是这个文件名);找到

# Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address = 127.0.0.1

将”bind-address = 127.0.0.1“注释掉(前面加上个#即可);如果有需要,可以将127.0.0.1修改成特定的IP地址。

修改之后需要重启一下mysql服务才能生效。命令:

sudo /etc/init.d/mysql restart

至此已经能够远程访问MySQL,但是你也许会发现能访问但是看不到数据库。这是因为还没有授予访问特定数据库的权限。

3、给以存在的数据库授权

如果用户test 经常在远程IP地址173.255.213.208的客户端访问webdb数据库,那么在服务器端执行的命令应该为(改表法):

mysql> use mysqlmysql> update db set Host='173.255.213.208' where Db='webdb';mysql> update user set Host='173.255.213.208' where user='test';

至此,如果没有意外的话,应该就能远程访问数据库了。

有个小细节需要注意。如果你的服务器装了防火墙的话,需要打开3306的访问,否则也会连接不上。

转载于:https://www.cnblogs.com/devour/archive/2012/11/08/2760743.html

你可能感兴趣的文章
数据分析 -- 白话一下什么是决策树模型(转载)
查看>>
Java SPI机制原理和使用场景
查看>>
web前端java script学习2017.7.18
查看>>
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>