使用navicat连接虚拟机的hive

一、软件准备

虚拟机(操作系统为Linux)中已有MySQL、已部署Hive。

本地主机(操作系统为Windows)中下载navicat(我用的是navicat premium 15)。

PS:其实用sqlyog也是可以连接虚拟机的Hive数据的。

在决定用navicat还是sqlyog之前,可以思考这两个问题:

①MySQL和hive的区别;

②sqlyog和navicat的区别。

对于第一个问题,我理解的最直接的区别是:MySQL的数据可以存储在本地,但是hive的数据一定是存储在分布式文件系统上的。尽管hive的操作数据的命令语法与MySQL非常接近,但hive不是MySQL。

对于第二个问题,我理解的最直接的区别是:sqlyog只支持MySQL数据库,navicat支持各种数据库。但是hive本身跟MySQL有关系(这一方面我的理解还不是很透彻,只是从查询语言的角度上去理解,因为两者的确很接近),所以连接hive要建立的是MySQL连接。

二、连接步骤

2.1 配置文件

/etc/ssh/sshd_config文件

在虚拟机中编辑/etc/ssh/sshd_config文件,将PasswordAuthentication设置成yes(如果这一行前面有#,把#删除即可)。然后使用下述命令重启sshd服务(注意:不是ssh,是sshd)。

service sshd restart

hive-site.xml文件

(此文件的位置根据每台虚拟机安装hive路径的不同而有区别。我的是/home/hive/conf/hive-site.xml)

在虚拟机中编辑hive-site.xml文件,注意要有如下内容。

在这里插入图片描述

其中,ConnectionURL表示Hive数据存储的URL链接。我的文件中写明了是在HiveDB下;

ConnectionUserName表示登录的用户名。我的文件中写明了是root;

ConnectionPassword表示登录的密码。我的文件中写明了是123456;

metastore.warehouse.dir表示元数据在分布式文件系统(不是虚拟机中的文件路径)中存储的路径。我的文件中写明了是在/user/hive/warehouse。

2.2 软件操作

  1. 在虚拟机中开启集群。

  2. 在虚拟机中开启Hive。

  3. 打开本地主机上安装的navicat,按照如下步骤完成连接。

文件→新建连接→MySQL。

在这里插入图片描述

随后出现如下图所示的窗口。

在这里插入图片描述

先点击SSH选项卡,勾选“使用SSH通道”,然后在“主机”输入虚拟机的IP地址,“端口”保持默认的22不变;“用户名”输入虚拟机的用户名(我的是root),“密码”输入虚拟机的用户登录的密码

然后点击测试连接。此时只填写了SSH选项卡的内容,会出现如下图所示的报错。先暂时不管。

在这里插入图片描述

点击这个报错信息的“确认”后,在SSH选项卡上方看到navicat能够连到SSH服务器,但是SSH服务器到数据库的连接还不成功。

在这里插入图片描述

注意:如果这里的密码填写错误了,不能连接到SSH服务器,会弹出如下窗口。
在这里插入图片描述
选项卡中也会显示如下连接情况。
在这里插入图片描述

切换回“常规”选项卡,在“连接名”随便起一个名字,描述一下这个连接(比如这个连接我是用来查看虚拟机的hive数据的,那这里我就起名为“Hive”);“主机”填写虚拟机的IP地址;“端口”保持默认的3306不变;“用户名”是数据库的用户名;“密码”是登录数据库的密码(区别于登录虚拟机用户的密码,除非你的这两个密码是设置成一样的了)。

在这里插入图片描述

然后在“常规”选项卡点击“测试连接”,弹出如下窗口则说明连接成功。

在这里插入图片描述

注意:如果这一步的密码写错,会弹出如下窗口。
在这里插入图片描述
选项卡中也会显示如下连接情况。

在这里插入图片描述
所以要确保两个选项卡的用户名、密码都填写正确了。

参考

有Mysql数据库的情况下为什么要用Hive数据库?

sqlyog和navicat的区别

Navicat连接虚拟机的MySQL时 提示“Password authentication failed”

Navicat连接Hive

### 配置Navicat连接虚拟机中Docker容器运行的MySQL数据库 要成功使用 Navicat 连接运行在虚拟机中 Docker 容器内的 MySQL 数据库,需要确保以下几个方面的配置正确无误。 #### 网络配置 首先,确保 Docker 容器的端口正确映射到宿主机。运行 MySQL 容器时,需使用 `-p` 参数将容器的 3306 端口映射到宿主机的 3306 端口,以便外部访问。例如: ```bash docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql ``` 此外,可以使用 `--network` 参数指定容器加入特定的 Docker 网络,以确保容器间的通信畅通无阻。例如: ```bash docker run -d \ --name mysql \ -p 3306:3306 \ -e TZ=Asia/Shanghai \ -e MYSQL_ROOT_PASSWORD=123 \ -v /root/mysql/data:/var/lib/mysql \ -v /root/mysql/conf:/etc/mysql/conf.d \ --network hm-net \ mysql ``` #### 防火墙设置 确保虚拟机的防火墙允许外部访问 MySQL 的端口(默认为 3306)。如果使用的是 Ubuntu,可以通过以下命令开放端口: ```bash sudo ufw allow 3306/tcp ``` #### 用户权限配置 MySQL 需要允许远程连接。可以通过执行以下 SQL 命令来创建一个允许从任何主机连接的用户: ```sql CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` #### Navicat 连接设置 在 Navicat 中新建连接时,选择 MySQL 数据库类型,并填写以下信息: - **主机名/IP地址**:输入虚拟机的 IP 地址。 - **端口**:通常为 3306。 - **用户名**:之前创建的允许远程连接的用户名。 - **密码**:对应的密码。 #### 解决常见问题 - **连接失败**:检查 Docker 容器是否正常运行,确认端口映射是否正确,以及防火墙设置是否允许相应端口。 - **版本兼容性问题**:如果使用的是 MySQL 8.0 或更高版本,可能需要更新 Navicat 的驱动程序以支持新的认证方式。 通过上述步骤,应该能够顺利地使用 Navicat 连接到运行在虚拟机 Docker 容器中的 MySQL 数据库。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值