• [MySQL] Linux下安装mysql8(基于RPM离线安装和yum方式安装)


    请添加图片描述


    本文主要介绍在Linux环境安装MySQL的5种方法,其中包括离线使用RPM安装MySQL、使用YUM源安装指定版本的MySQL、一键式傻瓜安装MySQL、免安装压缩包方式等。

    文章目录

    基于 RPM 包进行安装

    1. 下载rpm离线安装包

    官网mysql community版本下载连接:点击这里

    在这里插入图片描述

    如果你的Linux可以连接外网,并且可以使用 wget 这种方式下载,可以跳过第2步。


    2. 移动所下载的MySQL客户端安装包到VM服务器

    你在第一步所下载的安装包名字类似于:mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar

    你可以使用FileZilla或者WinSCP等工具移动安装包到VM服务器中(过程略)。


    3. 解压下载的安装包
    tar -xvf mysql-8.0.15-1.el7.x86_64.rpm-bundle.tar
    
    • 1

    在这里插入图片描述


    4. 安装必要的rpm包

    必须安装的rpm包有:

    • mysql-community-common
    • mysql-community-libs
    • mysql-community-libs-compat
    • mysql-community-server
    • mysql-community-client

    使用rpm命令进行安装(因为package有依赖关系,安装时注意顺序)

    rpm -ivh mysql-community-common-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-libs-compat-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-client-8.0.15-1.el7.x86_64.rpm
    rpm -ivh mysql-community-server-8.0.15-1.el7.x86_64.rpm
    
    • 1
    • 2
    • 3
    • 4
    • 5

    安装过程图下图:

    在这里插入图片描述

    5. 配置my.cnf文件(可选项,如果不需要可跳过)

    在完成上述4步骤后,会在/etc/下创建my.cnf文件以及my.cnf.d文件夹,如果有需要需要配置该文件。

    在mysql启动初始化前,一定要确认根据自己所需的MySQL参数,是否需要修改my.cnf文件,比如区分表名大小写,在MySQL8.0之前,是可以在mysql启动后进行重新修改的,但是8.0之后,只能在MySQL启动前进行配置,所以强烈建议,在第一次初始化启动MySQL前,先进行配置my.cnf


    6. 执行MySQL初始化,并获取root账户初始密码

    依次执行命令:

    # 初始化mysql
    mysqld --initialize
    
    • 1
    • 2
    # 获取密码
    grep "password" /var/log/mysqld.log
    
    • 1
    • 2

    执行情况如下图:
    在这里插入图片描述

    如果执行初始化过程中出现错误,可执行 tail -100f /var/log/mysqld.log 查看错误日志log。

    如果直接使用系统默认的my.cnf文件,没有进行任何修改,建议使用如下命令进行初始化:

    # 使用user用户,并忽略表名大小写进行初始化
    mysqld --initialize --user=mysql --lower_case_table_names=1
    
    • 1
    • 2

    7. 启动MySQL服务

    执行命令启动MySQL服务

    systemctl start mysqld
    
    • 1

    命令执行如下图:
    在这里插入图片描述


    8. 使用默认密码登陆mysql

    在这里插入图片描述


    9. 修改root密码

    使用默认密码登陆后,需要强制修改初始化默认的登陆密码,不然会出现如下错误:

    ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

    在这里插入图片描述

    使用如下命令修改密码:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '******';
    
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3

    修改密码后现在就可以正常的去操作了。

    在这里插入图片描述


    10. 配置mysql允许远程访问(可选)

    依次执行下列SQL进行修改允许

    -- 远程设置
    USE mysql;
    UPDATE mysql.user SET host = '%' WHERE user = 'root';
    
    SELECT user, host, plugin, authentication_string FROM mysql.user;
    
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    11. 配置开机启动启动(可选)

    安装MySQL之后,默认为不自启,需要手动开启

    # 查看MySQL是否自启
    systemctl is-enabled mysqld
    
    # 开启自启
    systemctl enable mysqld
    # 关闭自启
    systemctl disable mysqld
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    12. 防火墙放行3306端口
    # 永久开放3306端口
    firewall-cmd --permanent --zone=public --add-port=3306/tcp
    # 重启防火墙
    systemctl restart firewalld
    # 检测设定是否生效
    iptables -L -n | grep 3306
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6



    基于 yum 进行安装


    一、基于yum仓库进行安装指定版本MySQL
    1. 下载yum仓库的 rpm离线安装包

     1.1 官网下载连接:点击这里

    在这里插入图片描述

     1.2. 进入到下一步页面,点击下载

    在这里插入图片描述

    如果你的Linux可以连接外网,并且可以使用 wget 这种方式下载,可以跳过第2步。


    2. 移动所下载的MySQL客户端安装包到VM服务器

    你在第一步所下载的安装包名字类似于:mysql80-community-release-el8-4.noarch.rpm

    你可以使用FileZilla或者WinSCP等工具移动安装包到VM服务器中(过程略)。


    3. 安装MySQL的yum源

    通过如下命令安装mysql的yum源:

    sudo yum -y install mysql80-community-release-el8-4.noarch.rpm
    
    • 1

    在这里插入图片描述

    该命令执行完成后,会在/etc/yum.repos.d/目录下创建一个mysql-community.repo文件,这就是mysql的yum源。当然你也可通过命令的方式查看mysql的yum源是否安装成功。

    yum repolist enabled | grep "mysql.*-community.*"
    
    • 1

    4. 配置yum源仓库

      4.1 编辑yum源文件

    由于下载的yum源文件默认开启的是安装mysql的最高版本。如果你想安装低版本的mysql,则需要对mysql的yum源文件进行修改,具体为修改/etc/yum.repos.d/mysql-community.repo文件。把mysql8.0安装源设置为enabled=0,而指定的mysql8.0.15小版本安装源设置为enabled=1。如果没有,就copy一份,修改baseurl和enable。同理,如果你想安装mysql5.7也一样

    vim /etc/yum.repos.d/mysql-community.repo
    
    • 1

    在这里插入图片描述

    上述配置文件中的baseurl即为yum源的远程仓库地址,也可以直接访问下面的网址,进行点击查看安装源http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/
    在这里插入图片描述

      4.2 验证修改(不出现错误,验证成功)

    yum repolist enabled | grep mysql
    
    • 1

    5. 查看软件的所以历史版本,找到当前yum源支持的所有MySQL历史版本
    yum search mysql --showduplicates
    
    • 1

    执行如图所示,可以看到,当前yum源可以支持安装如下的所有历史版本
    在这里插入图片描述


    6. 安装指定版本mysql

    修改完成之后执行如下命令进行安装:

    注意该命令默认会安装当前配置的yum源的最高版本,如果需要指定具体的小版本,请执行后面命令

    yum install mysql-community-server
    
    • 1

    可以将下面命令中的8.0.15替换成你上面第5步中的任何历史版本

    sudo yum install mysql-community-{server,client,common,libs}-8.0.15-*
    
    • 1

    安装如图所示,可以看到完成安装后,执行mysqladmin --version查看到最终安装的MySQL版本

    在这里插入图片描述


    7. 后续步骤

    参照本文上面的 基于 RPM 包进行安装 中步骤:5~12 即可,本文不再赘述。



    二、基于yum仓库进行安装最新版本MySQL

    **如果你不关心具体的版本,只想直接安装最新的版本的MySQL,步骤如下

    1. 使用yum直接安装MySQL
    sudo yum -y install mysql-server
    
    • 1
    2. 后续步骤

    参照本文上面的 基于 RPM 包进行安装 中步骤:5~12 即可,本文不再赘述。


    使用下面命令可以查看已经安装的mysql
    rpm -qa | grep mysql
    或命令
    yum list installed | grep mysql

    可以使用下面命令,卸载使用yum安装的MySQL
    yum -y remove mysql80-community-release.noarch



    三、基于yum downgrade安装指定版本MySQL
    1. 直接使用yum安装最新版本MySQL
    sudo yum -y install mysql-server
    
    • 1
    2. 查看本机yum源支持安装的历史版本MySQL
    yum search mysql --showduplicates
    
    • 1

    执行如图所示,可以看到,当前yum源可以支持安装如下的所有历史版本
    在这里插入图片描述


    3. 执行降级安装指定版本的MySQL

    本文主要主要介绍初始安装MySQL,如果你的数据库里已经有自己的数据,那么降级前请做好备份。

    测试机器已经安装了 MySQL 8.0.15版本,本示例是从8.0.15降级到8.0.12版本

    在这里插入图片描述

    执行降级安装命令

    在命令中的版本,即为你想降级的版本号,该版本号在上述第2步骤历史版本中查看所得。

    yum downgrade mysql-community-server-8.0.12-1.el7.x86_64
    
    • 1

    降级安装过程如图所示:
    在这里插入图片描述


    4. 后续步骤

    参照本文上面的 基于 RPM 包进行安装 中步骤:5~12 即可,本文不再赘述。


    5. 验证降级后的安装版本

    重新登陆MySQL,可以看到版本已经降级到指定的8.0.12版本。
    在这里插入图片描述



    四、使用免安装的压缩文件包,配置指定版本MySQL

    这种方法类似在Windows操作系统里直接下载的免安装软件,下载即用。Linux中也同样有这种免安装包,但是Linux中需要进行一些配置。


    1. 下载MySQL所需版本的免安装压缩包(Compressed TAR Archive)

    官网mysql community版本下载连接:点击这里

    在这里插入图片描述

    如果你的Linux可以连接外网,并且可以使用 wget 这种方式下载,可以跳过第2步。


    2. 移动压缩包到Linux服务器

    你在第一步所下载的安装包名字类似于:mysql-8.0.15-el7-x86_64.tar.gz

    你可以使用FileZilla或者WinSCP等工具移动安装包到VM服务器中(过程略)。


    3. 前期准备操作(重要)
    1. 1 创建mysql用户和用户组
    sudo groupadd mysql
    sudo useradd mysql -r -g mysql -M -s /sbin/nologin
    
    • 1
    • 2
    1. 2 创建mysql数据存储目录data、mysql的log文件夹和临时文件夹
    # 下列各路径可以根据所需自行更改位置
    sudo mkdir -p /data/logs/mysql/
    sudo mkdir -p /data/mysql/data/
    sudo mkdir -p /data/tmp/mysql/mysql-tmp0
    sudo mkdir -p /data/tmp/mysql/mysql-tmp1
    
    # 存放MySQL套接字文件目录
    sudo mkdir -p /var/lib/mysql/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    1. 3 授权所需文件夹给mysql用户和用户组
    #1、 授权data数据目录给mysql用户
    sudo chown -R mysql:mysql /data/mysql/
    
    #2、 授权log目录给mysql用户
    sudo chown -R mysql:mysql /data/logs/mysql
    
    #3、 授权临时目录给mysql用户
    sudo chown -R mysql:mysql /data/tmp/mysql
    
    #4、授权套接字文件目录给mysql用户
    sudo chown -R mysql:mysql /var/lib/mysql/
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    1. 4 安装必要依赖包(非常重要
    sudo yum -y install perl.x86_64
    sudo yum -y install libaio.x86_64
    sudo yum -y install net-tools.x86_64
    
    • 1
    • 2
    • 3

    4. 解压MySQL压缩包
    1. 1 解压压缩包到/usr/local/
    sudo tar -xzvf mysql-8.0.15-el7-x86_64.tar.gz -C /usr/local
    
    • 1
    1. 2 修改解压后的默认文件夹名字
    sudo mv mysql-8.0.15-el7-x86_64/ mysql
    
    • 1

    上述的4.1和4.2也可以直接使用下面一条命令,具体命令含义自行查找学习,也可以私信我。

    sudo mkdir /usr/local/mysql && sudo mysql-8.0.15-el7-x86_64.tar.gz -C /usr/local/mysql --strip-components 1

    1. 3 授权所属文件夹权限给mysql用户和用户组

    执行完结果如图:
    在这里插入图片描述

    解压开mysql内部文件:
    在这里插入图片描述


    5. 修改my.cnf配置文件文件(/etc/my.cnf)

    根据所需,需要创建适合自己的my.cnf文件,放置于/etc/下,也可以根据自身所需,修改放置路径。

    这里提供一个模板做为参考:https://github.com/bluetata/my.cnf


    6. 创建软连接(可选)

    为了方便执行mysql的命令,创建如下软连接到系统bin和sbin下

    sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
    sudo ln -s /usr/local/mysql/bin/mysqld /usr/sbin/mysqld
    sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin/mysqladmin
    
    • 1
    • 2
    • 3

    在这里插入图片描述


    7. 添加mysql到系统服务中

    将MySQL添加到系统服务,这样就可以使用systemctl来控制MySQL服务了

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    chmod 700 /etc/rc.d/init.d/mysqld
    
    • 1
    • 2

    修改了配置,需要重新加载,再尝试通过systemctl启动mysqld.service

    systemctl daemon-reload
    
    • 1

    8. 配置环境变量
    1. 1 编辑profile文件
    sudo vim /etc/profile
    
    • 1
    1. 2 在profile文件中最后面 追加下面配置
    # MySQL environment variables
    export MYSQL_HOME=/usr/local/mysql
    export PATH=$MYSQL_HOME/bin:$PATH
    
    • 1
    • 2
    • 3
    1. 3 重新加载profile文件
    source /etc/profile
    
    • 1

    9. 执行数据库初始化
    mysqld --initialize --user=mysql --lower_case_table_names=1
    
    • 1

    10. 获取初始化密码

    注意初始化的密码存放在你在my.cnf中配置的error log文件中

    # 获取密码
    grep password /data/logs/mysql/mysql_error.log
    
    • 1
    • 2

    11. 启动mysql

    执行命令启动MySQL服务

    systemctl start mysqld
    
    • 1

    执行启动后如图所示,可以看到mysql正常启动,并且一些参数为我们之前配置的:
    在这里插入图片描述


    12. 后续步骤(登陆修改密码等)

    参照本文上面的 基于 RPM 包进行安装 中步骤:8~12 即可,本文不再赘述。


    :本文原创由 bluetata 发布于: https://bluetata.blog.csdn.net/ 转载请务必注明出处。


  • 相关阅读:
    QGradient(渐变填充)
    信号量、互斥锁、计数信号量
    指纹识别描述
    acwing算法基础之基础算法--位运算算法
    记一次 .NET 某智慧物流 WCS系统 CPU 爆高分析
    MachineLearning 11. 机器学习之随机森林生存分析(randomForestSRC)
    一文叫你使用trace查看函数调用关系|分析Linux性能
    分享30个PHP源码,总有一款适合你
    19、动态路由_下划线为前缀的文件
    React——Redux在项目中的搭建
  • 原文地址:https://blog.csdn.net/dietime1943/article/details/127393684