千家信息网

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

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,起因今天在ubuntu16.04环境下通过mysql workbench访问远程数据库时,发现无法连接问题,解决思路及方法记录如下,不足之处,请多指教。问题通过workbench输入密码访问时报这个错
千家信息网最后更新 2025年12月01日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 enablesudo 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 ufwsudo ufw enablesudo ufw default deny

参考文章:https://www.jb51.net/article/138876.htm

总结

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

服务 问题 端口 防火墙 防火 服务器 方法 原因 密码 文件 权限 主机 内容 思路 错误 本机 数据 做法 命令 用户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 sun服务器默认管理口地址 做小程序软件开发多少费用 数据库重启还有连接怎么回事 后端开发和软件开发一样吗 我的世界蛋壳服务器 郑州游爱网络技术有限公司 关系模型数据库标准语言 2020网络安全主题教育 宝鸡市网络安全信息协会 自己建一个服务器多少钱 浙江软件开发哪个公司好 丰猫网络技术有限公司怎么样 lol数据库技术控 cda 数据库知识 2019年中级软件开发答案 网络安全主要有哪些工作岗位 无线传感网络技术及数据处理 厦门服务器域名重定向怎么解决 江苏个人软件开发诚信服务 关系数据库标准语言sql复习题 南京协同管理软件开发 云服务器运行uniapp 网络安全民警先进事迹 数据库删除学生语句 有没有轻松学习网络技术的软件 实时数据类数据库 数据库系统安全是什么 数据库的安全性的定义 北京智能建模软件开发 数据库查询返回中文问号
0