通过RPM方式安装,升级,卸载,以及配置使用MySQL

news2025/1/12 12:11:58

通过RPM方式安装,升级,卸载,以及配置使用MySQL

一、下载

	MySQL是一种开源的关系数据库管理系统,被广泛应用于各种业务应用中。本文将讲解如何下载和安装MySQL的rpm安装包。

下载rmp安装包有多种方式:
1、可以到MySQL的官网(https://dev.mysql.com/downloads/mysql/)进行下载。在下载页面中选择适合的版本和操作系统,本文以CentOS 7为例,选择Community Server版本。最后将rpm文件上传到服务器即可。
在这里插入图片描述

2、还可以使用wget命令,新的centos7应该是没有wget工具的,需要使用yum安装一下wget,其实也可以用yum直接安装mysql 的,不用多此一举,看自己吧,有兴趣可以用yum试试,反正过程都差不多。

yum -y install wget

-y表示安装过程中遇到提问全选yes,等待安装完成就可以啦!
在这里插入图片描述

wget -P /download https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述
不加参数则默认下载到当前用户跟目录, 加上-P参数则下载到指定目录

二、安装

下载完成后,使用以下命令进行安装:

(1)打开mysql80-community-release-el7-3.noarch.rpm文件

sudo rpm -ivh mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述

(2)打开文件后,使用以下命令安装MySQL服务

sudo yum install mysql-server --nogpgcheck

(3)如果遇到以下错误,可以在MySQL官网 (https://dev.mysql.com/doc/refman/8.0/en/checking-gpg-signature.html) 找到公钥
在这里插入图片描述

  • 复制下面的公钥
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: SKS 1.1.6
Comment: Hostname: pgp.mit.edu

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
sTSKHe+QnnnoFmu4gnmDU31i
=Xqbo
-----END PGP PUBLIC KEY BLOCK-----
  • 在服务器某个文件夹下,这里依旧在/download目录下输入以下命令。然后将复制的内容粘贴上去,保存即可
vi mysql_pubkey.asc
  • 执行官网上的命令
gpg --import mysql_pubkey.asc

在这里插入图片描述

gpg --recv-keys 3A79BD29

我没有用rpm的命令,好像导不进去

(4)再执行一遍安装命令

sudo yum install mysql-server --nogpgcheck

在这里插入图片描述

(5)安装完成以后启动MySQL服务

systemctl start mysqld

(6)查看MySQL服务是否启动成功

systemctl status mysqld

在这里插入图片描述

(7)设置开机自启动(根据自己需求来即可)

systemctl enable mysqld

三、登录

(1)通过日志文件查看临时密码

cat /var/log/mysqld.log | grep password

在这里插入图片描述

(2)登录,执行以下命令输入刚刚查看到的临时密码

mysql -uroot -p

四、修改密码

通过生成的临时密码登录后操作mysql时会报如下错误,需要修改密码,不然就会疯狂提示:

You must reset your password using ALTER USER statement before executing this statement

(1)执行修改密码的SQL语句

alter user 'root'@'localhost' identified by '123';
# 或
set password for 'root'@'localhost'=password('123');

**注意:**旧版本的mysql与新版也就是8.0之后的版本修改密码的变量和规范不一样,而且新版本的mysql的修改的密码如果不符合MySQL密码规范,会触发一个报错信息:

Your password does not satisfy the current policy requirements
	先修改一个满足的密码 (如:Root_12root)。如果密码设置的复杂也就可以不用降低密码的验证规则。

(2)调整密码验证规则如下:

4.1、MySQL 8.0

set global validate_password.policy=0;
set global validate_password.length=1;

在这里插入图片描述

4.2、MySQL 5.7

set global validate_password_policy=0;
set global validate_password_length=1;

(3)再次执行修改密码的SQL语句

alter user 'root'@'localhost' identified by 'mysql';
# 或
set password for 'root'@'localhost'=password('mysql');

在这里插入图片描述

五、开启远程访问权限

(1)选择 mysql 数据库,因为 mysql 数据库中存储了用户信息的 user 表

use mysql;

(2)在 mysql 数据库的 user 表中查看当前 root 用户的相关信息

	查看表格中 root 用户的 host,默认应该显示的 localhost,只支持本地访问,不允许远程访问
select host, user, authentication_string, plugin from user;

在这里插入图片描述

(3)设置远程访问并授权 root 用户的所有权限

	GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程,FLUSH PRIVILEGES 表示刷新
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

在这里插入图片描述

	再次执行步骤(2),你会发现 root 用户的 host 已经变成 %,说明我们的修改已经成功,可以远程访问了

在这里插入图片描述

哦不!

注意: 如果你的服务器是云服务器还要在入站规则哪里添加放开3306的端口配置,如果是私人的云服务器,建议把端口改成其他的,不要用3306,我的就被小黑子光顾过,直接把我的数据库表全部清了,只留下一个邮箱,然后要我付好多比特币来着,才能恢复数据。
云服务器的添加方式位置都不一样,这里就不例举了。

如果是其他服务器或者虚拟机搭建的就简单了。只需要关闭防火墙或者开放端口就可以了。

六、关闭防火墙

(1)关闭防火墙

systemctl stop firewalld

查看防火墙状态

systemctl status firewalld

在这里插入图片描述

(2)或者开放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

防火墙重载

firewall-cmd --reload

查看3306状态

firewall-cmd --zone=public --query-port=3306/tcp

应该是yes,说明端口已经打开,去navicat测试连接,输入ip和新的Mysql账户密码,即可成功!

七、升级

这条命令会自动安装MySQL,并把所有的文件部署到指定的目录中。如果你需要升级MySQL,可以使用以下命令打开RPM文件:

sudo rpm -Uvh -ivh mysql80-community-release-el7-3.noarch.rpm

八、卸载

最后,如果你想卸载MySQL,可以使用以下命令在终端中打开RPM文件,输入以下命令:

sudo rpm -e mysql-server

这条命令会卸载MySQL,同时删除与之相关的所有文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/794949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【图解CAN总线】-10-详解CANFD的TDC以及SSP(收发器延迟补偿和第二采样点)

目录 1 CAN Transceiver收发器结构 1.1 CAN收发器对本ECU发送CAN报文的“回采” 1.2 什么是Loop delay环路延迟 1.2.1 Loop delay环路延迟的典型值 2 什么是TDC:Transceiver Delay Compensation收发器延迟补偿 2.1 总结:Transceiver Delay Compensation启用条…

【C#】.Net Framework框架使用JWT

2023年,第31周,第2篇文章。给自己一个目标,然后坚持总会有收货,不信你试试! 本篇文章主要简单讲讲,.Net Framework框架下使用JWT的代码例子,以及他们的基本概念。 2002年微软发布了.net framewo…

读书会-《博弈论究竟是什么》

一. 什么是博弈论? 博弈即一些个人、队组或其他组织,面对一定的环境条件,在一定的规则下,同时或先后,一次或多次,从各自允许选择的行为或策略中进行选择并加以实施,各自取得相应结果的过程。 博…

re学习(25)i春秋-re-basebasebase(base64+函数构造)

参考文章:re学习笔记(22)爱春秋CTF答题夺旗赛(第四季)-re-basebasebase_ctfbase~base_Forgo7ten的博客-CSDN博 总结:1.flag——→base64加密(自定义)——→与3异或——→加密后数据…

spring启动流程 (6完结) springmvc启动流程

SpringMVC的启动入口在SpringServletContainerInitializer类,它是ServletContainerInitializer实现类(Servlet3.0新特性)。在实现方法中使用WebApplicationInitializer创建ApplicationContext、创建注册DispatcherServlet、初始化ApplicationContext等。 SpringMVC…

大数据Flink(五十):流式计算简介

文章目录 流式计算简介 一、数据的时效性 二、流式计算和批量计算

dubbo概论

目录 前言: 1.概述 2.服务发现 3.容错 3.1.注册中心宕机 3.2.负载均衡 3.3.限流、熔断 4.通信协议 4.1.HTTP 4.2.dubbo 5.总结 前言: 这可能是全网最深入浅出的dubbo文章,如果你会spring cloud,恭喜你,你可…

Zookeeper命令总结

目录 1、常用命令2、ls path3、create xxx创建持久化节点创建临时节点创建持久化序列节点 4、get path5、set path6、delete path7、监听器总结1)节点的值变化监听2)节点的子节点变化监听(路径变化)3)当某个节点创建或…

