Hive(一)—— Centos7上安装Mysql 8.0.18

Linux下Mysql数据库


Hive组成

Hive组成描述
用户接口包含shell客户端、JDBC、ODBC、Web接口等
元数据库定义在hive中的表结构信息,一般保存到关系型数据库中,默认是derby,一般使用mysql进行保存。
解析器将HQL语句转换为mapreduce代码
数据仓库由hdfs组成的数据存储容器。

Hive安装依赖软件包Mysql,作为元数据库,默认的Derby数据库由于单会话的限制,无法直接使用。

以下用的是  mysql   8.0.18 版本


 

 

第一步:使用root用户安装mysql

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo/yum/  

# 下载 mysql源安装包
[root@master ~]# wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

如果出现问题:DNS有问题,之前手动配置DNS导致,执行如下内容(8.8.8.8是谷歌提供的)。

# 谷歌提供的 DNS域名解析
echo 'nameserver 8.8.8.8'>>/etc/resolv.conf 

# 阿里巴巴提供的 DNS域名解析
echo 'nameserver 223.5.5.5'>>/etc/resolv.conf 
echo 'nameserver 223.6.6.6'>>/etc/resolv.conf 

# 安装 mysql源
[root@master ~]#yum -y install mysql80-community-release-el7-3.noarch.rpm

# 检查 mysql源是否安装成功
[root@master ~]# yum repolist enabled | grep "mysql.*-community.*"

可以修改vim /etc/yum.repos.d/mysql-community.repo源,改变默认安装的mysql版本。比如要安装8.0版本,将8.0源的enabled=0改成enabled=1即可。改完之后的效果如下所示:

# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-preview]
name=MySQL Tools Preview
baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-cluster-7.5-community]
name=MySQL Cluster 7.5 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-cluster-7.6-community]
name=MySQL Cluster 7.6 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-7.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-cluster-8.0-community]
name=MySQL Cluster 8.0 Community
baseurl=http://repo.mysql.com/yum/mysql-cluster-8.0-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
# 安装MySQL
[root@master ~]# yum -y install mysql-community-server

# 如果出现问题,先执行如下命令:
[root@master ~]# yum -y remove mariadb-libs

# 安装后再次查看mysql
[root@master ~]# rpm -qa|grep mysql

 

第二步:修改配置信息

配置默认编码,添加如下信息到:/etc/my.cnf 

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8
lower_case_table_names=1 # 表名存储在磁盘是小写的,但是比较的时候是不区分大小写

 

第三步:启动mysql 

# 首先启动 MySQL
[root@master ~]# systemctl start  mysqld.service
# 或者
[root@master ~]# systemctl start mysqld


# 查看 MySQL运行状态
[root@master ~]# systemctl status mysqld.service
# 或者
[root@master ~]# systemctl status mysqld

# 查看数据库默认编码如下所示: 
mysql> SHOW VARIABLES LIKE '%character%';

 

第四步:设置root用户密码

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的默认密码,通过如下命令可以在日志文件中找出默认密码:

[root@master log]# grep 'password' /var/log/mysqld.log

# 进入数据库,输入初始密码(s/GnPh8YHLAO)
[root@master log]# mysql -uroot -p

 输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root@163.com';

# 查看初始密码策略的相关信息:
mysql> SHOW VARIABLES LIKE 'validate_password.%';

注意:默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示: 

validate_password_dictionary_file:密码策略文件,策略为STRONG才需要 
validate_password_length:密码最少长度 
validate_password_mixed_case_count:大小写字符长度,至少1个 
validate_password_number_count :数字至少1个 
validate_password_policy:密码策略,默认为MEDIUM策略,需要提供密码字典文件
validate_password_special_char_count:特殊字符至少1个  

MySQL官网密码策略详细说明:https://dev.mysql.com/doc/refman/8.0/en/validate-password-options-variables.html

修改密码策略:(默认的密码繁琐)

# 修改如下命令:选择0(LOW),1(MEDIUM),2(STRONG)其中1是默认的
mysql> set global validate_password.policy=0;

# 设置密码的最小长度
mysql> set global validate_password.length=1;

如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:validate_password = off

重新修改root用户密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

在 MySQL 8.0 中,caching_sha2_password 是默认的身份验证插件而不是之前版本的 mysql_native_password,默认的密码加密方式是 SHA2 。

# host: 允许用户登录的ip‘位置'%表示可以远程;
# user:当前数据库的用户名;
# authentication_string: 用户密码(后面有提到此字段);
mysql> SELECT `Host`,`User`,`authentication_string`,`plugin`  FROM user;

 注意:因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉: 

[root@master log]# yum -y remove mysql80-community-release-el7-3.noarch

默认只允许root帐户在本地登录,如果要在其它机器上连接 mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户hive: 

 

第五步:授权hive用户远程登录

Mysql8.0默认的加密方式是“caching_sha2_password”,而Navicat for MySQL只支持以前的"mysql_native_password",所以接下来修改密码加密方式:

### 授权语句创建用户
# 创建用户(hive:用户名; %:任意ip,也可以指定,root默认就是localhost; hive:登录密码)
mysql> CREATE USER 'hive'@'%' IDENTIFIED WITH mysql_native_password BY 'hive';

出现以上绿色箭头问题:①该用户在user表中不存在,没有这个用户;②上次删除这个用户,木有刷新权限;③如果还是不行,再删除一次;

mysql> DROP USER 'hive'@'%';

mysql> FLUSH PRIVILEGES;

mysql> CREATE USER 'hive'@'%' IDENTIFIED WITH mysql_native_password BY 'hive';

# 查看新增用户 hive 的plugin是否是"mysql_native_password"
mysql> SELECT `Host`,`User`,`authentication_string`,`plugin`  FROM user;


### 授权,默认创建的用户权限是usage,就是无权限,只能登录而已;
#(all:所有权限,这里有select,update等等权限;后面的*.*:指定数据库.指定表,这里是所有;to后面就是刚才创建的用户)
mysql> GRANT ALL ON *.* TO 'hive'@'%' WITH GRANT OPTION ;

# 刷新权限
mysql> FLUSH PRIVILEGES;

用Navicat连接看是否可以远程登陆,默认端口为3306,如果不能,则查看防火墙是否开启了该端口。

 

第六步:创建数据库

使用新用户登录,然后创建数据库,并修改数据库的连接方式

mysql> CREATE DATABASE hive;

mysql> ALTER DATABASE hive CHARACTER SET latin1;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值