当前位置: 首页 > news >正文

MySQL安装『适用于 CentOS 7』

✨个人主页: 北 海
🎉所属专栏: MySQL 学习
🎃操作环境: CentOS 7.6 腾讯云远程服务器
🎁软件版本: MySQL 5.7.44

成就一亿技术人


文章目录

  • 1.MySQL 的清理与安装
    • 1.1查看是否存在 MySQL 服务
    • 1.2.卸载原有服务
    • 1.3.获取官方的 yum 源
    • 1.4.下载 MySQL 服务
    • 1.5.验证是否下载完成
  • 2.MySQL 的配置与启动
    • 2.1.启动服务
    • 2.2.登录 MySQL
    • 2.3.修改密码
    • 2.4.修改配置文件
  • 3.可能遇到的问题
    • 3.1.无法通过 yum 下载
    • 3.2.无法登录 MySQL
    • 3.3.无法退出 MySQL
    • 3.4.无法修改密码规则


注意: 为了避免权限不足的问题,建议切换至 root 用户进行安装

1.MySQL 的清理与安装

1.1查看是否存在 MySQL 服务

在安装 MySQL 前,需要先看看自己的服务器中是否存在 MySQL 服务,可以使用

ps -ajx | grep mysql*

查询是否有相关服务正在运行,如果出现下图所示,就说明已存在 MySQL 服务

图示

此时可以选择卸载原有服务,重新安装,也可以选择直接使用(如果可用的情况下);但如果服务器中没有 MySQL 相关服务,就可以跟着我的教程安装

1.2.卸载原有服务

首先需要终止正在运行的 MySQL 服务

systemctl stop mysqld

终止服务后,再次查询 MySQL 服务,如果没有看到,就说明终止成功了

图示

备份重要信息(如果之前有人用过 MySQL 的话),没用过就可以跳过这一步

首先是备份 my.cnf 文件,这是 MySQL 的配置文件,位于 /etc/my.cnf

mkdir ~/TMP
cp /etc/my.cnf ~/TMP/

图示

其次是备份 mysql 这个文件夹,里面包含了之前用户操作过的数据库信息

cp -r /var/lib/mysql ~/TMP/

图示
注意: 后续安装好后,可以把这两个备份文件(夹)恢复至原来的路径中

卸载这些系统安装包

yum remove mysql

1.3.获取官方的 yum 源

如果你的系统是 CentOS 7.6,可以直接通过这个链接下载:适用于 CentOS 7.6

否则可以去官方提供的网站中寻找与自己版本相匹配的 yum 源:官方提供的下载网站

将后缀为 .rpm 的文件下载好后,可以通过文件上传工具将文件传至服务器,比如 rz

rz

输入指令后选择下载好的文件上传即可

注:rz 是一款工具,如果没有的话需要通过 yum 下载,并且需要在 XShell 中使用

安装 MySQLyum

 rpm -Uvh 下载好的文件名

查看 yum 源是否成功安装

ls -l /etc/yum.repos.d/

存在这两个文件,就证明成功了,安装 yum 源 完成后,可以将这个文件删除

查看 MySQLyum 源是否成功工作

yum list | grep mysql-community*

出现很多 mysql 相关的安装包,就证明可以成功工作

1.4.下载 MySQL 服务

yum install -y mysql-community-server

这条指令可能会执行失败,原因是 密钥过期了,可以使用以下语句更新密钥

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

静待安装完成

1.5.验证是否下载完成

查看 /etc/ 目录下是否存在 my.cnf 配置文件

ls /etc/my.cnf

查看是否存在 MySQL 存放数据的目录

ls /var/lib/mysql

注:部分文件为之前残留的数据库


2.MySQL 的配置与启动

2.1.启动服务

通过指令启动 MySQL 服务,MySQL 默认使用的端口是 3306,启动之前要确保 3306 端口处于开启状态

图示

systemctl start mysqld

图示

2.2.登录 MySQL

登录 MySQL 默认是需要密码,当前版本的 MySQL 刚开始会设置一个临时密码,可以通过指令获取,如果获取失败,可以跳转至本文最后一部分 [3.2无法登录 MySQL]

