Hive 附录-1:Hive 环境搭建之 CentOS 7 离线安装 MySQL 5.7数据库

一、安装前环境准备

1、首先先检查一下 CentOS 7 是否已经安装过 MySQL 数据库,使用如下命令进行检查:

[root@master ~]# rpm -qa | grep mysql

从以上输出结果可以看出,当前系统并没有安装 MySQL。如果有则使用下面命令进行删除:

[root@master ~]# rpm -e --nodeps mysql-*

2、查找所有 mysql 对应的文件夹:

[root@master ~]# find / -name mysql 
/etc/selinux/targeted/active/modules/100/mysql 
/usr/lib64/mysql 
/usr/share/mysql

删除相关文件及目录:

[root@master ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql /usr/lib64/mysql /usr/share/mysql

查看是否已经删除:

[root@master ~]# find / -name mysql

3、从官网下载用于 Linux 系统的 MySQL5.7.29 安装包:

[root@master ~]# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

或者可以利用其他下载工具下载以后上传到 CentOS 系统上。

4、检查 mysql 用户组和用户是否存在,如果没有,则进行创建:

[root@master local]# cat /etc/group | grep mysql 
[root@master local]# cat /etc/passwd |grep mysql 
[root@master local]# groupadd mysql 
[root@master local]# useradd -r -g mysql mysql

二、安装 MySQL

1、在执行 wget 命令的目录下或你的上传目录下找到 MySQL 安装包:mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz,执行如下解压命令:

[root@master ~] tar -xzvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

2、解压完成后,可以看到 /usr/local/ 目录下多了一个解压文件,并将文件夹名称修改为 mysql:

[root@master local]# mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql

3、在 /usr/local/mysql 目录下创建 data 目录:

[root@master mysql]# mkdir data

4、更改 mysql 目录下所有的目录及文件夹所属的用户组和用户,以及权限:

[root@master mysql]# chown -R mysql:mysql /usr/local/mysql 
[root@master mysql]# chmod -R 755 /usr/local/mysql

5、编译安装并初始化 mysql,请记住初始化输出日志末尾的密码(数据库管理员临时密码)

[root@master mysql]# cd /usr/local/mysql/bin/ 
[root@master bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/ --basedir=/usr/local/mysql

# 初始化以后日志记录末尾输出的信息如下:

2022-04-04T08:52:05.398162Z 1 [Note] A temporary password is generated for root@localhost: T<N(K2#cfewe

6、T<N(K2#cfewe 这是数据库管理员临时密码,等一会儿登录 mysql 时需要用到。

7、编辑配置文件 /etc/my.cnf,添加配置如下:

[root@master bin]# vi /etc/my.cnf 
# 添加以下内容 
[mysqld] 
datadir=/usr/local/mysql/data 
port=3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES symbolic-links=0 
max_connections=600 
innodb_file_per_table=1 
lower_case_table_names=1

8、启动 mysql 服务:

[root@master bin]# /usr/local/mysql/support-files/mysql.server start 
Starting MySQL.Logging to '/usr/local/mysql/data/master.err'. SUCCESS!

9、给 MySQL 添加软连接,并重启 mysql 服务:

[root@master bin]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
[root@master bin]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql [root@master bin]# service mysql restart 
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS!

10、登录 mysql,修改密码(密码为步骤5生成的临时密码:T<N(K2#cfewe)

[root@master ~]# mysql -u root -p 
Enter password: # 在此处输出步骤5生成的密码,不会显示 
mysql> set password for root@localhost = password('123456');

11、设置允许远程连接 MySQL 数据库:

mysql> use mysql; 
Database changed 
mysql> update user set user.Host='%' where user.User='root'; 
Query OK, 1 row affected (0.00 sec) 
mysql> flush privileges; 
Query OK, 0 rows affected (0.00 sec)

12、给 MySQL 设置开机自动启动:

# 将服务文件拷贝到init.d下,并重命名为mysql 
[root@master ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 
# 赋予可执行权限 
[root@master ~]# chmod +x /etc/init.d/mysqld 
# 添加服务 
[root@master ~]# chkconfig --add mysqld 
# 显示服务列表 
[root@master ~]# chkconfig --list 
Note: This output shows SysV services only and does not include native 
      systemd services. SysV configuration data might be overridden by native   
      systemd configuration. 
      If you want to list systemd services use 'systemctl list-unit-files'. 
      To see services enabled on particular target use 
      'systemctl list-dependencies [target]'. 
mysqld          0:off 1:off 2:on  3:on  4:on  5:on  6:off 
netconsole      0:off 1:off 2:off 3:off 4:off 5:off 6:off 
network         0:off 1:off 2:on  3:on  4:on  5:on  6:off