无法远程连接mysql数据库

在阿里云租了个服务器(ubuntu环境),配置好了mysql数据库,可以增删改查,一切完好,但是在我本机远程连接这个mysql时,产生如下问题:
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
上网搜索解决办法:
将/etc/mysql/my.cnf配置文件加上:
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
保存
然后重启mysql
再在我的电脑上连接这个mysql,仍然出现这个问题(实例开启了3306端口(入规则),配置出规则了也没有用):
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
有遇到过这个问题的大佬吗???

阅读 4.2k
5 个回答

1.为了安全通常是禁止数据库服务端口监听在公网的,即使做了认证机制也太危险了。
2.你本地连不上公网mysql服务看看mysql是否监听在你阿里云服务器公网ip或者0.0.0.0,如果已经监听在公网,就再看看是否开了防火墙,看看阿里云管理平台看看是不是你的服务器有什么网络安全策略,导致你从本地连接不了你服务器公网的3306端口。

可以在阿里云安全组设置端口开放,还有要在mysql里面的user表添加你需要的用户

新手上路,请多包涵

1、mysql -u root -p 进入mysql
2、use mysql;
3、 update user set host='%' where user='root'; root=你默认用户名
4、 flush privileges; 刷新

你试试

先检查安全组,linux和windows的安全组不能通用,开放3306端口。不行的话,在本地使用 mysql -u username -p
-h address 试试能不能登上,不能的开放远程登录权限。

我记得 MySQL 中用户的认证过程,是将主机名,用户名,密码一起作为凭据的,即主机名和用户名加起来才是区分用户的因素。是否你在远程登陆时,指定 host + username ,在 mysql 数据库的 user 表中没有该用户,,,?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题