获取临时密码

grep 'temporary password' /var/log/mysqld.log

注意: 获取临时密码的前提是 MySQL 服务已经启动过

获取临时密码后,就可以登录 MySQL

mysql -u root -p

回车后,输入 临时密码,如果登录失败,可跳转至 [3.2无法登录 MySQL]

注意: MySQL 中默认只有 root 用户,所以需要以 root 身份登录

出现此页面证明登录成功,可以进行密码修改
图示

2.3.修改密码

注意: MySQL 中输入的语句都要以 ; 结尾,表示输入语句结束

为了方便后续使用,这里直接把密码等级设为最低,如果输入指令报错,可以跳转至 [3.3.无法修改密码规则]

修改密码强度(可以单纯为数字)

set global validate_password_policy=0;

修改密码最小长度

set global validate_password_length=1;

修改当前用户 root 的登录密码,其中的 localhost 表示只允许登录主机本地;如果设置 123456 等简单密码失败,说明是密码规则没有修改成功,过于简单的密码不允许设置,可以重新登录 MySQL,重复上面的步骤

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

刷新权限,MySQL 中有很多权限的概念,现在可以先不用管

FLUSH PRIVILEGES;

修改完成后,可以使用新密码登录 MySQL

注:输入 quit 退出 MySQL

2.4.修改配置文件

MySQL 服务启动时,会先从配置文件中读取配置信息,比如 端口号、文件存储位置、存储引擎等,配置文件 my.cnf 位于 /etc/ 目录中,首先打开配置文件

vim /etc/my.cnf

设置端口号为 3306,也可以根据自己的需求进行设置

port=3306

设置数据库文件存储路径,默认为 /var/lib/mysql

datadir=/var/lib/mysql

设置默认编码格式,后续在创建数据库时,如未指定编码,则使用配置文件中的默认编码

character-set-server=utf8

设置默认存储引擎,一般都是使用 InnoDB,因为它支持 索引、事务 等特性

default-storage-engine=innodb


如果无法退出 vim,可以尝试 wq! 强行保存并退出

设置完配置文件后,都需要重启 MySQL 服务,确保配置信息及时更新

systemctl restart mysqld

接下来就可以尝试使用 MySQL


3.可能遇到的问题

下面是一些常见的问题

3.1.无法通过 yum 下载

通过 yum 下载 MySQL 时提示

Failing package is: mysql-community-client-5.7.44-1.el7.x86_64
GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

这是因为密钥过期了,更新密钥后重新下载就行了

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

3.2.无法登录 MySQL

如果无法登录 MySQL(即便是密码忘记了),可以直接修改配置文件

打开 my.cnf

vim /etc/my.cnf

在文件末尾加上以下语句

skip-grant-tables

添加完成后,保存并退出,然后重启 MySQL 服务

systemctl restart mysqld

此时再次登录 MySQL 时,随便输入密码或者直接回车,都能正常登录,这是因为 跳过了密码验证

进入 MySQL 后可以手动修改 root 密码,如果想重新启用登录时密码验证,直接去除 my.cnf 中的 skip-grant-tables 就行了

3.3.无法退出 MySQL

MySQL 客户端本质上就是一个进程,可以直接通过 ctrl + d 发送信号终止进程,这种退出方式常用于客户端卡死的情况

键盘键入 ctrl + d

也可以输入 quit 退出客户端

quit

像这种命令在 MySQL 中输入时,可以不用加 ; 号,这是一种正常退出的方式

3.4.无法修改密码规则

问题描述:输入修改密码规则相关语句报错

报错描述

ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
或者
ERROR 1193 (HY000): Unknown system variable 'validate_password_length'

报错原因:当前的 MySQL 中缺少相关变量

查询相关变量,结果为空

show variables like 'validate_password%';

图示

解决方法:在配置文件中添加相关环境变量

打开 my.cnf

vim /etc/my.cnf

在配置文件的末尾加上以下语句

plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT

图示

添加完成后,重启 MySQL 服务

systemctl restart mysqld

重启完成后,重新登录 MySQL,输入语句查看密码规则相关变量信息,能显示信息就证明问题已经解决了

