1.连接Hive数据库
想直接使用python连接hive数据库,貌似有很多包可以选,网上用的比较多的是PyHive和impyla.这里我直接选用了PyHive。
Pyhive这个包安装非常容易,这里就不展开了。但是写好python程序之后发现报错:'canot not import hive'. 网上给的答案是说pyhive这个包依赖其他包。(Impyla包的安装与pyhive的安装相差不大,只是两者依赖的包略有不同)
首先在安装sasl这个包的就在不停的报错。在网上找了一个别人在解决这个安装包的记录贴(亲测有效,不想班门弄斧)可以参考,具体网址如下:https://www.cnblogs.com/free-easy0000/p/9638982.html
这里要补充的一点是,sasl安装包下载地址,具体网址如下:https://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl。具体要下载那个 版本的sasl,要有python版本决定(比36我我的python是64位的3.6版本,所以我下载的就是cp36……amd64.cml)。将所需要的sasl版本下载的本地后,直接pip install 下载地址\sasl…….whl,就可以安装了。
2.MySQL配置及Python连接MySQL
MySQL的下载地址:https://dev.mysql.com/downloads/mysql/ 。我这里安装的是最新的MySQL 8.0.17版本。具体的安装步骤可以参考:https://www.cnblogs.com/reyinever/p/8551977.html 。按照上述步骤安装完成之后,在管理员模式运行net start mysql可以正常启动mysql服务。
下面就是安装navicat客户端。navicat直接网上下载解压就可以了。然后使用navicat连接mysql客户端,新建一个连接,只需要自己取一个“连接名”就可以了。
点击左下方的‘连接测试’发现提示了一个报错信息。1251-Client does not support authentication protocol requested by server; consider upgrading MySQL client. 这是因为Mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password 把mysql用户登录密码加密规则还原成mysql_native_password。只需要更改加密规则并使其生效即可。进入本地mysql后,执行下面两条语句:
ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘123456’;
flush privileges;
执行完这两条语句重启mysql服务就可以生效了。
参考: