当前位置:   article > 正文

Ubuntu18.04 mysql 配置连接问题_为什么连接ubuntu虚拟机数据库错误

为什么连接ubuntu虚拟机数据库错误

今天在本地链接虚拟机上的MySql,然而链接失败了!甚是尴尬!

首先想一想是什么原因导致链接失败;

基础环境:在Linux上安装mysql

1、检查虚拟机IP在本地是否可以ping 通过

虚拟机IP:192.168.217.129
在这里插入图片描述

本地执行一下,没有问题

在这里插入图片描述

2、检查虚拟机Mysql的端口是否对外开放(这个必须要开放)

   比如我们能用xshell等远程工具连接虚拟机上的linux,是因为开放了22端口
  • 1

查看mysql的端口,在mysql命令行模式下执行以下命令就可以查看,查到的结果是3306

在这里插入图片描述

  查看虚拟机的3306端口是否开放
  • 1

cmd下执行telnet 192.168.217.129 3306

无法执行,别方,这是因为Windows telnet默认是关闭的

在这里插入图片描述

重新打开cmd窗口执行命令,结果是无法连接,这是因为虚拟机上的3306并没有对外开放,可以用22的试下效果就知道了

3、开通虚拟机的3306端口

查看虚拟机防火墙的状态

1
service iptables status
  可以看到目前只有22端口对外开放

在这里插入图片描述

编辑防火墙文件打开3306端口

1
vim /etc/sysconfig/iptables
  模仿22端口开放命令添加如图所示的一行即表示对外开放3306端口

在这里插入图片描述

重启防火墙

1
service iptables restart
  可以看到3306已经开放

4、远程连接虚拟机数据库访问

端口都开启了,但还是连不上,看提示说明至少已经关联到mysql,不允许是因为权限不够

原因:一般mysql是不允许除了本机用户以外的用户进行访问的,所以需要给特定ip的用户开放权限,通过这个用户去访问连接

创建用户并附有所有权限

在这里插入图片描述

1
2
3
create user ‘cici’@’%’ identified by ‘123123’;
grant all on . to ‘cici’@’%’;
flush privileges;

检查报错说远程JDBC创建失败,没连上。检查一下MySQL是不是没有开通对外的3306端口过滤,导致外部地址无法访问呢,通过netstat命令,检查3306端口,果然只有一个127.0.0.1:3306的监听端口。

https://blog.csdn.net/ZENMELAOSHIYOUREN/article/details/82961610


  重新使用cici链接数据库,成功了!!

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/187865
推荐阅读
相关标签
  

闽ICP备14008679号