show variables like 'validate_password%';

图示

接下来输入语句修改密码规则

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

可以看到已经修改成功了,问题解决

相关文章:

MySQL安装『适用于 CentOS 7』

✨个人主页: 北 海 🎉所属专栏: MySQL 学习 🎃操作环境: CentOS 7.6 腾讯云远程服务器 🎁软件版本: MySQL 5.7.44 文章目录 1.MySQL 的清理与安装1.1查看是否存在 MySQL 服务1.2.卸载原有服务1.…...

国家数据局成立,公共数据如何掘金?

国家数据局揭牌:引领新时代数据要素管理和开发的重大举措 筹建7个多月后,10月25日,国家数据局正式揭牌。根据《党和国家机构改革方案》,国家数据局负责协调推进数据基础制度建设,统筹数据资源整合共享和开发利用&…...

PostgreSQL基于Patroni方案的高可用启动流程分析

什么是Patroni 在很多生产环境中,分布式数据库以高可用性、数据分布性、负载均衡等特性,被用户广泛应用。而作为高可用数据库的解决方案——Patroni,是专门为PostgreSQL数据库设计的,一款以Python语言实现的高可用架构模板。该架…...

opencv+yolov8实现监控画面报警功能

项目背景 最近停在门前的车被人开走了,虽然有监控,但是看监控太麻烦了,于是想着框选一个区域用yolov8直接检测闯入到这个区域的所有目标,这样1ms一帧,很快就可以跑完一天的视频 用到的技术 COpenCVYolov8 OnnxRunt…...

基于深度学习的单图像人群计数研究:网络设计、损失函数和监控信号

摘要 https://arxiv.org/pdf/2012.15685v2.pdf 单图像人群计数是一个具有挑战性的计算机视觉问题,在公共安全、城市规划、交通管理等领域有着广泛的应用。近年来,随着深度学习技术的发展,人群计数引起了广泛的关注并取得了巨大的成功。通过系统地回顾和总结2015年以来基于深…...

C++递归实现验证⼆叉搜索树

C递归实现验证⼆叉搜索树 文章目录 C递归实现验证⼆叉搜索树题目链接题目描述解题思路C算法代码: 题目链接 98. 验证二叉搜索树 - 力扣(LeetCode) 题目描述 给你⼀个⼆叉树的根节点root,判断其是否是⼀个有效的⼆叉搜索树。 有效⼆…...

♥ uniapp 环境搭建

♥ uniapp 环境搭建 开发uniapp需要用到的工具有两个: 1、用到的平台和地址: 需要了解的几个平台以及地址: (1)微信公众平台 https://mp.weixin.qq.com/ (2)微信开发文档 https://develo…...

京东商品链接获取京东商品评论数据(用 Python实现京东商品评论信息抓取),京东商品评论API接口,京东API接口

在网页抓取方面,可以使用 Python、Java 等编程语言编写程序,通过模拟 HTTP 请求,获取京东多网站上的商品详情页面评论内容。在数据提取方面,可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是&#…...

docker容器中安装ROS1/ROS2(不用配任何环境,10分钟搞定)

默认电脑已经安装了docker,没安装看这篇文章Docker 安装 (完整详细版) ROS和docker各种结合看官方文档 dockerTutorials 在OSRF中拉取想要的 ROS 版本 docker 镜像 网址为 拉取命令在这里 我是安装noetic版本,因为这个兼容比较多现有的工程 docker pul…...

如何解决ssh登录报错WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

原因: 当两个设备第一次进行链接时,会在~/.ssh/konwn_hosts 中将被连接设备的公钥信息进行保存,后续再次链接时OpenSSH会核对公钥来进行一个简单的验证 然而有时候被链接的那台设备系统被重装、IP 冲突等原因,会导致公钥信息没…...

Mysql5.7安装配置详细图文教程(msi版本)

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…...

运行dl4j-examples的主要一些依赖

直接从git获取dl4j-examples后本地无法用IJ直接运行样例&#xff0c;于是自己新建了一个springboot项目&#xff0c;主要使用了下面的一些依赖用来运行官方样例 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache…...

