CentOS7离线安装mysql5.7

时间:2023-12-15 09:45:02

下载mysql5.7,系统选择redhat,版本选择RHEL7,下载RPM Bundle后得到一个tar文件。这里得到文件mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar,接下来解出文件。

tar -xf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar

因为是离线环境,建议在使用yum命令前先用以下命令清除本地mirrorlist

yum clean expire-cache

如果不执行上述命令系统可能会耗费大量时间尝试联网查找需要的包(反复提示"正在尝试其它镜像")。

接下来安装mysql

yum localinstall -y install mysql-community-{server,client,common,libs}-*

提一句,这里官网的命令后面多了个 mysql-5.*­,但我自己并没有看到匹配上的安装包,所以我选择省略。

如果yum命令用不了可以用rpm -i来安装,如下

for comp in common libs devel libs-compat client server;
do
find -regex .*mysql-community-$comp.*\.rpm | xargs rpm -i;
done

安装完成后可通过以下命令查看是否安装成功,

rpm  -qa | grep  mysql

接下来介绍两种办法配置并启动服务。

方法一:[开始]

在启动服务之前我们先修改配置文件/etc/my.cnf,在mysqld这节中加上如下配置禁用validate_password插件

validate_password=OFF

此插件默认启用,默认安全级别为1,会对密码有较严格的要求,密码需要特殊字符,大写字母,小写字母,字母组合,并且不小于8位,否则会提示

Your password does not satisfy the current policy requirements

关于安全级别详情参看Password Validation Plugin Options and Variables

修改完成配置文件后,直接启动服务即可

service mysqld start

启动服务会自动初始化data文件夹,默认密码记录在/var/log/mysqld.log,通过命令可快速查看

grep 'temporary password' /var/log/mysqld.log

方法一:[结束]

方法二:[开始]

用以下命令手动初始化data文件夹,如果需要修改/etc/my.cnf文件请在执行以下命令之前修改

mysqld --user=mysql --initialize-insecure

注意在使用此命令之前不要启动服务,如果启动了则需要停止服务并清空data目录下的文件再重新执行以上命令初始化data文件夹。

完成后则可直接启动mysqld服务

service mysqld start

这种方法初始化默认密码为空字符串

方法二:[结束]

接下来即可通过命令行登录了,我们需要修改密码

mysql -uroot -p

登陆后使用如下命令即可修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

注意这里的root是localhostroot如果需要通过ip登录则需要额外创建一个用户

CREATE USER 'root'@'%' IDENTIFIED BY 'MyNewPass6!';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

以上代码新创建了一个允许任意host登录的root用户并授权,这里虽然也叫root但其实和localhost的root是两个不同的用户,当然也可以叫别的名字

如果要卸载mysql,则

yum remove 'mysql-community-*'
rm -rf /var/lib/mysql /var/log/mysqld.log

如果yum用不了可以用rpm -e来卸载,如下

for comp in server client libs-compat devel libs common;
do
rpm -e mysql-community-$comp;
done

Installing MySQL on Linux Using RPM Packages from Oracle

CentOS7离线安装MySQL