Maven基础之项目创建、packaging

文章目录 创建 maven 项目流程骨架是浮云,packaging 是关键 创建 maven 项目流程 通过骨架(archetype)创建 maven 工程 第一步:选择 new → maven → Maven Project 第二步:New Maven Project 窗口不作任何设置&…

【软件测试】基于博客系统的自动化测试

目录 1.我的博客系统链接 2.使用selenium对博客系统进行自动化测试 1.引入依赖 2.创建公共类 3.创建测试套件类 4.测试登陆界面 5. 测试博客列表页 6.测试写博客页面 7.测试删除博客 8.最终运行结果 1.我的博客系统链接 用户登录 2.使用selenium对博客系统进行自动…

网络安全(黑客)系统自学,成为一名白帽黑客

前言 黑客技能是一项非常复杂和专业的技能,需要广泛的计算机知识和网络安全知识。你可以参考下面一些学习步骤,系统自学网络安全。 在学习之前,要给自己定一个目标或者思考一下要达到一个什么样的水平,是学完找工作(…

学习笔记22 map

一、概论 map的每个元素都由两个部分组成:键和值。每个键都与一个特定的值相关联,并且可以用于定位该值。 map和set很像,只不过map存储的是key,由key再映射到value,而set存储的就是value本身。 Map接口是泛型的&…

拦截Bean使用之前各个时机的Spring组件

拦截Bean使用之前各个时机的Spring组件 之前使用过的BeanPostProcessor就是在Bean实例化之后,注入属性值之前的时机。 Spring Bean的生命周期本次演示的是在Bean实例化之前的时机,使用BeanFactoryPostProcessor进行验证,以及在加载Bean之前进…

flink to starrocks 问题集锦....

[问题排查]导入失败相关 - 问题排查 - StarRocks中文社区论坛 starrocks官网如下: Search StarRocks Docs starrocks内存配置项: 管理内存 Memory_management StarRocks Docs 问题1:实时写入starrocks ,配置参数设置如下&a…

【【51单片机11.0592晶振红外遥控】】

51单片机11.0592晶振红外遥控 红外遥控,51单片机完结 这是初步实现的架构 怎么实现内部的详细逻辑 我们用状态机的方法 0状态时一个空闲状态 当它接收到下降沿开始计时然后转为1状态 1状态下 寻找start 或者repeat的信号 再来下降沿读出定时器的值 如果是start 那…

华为eNSP:isis的配置

一、拓扑图 二、路由器的配置 配置接口IP AR1&#xff1a; <Huawei>system-view [Huawei]int g0/0/0 [Huawei-GigabitEthernet0/0/0]ip add 1.1.1.1 24 [Huawei-GigabitEthernet0/0/0]qu AR2: <Huawei>system-view [Huawei]int g0/0/0 [Huawei-GigabitEthe…

【沁恒蓝牙mesh】数据收发接口与应用层模型传递

本文主要描述了沁恒蓝牙mesh SDK的蓝牙数据收发接口&#xff0c;以及应用层的回调函数解析以及模型传递 这里写目录标题 1. 数据收发接口1.1【发送数据】1.2 【数据接收】 2. 应用层模型分析 1. 数据收发接口 1.1【发送数据】 /*&#xff08;1&#xff09;接口1 */ /*接口一&…

力扣热门100题之最大子数组和【中等】【动态规划】

题目描述 给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&a…

Java文字转语音功能实现

需要下载jacob-1.18&#xff0c;网上一堆 项目中引入pom文件 <!-- https://mvnrepository.com/artifact/com.jacob/jacob 文字转语音 --> <dependency><groupId>com.hynnet</groupId><artifactId>jacob</artifactId><version>1.18&…

Go语言中‘String’包中的‘Cut‘函数的实现

Go语言中‘String’包中的’Cut’函数的实现 ​ Cut函数用于在字符串**‘s’中查找子串’sep’&#xff0c;并将字符串’s’在子串 ‘sep’ 第一次出现的位置分割成两部分&#xff1a;before和after** package main import("fmt" "strings" ) func main(…