本文参考链接:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html

1 环境介绍

系统:CentOS Linux release 7.9.2009 (Core)
MySQL:MySQL 8.0.27

2 安装方式

在CentOS 7 上安装MySQL有 3 种方式:①yum安装;②源码安装;③二进制文件安装。
本文所介绍的是第三种安装方式:使用二进制文件安装。

3 下载MySQL

官网下载地址:https://dev.mysql.com/downloads/mysql/
**Select Operating System:**Red Hat Enterprise Linux / Oracle Linux
**Select OS Version:**Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit)
选择mysql-8.0.27-el7-x86_64.tar文件进行下载
image.png

4 安装MySQL

4.1 安装前准备

  1. 如果系统之前安装过MySQL,要确保之前安装的MySQL已经完全删除,并且确保旧版本的数据文件、配置文件(/etc/my.cfg、/etc/mysql目录)已经删除,否则再次安装有可能会失败。 ```bash

    查看CentOS系统是否已安装mysql

    [root@localhost /]# rpm -qa|grep mysql

查看CentOS系统是否已安装mariadb, mysql会和mariadb的文件冲突,所以需要先卸载掉mariadb. mariadb 和 mysql 的历史渊源请自行谷歌

[root@localhost /]# rpm -qa|grep mariadb mariadb-libs-5.5.68-1.el7.x86_64

删除CentOS系统已安装的mariadb

[root@localhost /]# rpm -e —nodeps mariadb-libs-5.5.68-1.el7.x86_64 [root@localhost /]# rpm -qa|grep mariadb

删除历史MySQL的my.cfg配置文件

[root@localhost /]# rm /etc/my.cnf rm: cannot remove ‘/etc/my.cnf’: No such file or directory

删除历史MySQL的mysql文件夹

[root@localhost /]# rm -r /etc/mysql rm: cannot remove ‘/etc/mysql’: No such file or directory

检查mysql组和用户是否存在

[root@localhost /]# cat /etc/group | grep mysql [root@localhost /]# cat /etc/passwd | grep mysql

若存在,删除

userdel mysql #删除 mysql用户 groupdel mysql #删除 mysql用户组

  1. 2. MySQL 依赖`libaio`库,如果没有安装此库,则数据目录初始化和后续服务器启动步骤将失败,所以需要先安装`libaio`
  2. ```bash
  3. # search for info
  4. [root@localhost /]# yum search libaio
  5. # install library
  6. [root@localhost /]# yum install libaio

4.2 正式安装

