Centos7下使用RPM包安装MySQL8

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Centos7下使用RPM包安装MySQL8

【1】MySQL版本与rpm下载7274348ff2e2479b892899294f4bd07e.png

通常我们选择的都是MySQL Community Server。

  • MySQL Community Server社区版本,开源免费,自由下载但是不提供官方技术支持。
  • MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
  • MySQL Cluster集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个Server。需要在社区版或企业版的基础上使用。
  • MySQL Cluster CGE高级集群版,需付费。

此外,官方还提供了MySQL Workbench(GUITOOL)一款专为MySQL设计得ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分表是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。

如下所示,可以选择操作系统以及操作系统版本。如果当前GA版本不是想要的,可以点击右侧Archives选择其他GA版本。

以mysql-8.0.32-1.el7.x86_64.rpm-bundle为例,其中mysql-8.0.32为版本,1 为发布次数即1次,el7.x86_64为操作系统版本。这里我们下载该离线版RPM包。

这里我们下载mysql-8.0.25-1.el7.x86_64.rpm-bundle.tar,(mysql-8.0.32-1.el7.x86_64.rpm-bundle资源没有下载下载从其他途径得到了8.0.25)得到的rpm包解压后如下所示:


我们只需要抽取如下五个进行安装即可。如果是MySQL5.7则不需要mysql-community-client-plugins-xxxx

mysql-community-client-8.0.25-1.el7.x86_64.rpm
mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
mysql-community-common-8.0.25-1.el7.x86_64.rpm
mysql-community-libs-8.0.25-1.el7.x86_64.rpm
mysql-community-server-8.0.25-1.el7.x86_64.rpm

【2】 检查/tmp临时目录权限与依赖

由于MySQL安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给予/tmp较大的权限,通常执行如下命令:

chmod -R 777 /tmp

安装前,检查依赖libaio

rpm -qa |grep libaio


如果存在则如下所示,如果不存在则通过yum命令进行安装。

[root@localhost ~]# rpm -qa|grep libaio
libaio-0.3.109-13.el7.x86_64

检查依赖net-tools

[root@localhost ~]# rpm -qa |grep net-tools
net-tools-2.0-0.25.20131004git.el7.x86_64

其实正常安装Centos,这些工具都是安装好的。

【3】rpm安装MySQL

将上面我们抽取的5个rpm包上传到/opt/softinstall/mysql路径下,然后执行命令安装。需要注意的是,安装必须按照顺序执行:

rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm

rpm是Redhat Package Manager的缩写,通过rpm的管理,用户可以把源代码包装成以rpm为扩展名的文件形式,易于安装。

安装mysql-community-libs-8.0.25-1.el7.x86_64.rpm可能遇到如下错误:

[root@localhost mysql]# rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
warning: mysql-community-libs-8.0.25-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
        mariadb-libs is obsoleted by mysql-community-libs-8.0.25-1.el7.x86_64

意思是mariadb-libs被mysql-community-libs-8.0.2.5-1.el7.x86_64淘汰,通过如下命令我们可以检测到已经安装过mariadb-libs。

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

那么我们可以通过如下命令进行依赖解决,之后再检测就没有了mariadb-libs。继续执行rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm 即可。

yum remove mysql-libs

【4】MySQL安装后的检测与使用

① 查看MySQL版本

执行如下命令,如果成功表示安装MySQL成功。

mysql --version
#或
mysqladmin --version
[root@localhost mysql]# mysql --version
mysql  Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)
[root@localhost mysql]# mysqladmin --version
mysqladmin  Ver 8.0.25 for Linux on x86_64 (MySQL Community Server - GPL)

执行如下命令,查看是否安装成功,-i 表示不用区分大小写,否则搜索不到。

rpm -qa|grep -i mysql
[root@localhost mysql]# rpm -qa|grep -i mysql
mysql-community-server-8.0.25-1.el7.x86_64
mysql-community-client-plugins-8.0.25-1.el7.x86_64
mysql-community-libs-8.0.25-1.el7.x86_64
mysql-community-client-8.0.25-1.el7.x86_64
mysql-community-common-8.0.25-1.el7.x86_64

此时查看mysqld服务状态:

