Linux 安装 MySQL 8.0 详解

见到很多的 mysql 安装,Linux 安装也好,Windows 安装也罢,总之踩了不是一次两次的坑,故此总结一下。有句话说得好:【世界上本没有路,走的人多了,也便成了路】,其实我想说的是:【世界上本没有正确方法,踩的坑多了,也便总结出了正确方法】,希望路过的好心人可以点个赞,转载注明请出处。(本文只介绍 centos 系统, 以 centos 7 为例)

MySQL

  • MySQL 安装包下载地址:
  • MySQL 下载:
    • 查看 Linux 内核以及系统架构
      • Linux 内核版本
      • Linux 系统架构
    • 下载 MySQL:
      • 下载方式一:
        • 下载地址:
        • 需要用到的 MySQL rpm 包:
      • 下载方式二(自定义下载):
        • 下载地址:
      • 下载方式三:
        • 下载 rpm bundle
        • 自定义下载 rpm 包:(这是 x86 架构的 rpm 包)
  • MySQL 解压 / 上传:
    • Windows 下载(方式一、方式二):
      • 方式一:
      • 方式二:
    • Linux 下载:
      • 方式三:
        • `下载的rpm bundle 的同学请注意`:
  • MySQL 安装:
    • rpm 安装(即: ***`上述所有的步骤都是为了 rpm 安装准备的`***):
      • 安装前续工作:
          • **`优先安装其他的 rpm 包的效果如下`**:
      • 安装:
      • `【出问题的童孩重点关注哦!】`
        • 1. 启动 MySQL 报错:
        • 2.提示 ERROR 2002 (HY000):
  • MySQL 初始化:
    • `【修改密码出现问题的童孩看过来!】`
      • · 问题一:
      • · 问题二:

MySQL 安装包下载地址:

MySQL官网:点击这里跳转
点击图中箭头指的位置:
Linux 安装 MySQL 8.0 详解_第1张图片
如果你是 Linux 系统点击红色箭头指的位置, Windows 系统则是蓝色箭头(Windows 系统红色箭头也可),唯一的区别就是:【点击蓝色箭头只能安装 Windows 系统的】。
Linux 安装 MySQL 8.0 详解_第2张图片
预防有些人看不懂,贴个直接跳转链接:点我直接跳转

MySQL 下载:

CentOS 系统的选择箭头指的部分(选择这个的原因是:我们一直都把 CentOS 称为 RedHat 的社区版)
Linux 安装 MySQL 8.0 详解_第3张图片

下图从上往下依次是:(根据自己 Linux 版本,选择适合自己系统的 MySQL 版本)

  1. 下拉框所示的所有版本(如果不嫌麻烦,可以选择这个慢慢找)
  2. CentOS(RedHat) 8 x86 版本 (64位)
  3. CentOS(RedHat) 8 arm 版本 (64位)
  4. CentOS(RedHat) 7 x86 版本 (64位)
  5. CentOS(RedHat) 7 arm 版本 (64位)
  6. CentOS(RedHat) 6 x86 版本 (64位)
  7. CentOS(RedHat) 6 x86 版本 (32位)

arm 和 x86 指的是 Linux 系统架构:arm 和 x86 的区别,点我查看
Linux 安装 MySQL 8.0 详解_第4张图片

查看 Linux 内核以及系统架构

Linux 内核版本

# 使用`hostnamectl`命令查看内核版本
[root@用户名 ~]# hostnamectl

效果如下:
Linux 安装 MySQL 8.0 详解_第5张图片

Linux 系统架构

以下两个命令二选一

# 使用`uname`命令查看系统架构
[root@用户名 ~]# uname -m
# 使用`arch`命令查看系统架构
[root@用户名 ~]# arch

效果分别如下:(x86_64 是指: x86 版本 64 位)
uname
arch

下载 MySQL:

下载方式一:

点击 RPM Bundle 后面的 Download

Linux 安装 MySQL 8.0 详解_第6张图片
点击下面箭头指的部分
Linux 安装 MySQL 8.0 详解_第7张图片

下载地址:

预防有些人看不懂,贴个直接跳转链接:下载 MySQL 8.0.28 (x86 架构_64位的CentOS 7 系统)
备注】:这个版本只适合和我括号标注内的 Linux 系统,其他的请自己根据我的下载步骤自行下载。

做个烂好人,再贴个arm 的下载链接:下载 MySQL 8.0.28 (arm 架构_64位的 CentOS 7 系统)
备注】: 同上

下载后的效果如下(未解压):
Linux 安装 MySQL 8.0 详解_第8张图片
熟悉 Linux 系统的童孩们应该也已经知道了这就是一堆 rpm 包。

需要用到的 MySQL rpm 包:

Linux 安装 MySQL 8.0 详解_第9张图片

备注】:并不是说其他的 rpm 包就用不到,只是这几个 rpm 是安装 MySQL 必须要有的 rpm 包。

下载方式二(自定义下载):

其实就是选择自己需要的包自定义下载,效果相同:

Linux 安装 MySQL 8.0 详解_第10张图片

下载地址:

预防有些人找不到位置,故此贴一下下载链接:
MySQL 8.0.28_server (x86 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_client (x86 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_client_plugins (x86 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_common (x86 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_libs (x86 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_icu-data-files (x86 架构_64位的 CentOS 7 系统)
备注】:这个版本只适合和我括号标注内的 Linux 系统,其他的请自己根据我的下载步骤自行下载。
做个烂好人,再贴个arm 的下载链接:
MySQL 8.0.28_server (arm 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_client (arm 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_client_plugins (arm 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_common (arm 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_libs (arm 架构_64位的 CentOS 7 系统)
MySQL 8.0.28_icu-data-files (arn 架构_64位的 CentOS 7 系统)
备注】: 同上

下载方式三:

Linux 直接下载:(上述两种方式就一次性介绍了)

下载 rpm bundle

下载 MySQL 8.0.28 ( x86 架构_64位的CentOS 7 系统 ):

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar

下载 MySQL 8.0.28 ( arm 架构_64位的CentOS 7 系统 ):

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.28-1.el7.aarch64.rpm-bundle.tar

自定义下载 rpm 包:(这是 x86 架构的 rpm 包)

下载 arm 架构的只需要吧 x86_ 替换成 aarch 就行了
例: mysql-community-server-8.0.28-1.el7.x86_64.rpm (x86 架构)
mysql-community-server-8.0.28-1.el7.aarch64.rpm(arm 架构)

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-server-8.0.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-client-8.0.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-common-8.0.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-libs-8.0.28-1.el7.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm

MySQL 解压 / 上传:

Windows 下载(方式一、方式二):

这里解释一下,下载的并不是 Windows 安装包,而是在 Windows 主机上下载的 rpm 包。

方式一:

通过方式一下载的 rpm bundle,你可以通过压缩软件 解压 到 Windows 系统本地,再通过 xftp 、 MobaXterm 等软件连接 Linux 把需要的 rpm 包 上传 到 Linux 系统中。

方式二:

通过方式二下载的 rpm 包 除解压缩外,操作同上

Linux 下载:

方式三:

下载的rpm bundle 的同学请注意

需要通过下述命令解压:

tar -xvf mysql-8.0.28-1.el7.x86_64.rpm-bundle.tar -C ./mysql

照顾有些童孩没学过 tar 命令:点我查看 tar 的基本使用
注意】:这里如果出现下图中错误
应该在当前目录下先执行

mkdir mysql

然后再执行解压命令。
解压完之后如下:

MySQL 安装:

rpm 安装(即: 上述所有的步骤都是为了 rpm 安装准备的):

rpm 安装有一个弊端: 就是想要自定义安装路径会很麻烦,但是重置密码挺方便。

安装前续工作:

  • 查看系统是否安装了 MySQL:
rpm -qa | grep mysql
  • 卸载已安装的 MySQL:(没查询到不用执行)
rpm -e --nodeps + 查询到的名字

例:

  • 修改 /tmp 目录权限

一定要修改 /tmp 目录权限
因为 mysql 安装过程中,会通过 mysql 用户在 /tmp 目录下新建 tmp_db 文件,所以需要给 /tmp 目录较大的权限

命令:

chown -R 777 /tmp
  • 检查依赖是否存在:

命令:

rpm -qa | grep libaio
rpm -qa | grep  net-tools


  • 删除 mysql-libs:

安装 mysql-community-libs-8.0.28-1.el7.x86_64.rpm 的时候会有冲突。

命令:

yum  remove mysql-libs
  • 安装顺序(一定按照下图执行):
    Linux 安装 MySQL 8.0 详解_第11张图片
优先安装其他的 rpm 包的效果如下

安装:

这里会讲一下安装过程中 零y 遇到的一些小问题,并附上解决方案。 安装前请先 确认 零y 前面讲的安装前序工作 都已经做好了。

  1. 安装 mysql-community-common-8.0.28-1.el7.x86_64.rpm:

命令:

rpm -ivh mysql-community-common-8.0.28-1.el7.x86_64.rpm

【提醒】:输入命令如果报错,请确认自己的当前所在目录下是否有 rpm 包
2. 安装 mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm:

命令:

rpm -ivh mysql-community-client-plugins-8.0.28-1.el7.x86_64.rpm
  1. 安装 mysql-community-libs-8.0.28-1.el7.x86_64.rpm:

命令:

rpm -ivh mysql-community-libs-8.0.28-1.el7.x86_64.rpm

【注意】:这里报错说明你没看安装前序工作,顺序执行一遍
4. 安装 mysql-community-client-8.0.28-1.el7.x86_64.rpm:

命令:

rpm -ivh mysql-community-client-8.0.28-1.el7.x86_64.rpm
  1. 安装 mysql-community-server-8.0.28-1.el7.x86_64.rpm:

命令:

rpm -ivh mysql-community-server-8.0.28-1.el7.x86_64.rpm

【注意】:如果安装过程中提示
则需要先安装:mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm
附上安装命令:

rpm -ivh mysql-community-icu-data-files-8.0.28-1.el7.x86_64.rpm

【出问题的童孩重点关注哦!】

1. 启动 MySQL 报错:

说之前先附一个原文链接:原文链接
原文作者写的挺不错的,有问题的小伙伴可以点进去看一看

Linux 安装 MySQL 8.0 详解_第12张图片
为了预防有偷懒的童孩,链接都不想点,话不多说,直接贴步骤:

  1. 修改 /var/lib/mysql 权限:

命令:

chmod -R 777 /var/lib/mysql
  1. 删除 /var/lib/mysql 文件夹里面的所有的内容:

命令:

rm -rf /var/lib/mysql/*
  1. 重新启动 mysqld 服务:

命令:

service mysqld restart

2.提示 ERROR 2002 (HY000):

无论输入什么命令,都会提示类似如下命令:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '****/mysql.sock' (2)
贴一下原文链接:原文链接

为了预防有偷懒的童孩,链接都不想点,话不多说,直接贴步骤:

  1. 停止 mysql 服务:(为了预防有些童孩 开启了 MySQL 服务)

命令:

service mysqld stop
  1. 找到 socket 文件的正确位置:

命令:

find / -name '*.sock'

【提醒】:记住以 mysql.sock 的路径 (就是复制)

【注意】:如果找不到这个文件,先启动 mysql 再执行
3. 修改 my.cnf 文件:

命令:

vim /etc/my.cnf

Linux 安装 MySQL 8.0 详解_第13张图片
注意】: 红色框是需要添加的部分,蓝色框的部分需要保持一致,并且 这里是你前面复制的 mysql.sock 的路径。
添加部分的代码(复制粘贴要根据实际情况做修改):

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

然后保存退出就好

MySQL 初始化:

  1. 服务初始化:

命令:

mysqld --initialize --user=mysql

【说明】:–initialize 选项是以 【安全模式】来初始化,会为用户生成一个秘密,并将生成的密码标记为 已过期,登录后你需要重新设置一个密码。

  1. 获取初始化生成的密码:

命令:

cat /var/log/mysqld.log

图中蓝色标注的地方就是生成的【临时】密码
Linux 安装 MySQL 8.0 详解_第14张图片
【说明】:生成的密码会在日志中记录一次,所以只需要查看 mysqld 的日志就可以知道临时密码,并利用临时密码登陆一次 mysql 。

  1. 设置开机自启:

命令:

systemctl enable mysqld.service # 允许开机自启
systemctl disable mysqld.service # 禁止开机自启

【说明】: 设置开机自启是为了不让你每次开机都执行一次:stystemctl start mysqld.service

  1. 查看 MySQL 服务状态:

命令:

systemctl status mysqld / service mysqld status 
  1. 开启 MySQL:

命令:

service mysqld start /  systemctl start mysqld.service
  1. 修改 MySQL 密码:

登陆 MySQL 之前一定要启动 MySQL 服务。

命令:

alter user 'root'@'localhost' identified by '你的密码';

【修改密码出现问题的童孩看过来!】

为了避免被人误会抄袭,贴一下原文链接:1819 报错点这里准没错

· 问题一:

看下面的效果图,就是无论怎么设置密码,他都会提示 1819 错误码,而且按照本人提供的链接设置甚至还会出现 1820 错误码,细心的童孩也可能已经发现了,零y 也出现了 同样的问题,在输入 set global validate_password_policy=0; 的时候,1820 分外夺目。

Linux 安装 MySQL 8.0 详解_第15张图片
【解决方式】:

不说废话了,直接贴代码

 alter user 'root'@'localhost' identified by '$Password123';


【说明】:这个设置之所以能成功,是因为:MySQL 的初始密码的密码强度是 MEDIUM,含义是:刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。(细心的童孩应该也能发现,是大写或者小写字母,其实 零y 也试过,只含有小写字母同样会有 1819 错误,只含有大写字母的没试过,但是同时含有:数字、小写、大写字母、特殊字符,一定可以成功)

· 问题二:

很多童孩应该会觉得将密码设置为 $Password123 是很麻烦的事情,所以如果还想设置成 123456 怎么办(如果连接: 1819 报错点这里准没错 里面提到的做法有童孩一次性成功了,那恭喜你,很幸运,没遇到和 零y 类似的问题),零y在测试的过程中出现了下面的问题,并顺利的解决了。

Linux 安装 MySQL 8.0 详解_第16张图片
【解决方式】

先查看 MySQL 密码规则

	SHOW VARIABLES LIKE 'validate_password%';

Linux 安装 MySQL 8.0 详解_第17张图片
零 y 这里出现了两个密码规则,而且不一样。所以需要设置成一样的。
Linux 安装 MySQL 8.0 详解_第18张图片

文章的最后贴一下 零y 的创作来源:视频连接

你可能感兴趣的:(MySQL,mysql,linux,centos)