注意:安装命令需要**root用户****具有sudo权限的用户**执行

  1. 创建mysql用户组

    1. [root@localhost opt]# groupadd mysql
  2. 创建mysql用户并指定用户所属组为mysql

    1. [root@localhost opt]# useradd -r -g mysql -s /bin/false mysql
  3. 上传下载的mysql-8.0.27-el7-x86_64.tar文件

  4. 解压mysql-8.0.27-el7-x86_64.tar文件,为后续操作方便,创建名为mysql的软链接 ```bash [root@localhost opt]# tar xvf mysql-8.0.27-el7-x86_64.tar mysql-test-8.0.27-el7-x86_64.tar.gz mysql-8.0.27-el7-x86_64.tar.gz mysql-router-8.0.27-el7-x86_64.tar.gz

[root@localhost opt]# tar zxvf mysql-8.0.27-el7-x86_64.tar.gz mysql-8.0.27-el7-x86_64/bin/ mysql-8.0.27-el7-x86_64/bin/myisam_ftdump mysql-8.0.27-el7-x86_64/bin/myisamchk mysql-8.0.27-el7-x86_64/bin/myisamlog mysql-8.0.27-el7-x86_64/bin/myisampack mysql-8.0.27-el7-x86_64/bin/mysql mysql-8.0.27-el7-x86_64/bin/mysql_config_editor mysql-8.0.27-el7-x86_64/bin/mysql_migrate_keyring mysql-8.0.27-el7-x86_64/bin/mysql_secure_installation mysql-8.0.27-el7-x86_64/bin/mysql_ssl_rsa_setup mysql-8.0.27-el7-x86_64/bin/mysql_tzinfo_to_sql mysql-8.0.27-el7-x86_64/bin/mysql_upgrade mysql-8.0.27-el7-x86_64/bin/mysqladmin mysql-8.0.27-el7-x86_64/bin/mysqlbinlog mysql-8.0.27-el7-x86_64/bin/mysqlcheck mysql-8.0.27-el7-x86_64/bin/mysqldump mysql-8.0.27-el7-x86_64/bin/mysqlimport mysql-8.0.27-el7-x86_64/bin/mysqlpump mysql-8.0.27-el7-x86_64/bin/mysqlshow mysql-8.0.27-el7-x86_64/bin/mysqlslap mysql-8.0.27-el7-x86_64/lib/ mysql-8.0.27-el7-x86_64/lib/plugin/ …

[root@localhost opt]# ln -s mysql-8.0.27-el7-x86_64 mysql [root@localhost opt]# ll total 3318816 lrwxrwxrwx. 1 root root 23 Dec 16 00:14 mysql -> mysql-8.0.27-el7-x86_64 drwxr-xr-x. 9 root root 129 Dec 16 00:13 mysql-8.0.27-el7-x86_64 -rw-r—r—. 1 root root 1229082112 Dec 15 23:46 mysql-8.0.27-el7-x86_64.tar -rw-r—r—. 1 7161 31415 827238016 Sep 28 22:33 mysql-8.0.27-el7-x86_64.tar.gz -rw-r—r—. 1 7161 31415 101781401 Sep 28 22:30 mysql-router-8.0.27-el7-x86_64.tar.gz -rw-r—r—. 1 7161 31415 300059201 Sep 28 22:31 mysql-test-8.0.27-el7-x86_64.tar.gz

  1. 5. 设置环境变量
  2. ```bash
  3. [root@localhost opt]# vim /etc/profile.d/custom.sh
  4. # The custom.sh is a customized file in the /etc/profile.d/ directory.
  5. # mysql env
  6. export PATH=$PATH:/opt/mysql/bin
  7. [root@localhost opt]# source /etc/profile.d/custom.sh
  1. mysql目录下创建data文件夹存放数据库数据

    1. [root@localhost opt]# cd /opt/mysql
    2. [root@localhost mysql]# mkdir data
  2. 修改权限 ```bash

    更改mysql文件夹及下级所有文件的所属的组为mysql组,用户为mysql

    [root@localhost mysql]# cd /opt/ [root@localhost opt]# chown -R mysql mysql/ [root@localhost opt]# chgrp -R mysql mysql/

修改mysql-files文件夹权限

[root@localhost opt]# cd mysql [root@localhost mysql]# chmod 750 data

  1. 8. 初始化`mysql`(注意记住初始化后的root用户密码)
  2. ```bash
  3. [root@localhost mysql]# pwd
  4. /opt/mysql
  5. [root@localhost mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
  6. 2021-12-15T17:25:42.046127Z 0 [System] [MY-013169] [Server] /opt/mysql-8.0.27-el7-x86_64/bin/mysqld (mysqld 8.0.27) initializing of server in progress as process 1757
  7. 2021-12-15T17:25:42.061106Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
  8. 2021-12-15T17:25:42.696621Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
  9. 2021-12-15T17:25:44.064512Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
  10. 2021-12-15T17:25:44.064541Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
  11. 2021-12-15T17:25:44.095699Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: cjMz8itj%Sk?
  1. 【可选】启用SSL加密

    1. [root@localhost mysql]# pwd
    2. /opt/mysql
    3. [root@localhost mysql]# bin/mysql_ssl_rsa_setup --datadir=/opt/mysql/data
  2. 启动mysql ```bash

    配置启动文件

    [root@localhost support-files]# vim mysql.server ···

    basedir=/opt/mysql datadir=/opt/mysql/data ···

复制启动文件到/etc下

[root@localhost support-files]# cp mysql.server /etc/init.d/mysql.server

[root@localhost mysql]# bin/mysqld_safe —user=mysql &

```


4.3 安装后设置