1、安装前置工作

1.1 下载对应的 MySQL 版本

Enter this url https://downloads.mysql.com/archives/community/ into your browser, choose the same version of MySQL as your computer. Samples, choose a 5.7.44 version.

这里以 Linux 系统为例进行安装的,可以复制软件的地址去命令行中使用 wget 进行下载

下载完成之后使用解压缩命令将软件包解压(解压结束后可以删除压缩包):

tar -zxvf mysql-5.7.35-linux-x86_64.tar.gz

1.2 准备环境

  • 创建启动 MySQL 的用户

    groups mysql # 查看时候存在组,如果存在则跳过创建,否则进行创建
    ​
    groupadd mysql # 添加用户组
    useradd -r -g mysql mysql # 创建用户并添加所属组
  • 创建数据目录

    mkdir -p /data/mysql # 创建 MySQL 的数据库挂载目录
    chown mysql:mysql -R /data/mysql # 给用户添加目录权限
  • 修改 MySQL 启动文件配置

    [mysqld]
    bind-address=0.0.0.0 # 指定MySQL服务器绑定的IP地址。0.0.0.0表示绑定所有可用的网络接口,这意味着MySQL服务器将监听来自任何可用网络接口的连接
    port=3306 # 指定MySQL服务器监听的端口号
    user=mysql # 指定MySQL服务器进程运行时所使用的用户
    basedir=/usr/local/mysql # 指定MySQL安装的基础目录
    datadir=/data/mysql #  指定MySQL存储数据文件的目录
    socket=/tmp/mysql.sock # 指定MySQL服务器的Unix套接字文件路径
    log-error=/data/mysql/mysql.err # 指定MySQL错误日志文件的路径
    pid-file=/data/mysql/mysql.pid # 指定MySQL服务器进程ID(PID)文件的路径
    #character config
    character_set_server=utf8mb4 # 指定MySQL服务器的默认字符集
    symbolic-links=0 # 指定MySQL服务器是否允许使用符号链接。在这里,它被设置为0,表示禁止使用符号链接
    explicit_defaults_for_timestamp=true # 指定MySQL服务器是否启用了严格的模式(strict mode)来处理时间戳(timestamp)

1.3 准备启动目录

将刚才解压之后的文件目录移动到配置中指定的安装位置:

mkdir /usr/local/mysql/
mv mysql-5.7.35-linux-x86_64/ /usr/local/mysql/

2、安装启动服务

2.1 启动服务

cd /usr/local/mysql/bin/ # 进入可执行文件目录下
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

等待服务启动之后,初始化密码在 /data/mysql/mysql.err 文件的底部位置可以查看,但是我们这里不用他的初始化密码。

使用 MySQL 的启动脚本来安装服务:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start

mysql.server 是 MySQL 的安装包中提供的一个启动脚本示例,将这个示例脚本复制到/etc/init.d目录下,并且命名为mysql,可以使系统将其识别为MySQL服务的启动脚本。之后就可以使用系统的服务管理工具(如servicesystemctl)来启动、停止、重启MySQL服务,而不必手动执行启动脚本。

2.2 修改密码

由于我们现在还没有创建 MySQL 服务的用户,登陆时候不能通过用户密码的方式,需要走一些小技巧避过服务的鉴权操作。

  • 开启免密登录

    vim /etc/my.cnf
    #   在【mysqld】模块下面添加:skip-grant-tables 保存退出
  • 重启服务,使配置生效 。

     service mysql restart
  • 无密码登陆

    /usr/local/mysql/bin/mysql -u root -p # 不输入密码直接敲回车键
  • 刷新规则允许外部访问

    use mysql      # 选择访问mysql库
    update user set host = '%' where user = 'root'; # 使root能在任何host访问
    FLUSH PRIVILEGES;  # 刷新 
  • 修改密码

    ALTER USER "root"@"%" IDENTIFIED  BY "password";
    FLUSH PRIVILEGES;  # 刷新 

最后删除无密码登陆的配置,并重启服务。就可以使用刚才配置的密码进行 MySQL 服务的登陆了。

2.3 修改全局命令

执行 MySQL 服务命令还需要进入到安装目录下(全路径名称),每次都很麻烦,可以将服务全路径添加到全局 path 中:

vim /etc/profile
​
MYSQL_HOME=/usr/local/mysql
PATH=$PATH:$MYSQL_HOME/bin
export PATH MYSQL_HOME

保存退出之后使用 source /etc/profile 命令来加载配置。

3、卸载服务

  • 停止服务,先查看服务的状态,如果是在运行中则进行关闭,否则下一步。

    systemctl status mysql
    systemctl stop mysql
  • 查看安装服务并卸载

    rpm -qa | grep -i mysql
    ​
    rpm -ev XXXX # 将上述查询到的组件全部进行卸载
  • 删除残留目录

    find / -name mysql # 查看相关目录
    ​
    rm -rf XXXX # 删除目录