Centos8上安装mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz的详细步骤

901 阅读4分钟

引言

在学习mysql在Linux上的安装使用的时候,自己在mysql官网上下载了Linux版的mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz,发现用linux-glibc2.12-x86_64.tar.gz安装包安装与我看的视频教程里安装过程并不一样,了解后才知道,原来Linux上有三种安装软件的方式,yum命令远程安装,rpm包安装,还有二进制压缩包(.rar.gz)安装,本文记录了通过第三种方式在Centos8上安装mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz的详细步骤,一是给自己做个备忘,二是给想以这种方式安装mysql的同学提供个参考。 Centos8中 yum install找不到地址问题,使用使用以下两个命令再试 自2022年1月31日起,CentOS团队从官方镜像中移除CentOS 8的所有包,但软件包仍在官方镜像上保留一段时间。现在被转移到 vault.centos.org。如需继续运行旧CentOS 8,可以在/etc/yum.repos中更新repos.d,使用vault.centos.org代替mirror.centos.org

sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

执行完以上两个命令后会发现yun install 正常执行

1.下载并解压mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz

下载之前先给mysql创建个安装目录,我这里直接创建到了根目录/opt/mysql下

mkdir opt/mysql

有两种方式把mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz包下载到Linux中:

  1. 进入MySQl官网dev.mysql.com/downloads/m…先下载到你的本机上。

image.png 选择对应的版本,现在一般都是64位的电脑。

下载好之后通过文件传输工具把安装包传输到你的Linux系统中,我这里使用Xftp进行传输

image.png 直接把安装包拖到你刚才创建的目录下即可,我安装过了,所以下面会有两个文件,如果你没安装过右边是个空文件。

  1. 也可以进入Linux后使用命令进行下载,进入到/opt/mysql目录后执行以下命令
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz

这个链接其实就是第一步中下载的链接地址

image.png 可以看到我这里使用这种方法下载比较慢,第一种下载的很快,可根据自己的实际情况选择下载方式。 两种方式正确执行后都会使你的/opt/mysql目录下新增了.tar.gz的安装包

下载好之后就是解压 mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz包,在/opt/mysql目录下执行解压命令

tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz

执行完解压命令后在当前目录下执行ls -al命令进行查看,此时出现了解压好的文件夹

image.png 使用mv命令把冗余的文件名改为mysql-5.7.37

mv mysql-5.7.37-linux-glibc2.12-x86_64 mysql-5.7.37

2.安装和初始化Mysql

安装前先检查centos上有没有其他的mysql数据库mariadb数据库,如果有的话要先将其卸载

#检查mysql
rpm -qa | grep mysql
#检查mariadb
rpm -qa | grep mariadb
#卸载
 rpm -e --nodeps [需要卸载的文件名]

新建用户以安全方式运行进程,创建mysql用户组和mysql用户

groupadd mysql
useradd -r -g mysql mysql
#useradd -r 此参数是用来建立系统帐号,表示mysql用户是系统用户,不可用于登录系统,所建立的帐号不会建立使用者目录,也不会在乎纪录在/etc/login.defs.的定义值
#useradd -g 参数表示把mysql用户添加到mysql用户组中

创建data文件夹

#在文件夹mysql-5.7.37下执行命令
mkdir data

修改mysql-5.7.37文件夹以及其下的所有文件夹及文件的用户和所属用户组为mysql

chown -R mysql:mysql /opt/mysql/mysql-5.7.37

修改配置文件:/etc/my.cnf, 配置不对的话,初始化的时候会拿不到默认密码。 使用命令vim /etc/my.cnf 打开文件并修改,修改内容如下:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

basedir = /opt/mysql/mysql-5.7.37
datadir = /opt/mysql/mysql-5.7.37/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8

log-error = /opt/mysql/mysql-5.7.37/data/mysqld.log
pid-file = /opt/mysql/mysql-5.7.37/data/mysqld.pid

注意里面的路径要写你自己的安装路径 修改完毕后:wq! 保存退出

初始化数据库,进入到/opt/mysql/mysql-5.7.37/bin下执行以下命令:

./mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-5.7.37--datadir=/opt/mysql/mysql-5.7.37/data

注: 此处目录同样要换成你的安装目录,执行之后如果出现./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory错误,执行 yum install -y libaio 命令解决此问题

初始化完成之后,查看日志,在mysql-5.7.37文件夹下执行命令:

cat data/mysqld.log

在里面找到这行内容

2022-04-14T02:48:25.830050Z 1 [Note] A temporary password is generated for root@localhost: .mPj8pJG*k5V

(.mPj8pJG*k5V),这就是你的临时密码,找地方复制下来

把mysql服务设为开机启动

cp support-files/mysql.server /etc/init.d/mysql
#此处若显示是否覆盖   输入y覆盖即可

开启mysql服务

service mysql start

登录mysql,密码为刚才复制下来的临时密码

#进入到mysql-5.5.37/bin目录下执行命令:
mysql -u root -p +你的临时密码

注意此处可能遇到几个问题:

对应自己的情况按以下方式解决:

  1. 解决bash: mysql: command not found 的方法:

       配置PATH环境变量
       # vi ~/.bash_profile
       在文件最后面加入以下内容,并使用:wq保存
       export PATH=$PATH:/opt/mysql/mysql-5.7.37/bin
       刷新PATH
       # source ~/.bash_profile
    

    配置好此项之后,在任意位置即可打开mysql了

  2. 此处可能遇到mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory. 如果遇到此问题确保Linux在网络连通情况下执行命令

    yum install libncurses* -y

安装缺失的包文件即可

登录成功之后此时不能做任何事情,因为mysql默认必须修改密码之后才能操作数据库,在mysql中使用以下命令:

set password=password("你的密码");

使用主机登录要设置远程登录权限

grant all privileges on *.* to 'root'@'%' identified by '刚才设置的密码';

立即生效:

flush privileges;

注意mysql语句的

要想通过端口远程访问,还需关闭防火墙或者打开3306端口 关闭防火墙命令:

systemctl stop firewalld

开启防火墙命令:

systemctl start firewalld

打开3306端口:

#permanent参数代表永久生效,不加重启后失效
firewall-cmd --zone=public --add-port=3306/tcp --permanent

注意:开放端口后要重启防火墙生效

重启防火墙:

systemctl restart firewalld

查看3306端口是否已开:

firewall-cmd --query-port=3306/tcp
#若出现yes,代表已开启

如果不能在任意位置打开MySQL,使用以下操作再配置一下环境变量 配置环境变量:配置好了环境变量则可以在任意位置执行mysql -u root -p命令来登录ysql了

#编辑profile文件
vi /etc/profile

在文件最后一行添加内容:export PATH=$PATH:/opt/mysql/mysql-5.7.37/bin 同样要换成自己的安装目录 image.png 至此,使用mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz在centos上的安装流程全部结束。