[root@localhost mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html

② 服务的初始化

为了保证数据库目录与文件的所有者均为MySQL登录用户,如果你是以root身份运行MySQL服务的,需要执行下面的命令初始化:

mysqld --initialize --user=mysql

说明:--initialize 选项默认是以“安全”模式来初始化,则会为root用户生成一个密码并将该密码标记为过期,登录后需要设置一个新的密码。生成的临时密码会往日志中记录一份。

查看密码:

[root@localhost mysql]# mysqld --initialize --user=mysql
[root@localhost mysql]# cat /var/log/mysqld.log
2023-01-27T11:00:23.961580Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.25) initializing of server in progres                                                                                                               s as process 52362
2023-01-27T11:00:24.041419Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-01-27T11:00:26.819414Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-01-27T11:00:32.697960Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: l.o(;/!=E3S*

即临时密码为:l.o(;/!=E3S*

③ 启动mysql服务

#启动服务
[root@localhost mysql]# systemctl start mysqld
#查看状态
[root@localhost mysql]# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-01-27 03:04:06 PST; 6s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 52458 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 52487 (mysqld)
   Status: "Server is operational"
    Tasks: 38
   CGroup: /system.slice/mysqld.service
           └─52487 /usr/sbin/mysqld
Jan 27 03:03:33 localhost.localdomain systemd[1]: Starting MySQL Server...
Jan 27 03:04:06 localhost.localdomain systemd[1]: Started MySQL Server.

fcc9dcdef2da4bb48dcbbb2d1e0c73aa.png

其他关于服务命令:

# 启动服务
systemctl start mysqld
# 查看服务状态
systemctl status mysqld
# 重启服务
systemctl restart mysqld
# 停止服务
systemctl stop mysqld

④ 查看mysql服务是否自启动

[root@localhost mysql]# systemctl list-unit-files|grep mysqld.service
mysqld.service                                enabled

默认是enabled,如果不是enabled可以运行如下命令设置自启动:

systemctl enable mysqld.service


如果希望不进行自启动,运行如下命令设置

systemctl disable mysqld.service

⑤ 登录并修改密码

如下所示使用上面得到的临时密码进行登录,但是再进行进一步操作时会提示要求修改密码。

[root@localhost mysql]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.25
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> use mysql;
No connection. Trying to reconnect...
Connection id:    9
Current database: *** NONE ***
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改密码:

alter user `root`@localhost identified by '123456';

⑥ 添加远程登录用户

在MySQL8下执行如下命令会报错:

grant all privileges on *.* to 'root'@'%' identified by '123456!' with grant option;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by '123456' with grant option' at line 1

可以采用如下方式:

# 创建用户并设置密码
create user 'root'@'%' identified by '123456';
#赋予权限
 grant all on *.* to 'root'@'%' with grant option;
#刷新MySQL的系统权限相关表
flush privileges;

⑦ Navicat远程连接

注意保证网络、端口畅通哦(建议关闭防火墙或者放开默认的3306端口)。在使用Navicat远程连接是还会遇到如下一个问题(MySQL5.7下没有):


解决方法:Linux下登录MySQL然后执行如下SQL即可。

alter user 'root' @'%' identified with mysql_native_password by '123456';



相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第16天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括配置系统源、安装 SQL Server 2019 软件包以及数据库初始化,确保 SQL Server 正常运行。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第8天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统准备、配置安装源、安装 SQL Server 软件包、运行安装程序、初始化数据库以及配置远程连接。通过这些步骤,您可以顺利地在 CentOS 系统上部署和使用 SQL Server 2019。
|
1月前
|
SQL 存储 Linux
从配置源到数据库初始化一步步教你在CentOS 7.9上安装SQL Server 2019
【11月更文挑战第7天】本文介绍了在 CentOS 7.9 上安装 SQL Server 2019 的详细步骤,包括系统要求检查与准备、配置安装源、安装 SQL Server 2019、配置 SQL Server 以及数据库初始化(可选)。通过这些步骤,你可以成功安装并初步配置 SQL Server 2019,进行简单的数据库操作。
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
119 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
97 2
|
1月前
|
存储 安全 Linux
VMware安装CentOS7
【11月更文挑战第11天】本文详细介绍了在 VMware 中安装 CentOS 7 的步骤,包括准备工作、创建虚拟机、配置虚拟机硬件和安装 CentOS 7。具体步骤涵盖下载 CentOS 7 镜像文件、安装 VMware 软件、创建和配置虚拟机硬件、启动虚拟机并进行安装设置,最终完成 CentOS 7 的安装。在安装过程中,需注意合理设置磁盘分区、软件选择和网络配置,以确保系统的性能和功能满足需求。
222 0
|
Linux
解决CentOS yum安装Mysql8提示“公钥尚未安装”或“密钥已安装,但是不适用于此软件包”的问题
解决CentOS yum安装Mysql8提示“公钥尚未安装”或“密钥已安装,但是不适用于此软件包”的问题
4129 0
|
存储 关系型数据库 MySQL
Linux Centos9 Stream 安装mysql8
Linux Centos9 Stream 安装mysql8
926 1
|
6月前
|
存储 关系型数据库 MySQL
CentOS上安装MySQL 8.0的详细教程
CentOS上安装MySQL 8.0的详细教程
2878 0
|
6月前
|
开发工具
centos8 yum安装mysql8 流程配置
centos8 yum安装mysql8 流程配置
698 0