作者:余枫
1.文档编写目的
在安装CDH集群时,可能会选择不同外部数据库作为集群的元数据库,具体可以参考《0072-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
rpm -e --nodeps mariadb-server-5.5.44-2.el7.x86_64 mariadb-5.5.44-2.el7.x86_64
2.删除配置文件及数据目录,保证MariaDB完全的卸载
rm -rf /var/lib/mysqlrm -f /etc/my.cnf
3.下载MySQL的Tar安装包
https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.22-el7-x86_64.tar.gz
4.在OS上创建mysql用户
检查mysql用户和组是否存在,由于已经存在,所以不用再创建。
如果不存在则创建,命令为:
useradd mysql
3.MySQL安装
1.解压下载好的mysql-5.7.22-el7-x86_64.tar.gz压缩包到/var/lib目录下
tar -zxvf mysql-5.7.22-el7-x86_64.tar.gzmv mysql-5.7.22-el7-x86_64 /var/lib/mysql
2.创建MySQL数据目录并修改目录属主
mkdir -p /var/lib/mysql/datachown -R mysql:mysql /var/lib/mysql
3.创建MySQL日志目录/var/log/mysql,并修改目录属主
mkdir -p /var/log/mysqlchown -R mysql:mysql /var/log/mysql
4.进入到MySQL安装目录的bin目录下,执行如下命令初始化MySQL数据库
mysqld --initialize --user=mysql --basedir=/var/lib/mysql/ --datadir=/var/lib/mysql/data/
初始化成功后,在上图中最后一行可以看到,显示了生成的默认密码FngeS+shE8Fj,
需要记录下该密码,在初次登录MySQL时需要使用该密码。
5.修改MySQL配置文件/etc/my.conf(MySQL服务启动默认加载的是该配置文件)
[mysql]# 设置mysql客户端默认字符集default-character-set=utf8socket=/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=INNODBmax_allowed_packet=16Msocket=/var/lib/mysql/mysql.socklog-bin=mysql-binserver-id=36binlog_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服务添加到系统自启动服务列表中
cp /var/lib/mysql/support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqld
设置MySQL开机自启动
systemctl enable mysqld
启动MySQL并查看状态
systemctl start mysqldsystemctl status mysqld
4.MySQL登录验证
1.初次登录使用初始化数据库时生成的默认密码,登陆MySQL后,需要修改root用户密码
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方式卸载。