前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >0618-6.1.1-如何在CDH6集群内节点安装MySQL5.7.22

0618-6.1.1-如何在CDH6集群内节点安装MySQL5.7.22

作者头像
Fayson
发布2019-05-14 14:37:22
8910
发布2019-05-14 14:37:22
举报
文章被收录于专栏:Hadoop实操Hadoop实操

作者:余枫

1

文档编写目的

在安装CDH集群时,可能会选择不同外部数据库作为集群的元数据库,具体可以参考《CDH安装前置准备》。在这里选择MySQL作为集群的元数据库,MySQL有两种安装方式,RPM或者TAR包的方式进行安装。Fayson在使用RPM的方式安装的过程中遇到mariadb-libs依赖包冲突的问题,因为RPM安装MySQL时会自动安装mysql-community-libs依赖包,而在安装Cloudera Agent服务时会强依赖mariadb-libs包,导致mariadb-libs和mysql-community-libs包冲突,导致Agent服务安装失败。因此本文档采用TAR方式在ReadHat7.2上安装MySQL5.7.22。

  • 内容概述

1.环境准备

2.Tar包安装MySQL5.7.22

3.MySQL登录测试

4.总结

  • 测试环境

1.CM和CDH版本为6.1.1

2.MySQL5.7.22

2

安装前置准备

1.卸载原有MariaDB

代码语言:javascript
复制
rpm -e --nodeps mariadb-server-5.5.44-2.el7.x86_64 mariadb-5.5.44-2.el7.x86_64

2.删除配置文件及数据目录,保证MariaDB完全的卸载

代码语言:javascript
复制
rm -rf /var/lib/mysql
rm -f /etc/my.cnf

3.下载MySQL的Tar安装包

代码语言:javascript
复制
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.22-el7-x86_64.tar.gz

4.在OS上创建mysql用户

检查mysql用户和组是否存在,由于已经存在,所以不用再创建。

如果不存在则创建,命令为:

代码语言:javascript
复制
useradd mysql

3

MySQL安装

1.解压下载好的mysql-5.7.22-el7-x86_64.tar.gz压缩包到/var/lib目录下

代码语言:javascript
复制
tar -zxvf mysql-5.7.22-el7-x86_64.tar.gz
mv mysql-5.7.22-el7-x86_64 /var/lib/mysql

2.创建MySQL数据目录并修改目录属主

代码语言:javascript
复制
mkdir -p /var/lib/mysql/data
chown -R mysql:mysql /var/lib/mysql

3.创建MySQL日志目录/var/log/mysql,并修改目录属主

代码语言:javascript
复制
mkdir -p /var/log/mysql
chown -R mysql:mysql /var/log/mysql

4.进入到MySQL安装目录的bin目录下,执行如下命令初始化MySQL数据库

代码语言:javascript
复制
mysqld --initialize --user=mysql --basedir=/var/lib/mysql/ --datadir=/var/lib/mysql/data/

初始化成功后,在上图中最后一行可以看到,显示了生成的默认密码FngeS+shE8Fj,

需要记录下该密码,在初次登录MySQL时需要使用该密码。

5.修改MySQL配置文件/etc/my.conf(MySQL服务启动默认加载的是该配置文件)

代码语言:javascript
复制
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=/var/lib/mysql
# 设置mysql数据库的数据的存放目录
datadir=/var/lib/mysql/data
# 允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
max_allowed_packet=16M
socket=/var/lib/mysql/mysql.sock
log-bin=mysql-bin
server-id=36
binlog_format=MIXED

#慢日志位置 
slow_query_log_file=/var/log/mysql/slow_query.log
#慢日志时间
long_query_time=1
#开启慢日志
slow_query_log=TRUE

[client]
socket=/var/lib/mysql/mysql.sock

注意:根据自己MySQL的安装目录、数据目录及日志目录进行相应的修改。

6.将MySQL服务添加到系统自启动服务列表中

代码语言:javascript
复制
cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld

设置MySQL开机自启动

代码语言:javascript
复制
systemctl enable mysqld

启动MySQL并查看状态

代码语言:javascript
复制
systemctl start mysqld
systemctl status mysqld

4

MySQL登录验证

1.初次登录使用初始化数据库时生成的默认密码,登陆MySQL后,需要修改root用户密码

代码语言:javascript
复制
set password=password('!qQ123456');
flush privileges;

2.创建一个测试库及测试表

向表中插入数据

查看插入的数据

5

总结

Fayson在使用RPM的方式安装的过程中遇到mariadb-libs依赖包冲突的问题,因为RPM安装MySQL时会自动安装mysql-community-libs依赖包,而在安装Cloudera Agent服务时会强依赖mariadb-libs包,导致mariadb-libs和mysql-community-libs包冲突,导致Agent服务安装失败。本篇文章采用Tar包的方式安装MySQL5.7.22数据库解决依赖包冲突问题。

在卸载mariadb依赖包时避免使用yum remove方式,该卸载方式会导致卸载掉很多额外的依赖包,可能会影响到OS其它服务的正常使用,建议使用rpm -e --nodeps mysql-community-libs方式卸载。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Hadoop实操 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档