在centos7中安装MySQL-5.6办法
hive默认的元数据metastore是存储在自带的derby数据库中,在这里我们安装MySQL来存储Hive的Metastore
2021/11//05 早上
一、遇见的问题
为了解决hive元数据存储问题安装MySQL-5.6,但是发现安装MySQL-server时无法安装成功的问题。
体现在两点:
- var/lib/目录下没有mysql目录;
- 在root/目录下没有.mysql_secret文件查看mysql的初始密码
通过执行命令发现只安装成功MySQL-client
rpm -qa | grep MySQL
经过查询资料知晓问题原因:
因为安装centos7的时候系统默认安装了*mariadb-libs*
rpm -qa | grep -i mariadb-libs
解决办法
-
删除mariadb-libs和MySQL相关的文件
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
如果是安装过MySQL的需要将mysql删除干净
rpm -e --nodeps mysql*/MySQL*后,还需要删除 /var/lib/mysql目录,然后在进行重装二、安装MySQL
1、准备工作
- mysql5.6安装包: 安装包获取
提取码:1111
2、开始安装
- 将下载的压缩包上传到虚拟机
- 解压
- yum -y install unzip
- unzip mysql-libs.zip
- 进入mysql-libs目录下: cd mysql-libs
- 安装
MySQL-server
和MySQL-client
rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
- 安装时可能出现如下问题,如果没有直接跳过这一步骤,进行下一步,如果出现执行下面操作在继续进行安装MySQL
此时的原因是确实依赖包autoconf
,使用yum进行安装
yum -y install autoconf
- 正常安装后
在/root/目录下有一个文件.mysql_secret,这个文件中是mysql最初的随机密码,我们要使用这个密码登录mysql
查看.mysql_secret文件获取随机密码
此时可以通过此密码登录mysql。但是进去后只能修改登录密码。 - 启动mysql服务
service mysql start
- 登录mysql
mysql -uroot -p随机密码
- 修改密码
set PASSWORD=PASSWORD('123456');
修改密码后退出,
重新登陆才能操作mysql数据库 - 配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。
- 进入mysql
mysql -uroot --p123456
- 显示数据库
show databases;
- 使用mysql数据库
use mysql;
- 展示mysql数据库中的所有表
show tables;
- 展示user表的结构
select User, Host, Password from user;
- 删除root用户的其他host
delete from user where Host='hadoop102'; delete from user where Host='127.0.0.1'; delete from user where Host='::1';
- 修改user表,把Host表内容修改为%
update user set host='%' where host='localhost';
- 刷新
flush privileges;
- 退出
exit;
- 进入mysql
- mysql5.6安装包: 安装包获取
三、创建数据库hive
- 使用SQLYog连接虚拟机中mysql
- 创建数据库
字符集选择latin1
四、将hive元数据存储到mysql
- 解压下面压缩包,在目录中获取到mysql驱动
在这里插入图片描述 - 将mysql驱动拷贝到/opt/module/hive/lib/目录下
cp mysql-connector-java-5.1.27-bin.jar /opt/module/hive/lib/
- 根据官方文档配置参数,拷贝数据到hive-site.xml文件中
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hive:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<!-- 登录密码-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
</configuration>
- 配置完毕后,启动hadoop集群,在启动hive操作,此时的数据将会存储到mysql中。(如果不行可以重启虚拟机再试一次)