Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql

DBeaver连接MySQL

打开DBeaver,点击MySQL创建数据库连接
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第1张图片

点击下一步
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第2张图片

把需要连接的数据库名、用户名及密码填进去
如果提示下载驱动,即点击下载
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第3张图片
我一般会点一下测试链接,看看是否存在什么问题,李先生运气一直这么好
dbeaver测试链接无响应 已发出收不到
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第4张图片
首先怀疑网络不通:telnet不通:发现telnet 22通,3306不通

#进行端口检测
   1)netstat -ntpl |grep 3306
    tcp        0      0 :::3306                     :::*                        LISTEN      - 
   2)netstat -ntpl |grep 22
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      -  

可以看出22端口监听所有地址,而3306只监听本机地址(绑定了到了本地),所以远程无法访问。(个人为了方便,一般本地端和远程端防火墙都是关闭状态)

两种方法:

方法一:防火墙设置
通过防火墙设置让3306通过:
1)iptables --list查看通过列表
2)开启防火墙3306端口

  vi /etc/sysconfig/iptables
  -A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙) 
  /etc/init.d/iptables restart(重启防火墙使配置生效)

3)或者直接关闭防火墙;

方法二:mysql配置文件
检查my.cnf的配置,bind-address=addr可以配置绑定ip地址。
不配置或者IP配置为0.0.0.0,表示监听所有客户端连接。
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第5张图片
telnet解决,物理连接通畅,但是dbeaver仍然连接不上

1.权限没有赋通:mysql8独有的密码验证方式和语法:
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第6张图片
Mysql 8.0+版本语法在密码设置方面有一些变化:
旧版本identified by ‘passwd’
新版本 identified with mysql_native_password by ‘passwd’
使用旧版本会报语法错误,无法赋权

远程连接小专题(部署时期应该配置完成的)

1. 新库赋权,一定要用grant_priv和super_priv为Y的账户进行赋权

Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第7张图片

create database Leedb default character set utf8 collate utf8_bin;
grant all on Leedb.* to 'lee'@'%' identified with mysql_native_password by 'Lee*123456';
flush privileges;

user访问地址

Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第8张图片

将user的host改为%,代表所有地址都可以连接
公钥验证问题 设置true值
搞定权限和地址之后,dbeaver中报错Public Key Retrieval is not allowed
需要设置allowPublicKeyRetrieval=true;
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第9张图片

在以上所有配置搞定后,还是一直被denied,连续十次flush priviges之后,终于通了,虽然不知道为什么。。
测试链接成功
Dbeaver连接虚拟机中的mysql && Dbeaver远程连接mysql_第10张图片

你可能感兴趣的:(hadoop相关)