作者:余枫
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方式卸载。