Linux中MySQL.tar.gz包的安装

前言

我们知道,在Linux中安装MySQL的方式有两种。一种是rpm包,一种是tar.gz包。
本文中详细记录tar.gz包的安装方式。
以 MySQL5.7为例

下载就不累述了。

注意

在安装新的MySQL之前,建议先删除系统中自带或遗留的mysql和mariadb。
查看

rpm -qa | grep mysql
rpm -qa | grep mariadb

删除

rpm -e --nodeps 上面查出来的名字

全删除之后可以安装。

上传

找一个与系统文件不冲突的路径,将下载的tar.gz上传。如/opt/software。

解压并简化名称

tar -zxvf mysql-5.7.38-el7-x86_64.tar.gz
mv mysql-5.7.38-el7-x86_64 mysql-5.7.38

编辑配置文件

里面的目录要根据你自己的改:
/opt/software/mysql-5.7.38 改成你自己的实际解压目录。

#进入到support目录
cd mysql-5.7.38/support-files
#编辑一个cnf配置文件
vim my_default.cnf
#内容如下:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
basedir = /opt/software/mysql-5.7.38
datadir = /opt/software/mysql-5.7.38/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
log-error = /opt/software/mysql-5.7.38/data/mysqld.log
pid-file = /opt/software/mysql-5.7.38/data/mysqld.pid
cp my_default.cnf /etc/my.cnf

用户和权限

查看是否存在:(如果有内容输出就是存在的,可以跳过后面的创建。)

cat /etc/group | grep mysql
cat /etc/passwd | grep mysql

如果不存在,创建:

groupadd mysql
useradd -r -g mysql mysql

创建data目录

cd /opt/software/mysql-5.7.38
mkdir data
chown -R mysql.mysql /opt/software/mysql-5.7.38

初始化数据库

cd /opt/software/mysql-5.7.38

./bin/mysqld --initialize --user=mysql --basedir=/opt/software/mysql-5.7.38/ --datadir=/opt/software/mysql-5.7.38/data/

#如果报错 缺少依赖 执行下面命令 没有报错 无需执行
yum install -y libaio

修改密码

#查看初始化的随机密码
cat /opt/software/mysql-5.7.38/data/mysqld.log

#最后一行为
[Note] A temporary password is generated for root@localhost: q5f&ka2ypLd4
#那么q5f&ka2ypLd4就是初始密码 可以复制出来 一会儿使用 

复制启动脚本

cp support-files/mysql.server /etc/init.d/mysql

#启动
service mysql start

登录,修改密码+开启远程登录

#在mysql-5.7.38目录下
cd /opt/software/mysql-5.7.38
./bin/mysql -uroot -p  #回车
#输入刚才复制出来的密码(为了脱敏,shell中不显示,使用了ssh连接工具的话可以直接右键粘贴回车)
#修改密码
mysql>  set password=password('123456');
mysql>  flush privileges;
#开启远程登录权限
mysql>  grant all privileges on *.* to root@'%' identified by '123456';
mysql>  flush privileges;
# 退出
mysql> exit

重启服务

service mysql stop
service mysql start

创建软链

每次都要进入到mysql的安装目录中去启动,非常不方便,可以通过创建软链的方式,这样在任何界面都可以直接使用mysql了。

ln -s /opt/software/mysql-5.7.38/bin/mysql  /usr/bin

最后

如果你用的是虚拟机。这里建议给虚拟机加一个快照。方便以后回滚或者修改。随便折腾。

博主是要在麒麟V10系统中尝试搭建CDH6,所以在此记录。
创建完成数据库之后,初始化一些CDH需要的库:

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'zmw123';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'zmw123';

搞定。后续会有其他组件的更新。