Linux中无法远程连接数据库问题的解决方法
发表于:2024-11-22 作者:千家信息网编辑
千家信息网最后更新 2024年11月22日,起因今天在ubuntu16.04环境下通过mysql workbench访问远程数据库时,发现无法连接问题,解决思路及方法记录如下,不足之处,请多指教。问题通过workbench输入密码访问时报这个错
千家信息网最后更新 2024年11月22日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安全错误
数据库的锁怎样保障安全
清远通讯软件开发厂家直销
软件开发安全流程图
数据库原理及应用python
湖南软件开发企业
计算机基础网络技术书籍
神州数码网络技术实训室
网络安全和人工智能哪个好
上海云创汇互联网科技有限公司
曲阜兴成网络技术服务中心
软件开发哪个好问聚顶科技
hyde数据库
安卓手机服务器请求失败
怎么看一个文献的数据库
河南同步网络时钟服务器
物理服务器的管理制度
软件开发怎么做绩效考评
2021服务器安全软件
北大版数据库
县区网络安全事件应急预案
网络安全学校推荐
安卓开发数据库应用
微信小程序还要弄服务器吗
mysql数据库设计方案
网络安全 讲话 诗词
软件开发项目投资预算书
吉林正规软件开发诚信合作
网络安全教育名人名言
做软件开发没有上升空间
云服务器备份软件
关于网络安全教育观后感