PSRAM伪静态RAM芯片APS6404L

PSRAM伪静态RAM能结合SRAM和DRAM的优点&#xff0c;即容量大,又接口驱动简单&#xff0c;PSRAM接口和SRAM一样简单&#xff0c;驱动简单&#xff1b;而存储形式则和DRAM一样&#xff0c;容量远大于SRAM&#xff0c;介于SRAM和DRAM之间。 PSRAM厂家也有很多,以AP用的最多。最常…...

低级语言汇编真的各个面不如汇编吗?

今日话题&#xff0c;低级语言汇编真的各个面不如C语言吗&#xff1f;C语言因其可移植性、开发效率和可读性而在各领域广泛使用&#xff0c;市场占有率极高。然而&#xff0c;汇编语言在特定场景下仍然具有独特优势&#xff0c;稳固地占据一席之地。如果你对这方面感兴趣&#…...

PyG edge index 转换回 邻接矩阵

PyG的edge index形式是 [ ( n o d e 1 , n o d e 2 ) , ( n o d e 1 , n o d e 3 ) . . . ] [(node_1,node_2), (node_1, node_3)...] [(node1​,node2​),(node1​,node3​)...]这种edge pair。 naive 直接for循环&#xff0c;吧edge index里面的位置填充1&#xff1a; imp…...

JavaSE19——file文件类

file文件类 在 Java File 类是 java.io 包中唯一代表磁盘文件本身的对象 File 类不能访问文件内容本身&#xff0c;如果需要访问文件内容本身&#xff0c;则需要使用输入/输出流。 File(String path)&#xff1a;如果 path 是实际存在的路径&#xff0c;则该 File 对象表示的…...

mongodb记录

MongoDB导入导出和备份的命令工具从4.4版本开始不再自动跟随数据库一起安装&#xff0c;而是需要自己手动安装。 mongodump 不是内部或外部命令&#xff0c;也不是可运行的程序 下载mongodb命令工具 下载zip格式&#xff0c;解压后把bin目录下的文件全部复制粘贴到你MongoDB安…...

Go语言:数组和切片

Python中的数组(这里指的是List类型)及其切片Slice基本相同&#xff0c;但在Go语言中这两者差别很大。 1 数组 Go语言中的数组(Array)存放的是长度固定、类型固定并且存储位置连续的一系列元素。 1.1 声明 Go语言中数组的声明方式如下&#xff1a; arr1 : [5]string{"…...

OPENCV 闭运算实验示例代码morphologyEx()函数

void CrelaxMyFriendDlg::OnBnClickedOk() {hdc this->GetDC()->GetSafeHdc();// TODO: 在此添加控件通知处理程序代码string imAddr "c:/Users/actorsun/Pictures/";string imAddr1 imAddr"rice.png";Mat relax, positive;relax imread(imAddr1…...

UE4 体积云制作 学习笔记

首先Noise本来就是一张噪点图 云的扰动不能太大&#xff0c;将Scale调小&#xff0c;并将InputMin调整为0 形成这样一张扰动图 扰动需要根据材质在世界的位置进行调整&#xff0c;所以Position需要加上WorldPosition 材质在不同世界位置&#xff0c;噪点不同 除以一个数&#…...

synchronized 学习

学习源&#xff1a; https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖&#xff0c;也要考虑性能问题&#xff08;场景&#xff09; 2.常见面试问题&#xff1a; sync出…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放

简介 前面两期文章我们介绍了I2S的读取和写入&#xff0c;一个是通过INMP441麦克风模块采集音频&#xff0c;一个是通过PCM5102A模块播放音频&#xff0c;那如果我们将两者结合起来&#xff0c;将麦克风采集到的音频通过PCM5102A播放&#xff0c;是不是就可以做一个扩音器了呢…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

论文笔记——相干体技术在裂缝预测中的应用研究

目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术&#xff1a;基于互相关的相干体技术&#xff08;Correlation&#xff09;第二代相干体技术&#xff1a;基于相似的相干体技术&#xff08;Semblance&#xff09;基于多道相似的相干体…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...