Linux中无法远程连接数据库问题的解决方法

起因

今天在ubuntu16.04环境下通过mysql workbench访问远程数据库时,发现无法连接问题,解决思路及方法记录如下,不足之处,请多指教。

问题

通过workbench输入密码访问时报这个错:

?

Your connection attempt failed for user 'root' from your host to server at 118.89.153.162:3306: Access denied for user 'root'@'118.89.153.162' (using password: YES)

思路

  • 网络问题,更换网络之后重启workbench和MySQL服务进行连接,依旧是这个错。
  • 密码错误,通过ssh远程登录服务器查看远程mysql的password,发现所填密码正确。
  • 远程mysql没有访问权限,一般有两种方法:改表法和授权法   : 

 授权法:

第一步:尝试打开/etc/mysql/my.cnf配置文件,若文件不存在或者内容为空,则打开下面的文件路径:

?

sudo vim /etc/mysql/my.cnf

//或:

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

第二步:在文件中查找下面一行,如果该行前没有加#,可在该行前添加#进行注释,保存退出。

?

bind-address = 127.0.0.1

改表法:

?

mysql>use mysql;

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问以及修改所有数据的权限

//例如,你想root用户使用root从任何主机连接到mysql服务器的话。

//GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

//如果你想允许用户root从ip为192.168.1.124的主机连接到mysql服务器,并使用123456作为密码

//GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.124'IDENTIFIED BY '123456' WITH GRANT OPTION;

mysql>flush privileges //权限刷新,使修改立即生效

sudo /etc/init.d/mysql restart //或: service mysql restart 重启mysql服务

两种方法我尝试了一下,错误类型变成了:

?

Can't connect to MySQL server on ...

看到这个错误我想到了远程服务器防火墙的原因,于是我有了下面的思路:

4. 远程ubuntu服务器的防火墙原因导致无法本地访问远程的3306端口

?

sudo ufw disable //关闭防火墙,该命令需在root权限下执行,慎用

再次通过workbench连接远程mysql,连接成功。

原因

我的本地无法连接远程是因为远程ubuntu服务器防火墙默认禁止外部访问3306端口。

做法

?

sudo ufw enable //开启防火墙

sudo ufw allow 3306 //允许外部访问3306端口

总结

1. 一般的无法连接远程mysql问题是由上面四个愿意导致的,这里不做赘述。

2. 在遇到一个问题时首先要做的不是立刻找做法解决这个问题,而应该是思考为什么会出现这个问题,产生这个问题的原因,做到对症下药。

3. 自己还有很多不足,戒骄戒躁才能进步。

附赠

Ubuntu常用ufw防火墙命令

?

//安装方法

sudo apt-get install ufw

 

//启用

sudo ufw enable

sudo ufw default deny //开启了防火墙并随系统启动同时关闭所有外部对本机的访问,本机访问外部正常。

 

//关闭

sudo ufw disable

 

//查看防火墙状态

sudo ufw status

 

//开启/禁用相应端口或服务举例

sudo ufw allow 3306 //允许外部访问3306端口

sudo ufw delete allow 3306 禁止外部访问3306端口

 sudo ufw allow from 118.89.153.162 //允许此IP访问所有的本机端口

sudo ufw deny smtp //禁止外部访问smtp服务

sudo ufw delete allow smtp //删除上面建立的某条规则

sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22 //要拒绝所有的TCP流量从10.0.0.0/8 到192.168.0.1地址的22端口

 

//推荐使用

sudo apt-get install ufw

sudo ufw enable

sudo ufw default deny

参考文章:http://www.jb51.net/article/230446.html

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

原文链接:https://www.cnblogs.com/lishanlei/p/8933269.html

原创文章,作者:VNHCG,如若转载,请注明出处:http://www.wangzhanshi.com/n/6356.html

(0)
VNHCG的头像VNHCG
上一篇 2025年1月1日 16:20:44
下一篇 2025年1月1日 16:21:43

相关推荐

  • Linux 检测服务器是否连接着网络

    Linux 检测服务器是否连接着网络 摘要: 每隔5分钟检测一次服务器是否连接着网络,如果三次检测都没有网络?则自动关机! 主要使用场景: 由于自己有一台服务器放在偏远的老家,有可…

    Linux 2025年1月1日
  • Linux上增加自定义脚本的展现量

    前言 在一台Linux机器上写好一个脚本以后,希望这个脚本让这台机器上其他用户使用,但是不可能会让别人记住这个脚本的路径,这个时候该怎么办呢? 原理 在回答上面的问题之前,我们首先…

    Linux 2025年1月1日
  • linux下make命令实现输出高亮的方法

    前言 无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。最近在调试代码,make 输出信息的时候 error 、warning 等信息都是和普通信息一…

    2025年1月1日
  • Linux下Python脚本自启动与定时任务详解

    前言 最近同事问了一个关于Python脚本自启动与定时任务的问题,发现很多的朋友对这块都不是特别的熟悉,所以本文主要给大家介绍的是关于Linux下Python脚本自启动与定时任务的…

    Linux 2025年1月1日
  • Linux的路由表详细介绍

    Linux的路由表详细介绍 一 在Linux下执行route命令 ? [root@localhost backup]# route -n Kernel IP routing tab…

    Linux 2025年1月1日
  • linux中启动tomcat后浏览器无法访问的解决方法

    前言 不论是要启动,还是要关闭tomcat服务,都是要去到tomcat安装目录下的bin路径,当然你要是电脑关机自然是不需要的。 但最近在启动后发现了一个问题:Centos服务器,…

    Linux 2025年1月1日
  • 使用 Goxel 制作开源 3D 像素艺术

    使用 Goxel 构建模型很有趣,就像没有锋利边缘的乐高、没有“爬行者”的 Minecraft 一样。 我喜欢乐高,这不是什么秘密,但我的乐高收藏现在离我很远,而且把满满一柜子的经…

    2025年1月1日
  • ssh 登录很慢该如何解决

    ssh登录很慢解决方法 使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码。严重影响工作效率。登录很慢,登录上去后速度正常,这种情况主要…

    Linux 2025年1月1日
  • 为什么要使用嵌入式Linux?

    是什么使Linux成为嵌入式系统的完美候选者?从可伸缩性到嵌入式开发人员支持和工具,有无数的理由可以证明这一点。在这里,我们将仅提及几个突出的问题: 硬件支持 Linux在32位和…

    2025年1月1日
  • 动态在线扩容root根分区大小的方法详解

    前言 本文主要介绍了关于动态在线扩容root根分区大小的相关内容,分享出来供大家参考学习,下面话不都说了,来一起看看详细的介绍吧。 ? 1 qemu-img resize your…

    Linux 2025年1月1日

发表回复

登录后才能评论