[亲测有效]CentOS7下安装mysql5.7

前言

近期项目需要搭配mysql一起存储相关数据,但对mysql的版本有要求,于是在服务器搭建了mysql5.7,顺便记录一下搭建步骤和踩坑解决步骤。

目录

前言

一、清除旧安装包

二、安装YUM

三、使用yum命令即可完成安装

四、重新设置密码

五、创库

六、项目连接数据库


一、清除旧安装包

1、查看系统中是否已安装 MySQL 服务

rpm -qa | grep mysql
或
yum list installed | grep mysql
或
apt-cache search mysql
(命令不同,取决于你用哪个linux系统,以下操作我用centos7搭建)

2、如果已安装则删除 MySQL 及其依赖的包

yum -y remove mysql-libs.x86_64

二、安装YUM

1、下载 mysql57-community-release-el7-8.noarch.rpm 的 YUM 源
下载命令:

wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm

2、然后进行repo的安装:

rpm -ivh mysql57-community-release-el7-8.noarch.rpm

执行完成后会在/etc/yum.repos.d/目录下生成两个repo包:
mysql-community.repo
mysql-community-source.repo

Linux的配置文件为/etc/my.cnf

(windows的配置文件为my.ini)

三、使用yum命令即可完成安装

注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本这里我没在此目录中安装,最后安装完没有client.cnf两个文件,可能是这个原因

安装命令:

yum install mysql-server

(此时会有一个报错,说安装失败)

报错一:如果遇到安装不成功,提示:The GPG keys listed for the “MySQL 5.7 Community Server” repository are already installed but they are not correct for this package.

Check that the correct key URLs are configured for this repository.

原因

软件开发商在释出 RPM 文件时,会在其中添加数字签名,并释出用于验证数字签名的公钥。使用 rpm 安装软件时,rpm 会首先根据系统中已有的公钥去验证 RPM 文件的数字签名。gpg keys 就是公钥。

解决

1、yum添加–nogpgcheck

yum安装的时候就会校验软件包是否是官方发布的。当然可以给yum添加–nogpgcheck来强制安装,如下命令即可

yum install mysql-server --nogpgcheck

所以在安装的时候会比对已有的公钥,发现不正确,报错了

2. 启动msyql:

systemctl start mysqld #启动MySQL

3、获取安装时的临时密码(在第一次登录时就是用这个密码):

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

4、登录mysql

mysql -u root -p

然后输入密码(刚刚获取的临时密码)

————————————————

如果登录mysql时再发现报错(报错ERROR 1045),

参考这个链接

CentOS7下安装mysql5.7(亲测完成)_mysql5.7 centos7-CSDN博客

————————————————

四、重新设置密码

如果你想要设置一个简单的测试密码的话,比如设置为123456,会提示这个错误,报错的意思就是你的密码不符合要求:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

这个其实与validate_password_policy的值有关。

validate_password_policy有以下取值:

默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。

必须修改两个全局参数:

首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;

Query OK, 0 rows affected (0.00 sec)

validate_password_length(密码长度)参数默认为8,我们修改为1

mysql> set global validate_password_length=1;

Query OK, 0 rows affected (0.00 sec)

完成之后再次执行修改密码语句即可成功

mysql> alter user 'root'@'localhost' identified by '654321';

Query OK, 0 rows affected (0.00 sec)

重新启动MySQL服务

systemctl start mysqld #启动MySQL

进入MySQL

出现密码输入时,不用输入直接按回车,就可以不用密码就能登录

mysql -u root -p

密码直接回车

五、创库

创建新的数据库后,就可以给新库设置单独的用户和密码

举个例子:

为Confluence创建对应的数据库、用户名和密码

mysqld [(none)]> create database confluence default character set utf8 collate utf8_bin;Query OK, 1 row affected (0.00 sec)

mysqld [(none)]> grant all on confluence.* to 'confluence'@'%' identified by 'confluencepasswd';Query OK, 0 rows affected (0.00 sec)

mysqld [(none)]> flush privileges;Query OK, 0 rows affected (0.00 sec)

第二个报错:设置密码时报错

在第二步在mysql中给confluence设置密码时会有报错,提示密码不和要求,需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,

进入mysql中,输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值即可解决。

六、项目连接数据库

在连接数据库时可能会有两种报错,这里也用confluence举例,一种是说字符集不是utf8(我当时用kali自带的数据库配置的,连接不上,最后还是用centos7安装mysql避坑的),一种是下面这种问题:

SQLState - 08S01 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet successfully received from the server was 2 milliseconds ago. The last packet sent successfully to the server was 2 milliseconds ago(解决办法如下):

第三个报错:Mysql:SQL 错误 [08S01]: Communications link failure, Bad handshake,idea 连接mysql,报08S01,

原因大致如下:

在5.7.28之后,useSSL是true,这个需要配置SSL证书

因为此版本之后已经默认支持 SSL,所以连接实际应用会使用 SSL

解决方法:

mysql的配置文件/etc/my.cnf的[mysqld] 下面添加

skip_ssl
或者
ssl=0

完美解决问题,测试连接成功!

参考:

Mysql:SQL 错误 [08S01]: Communications link failure, Bad handshake,idea 连接mysql,报08S01,_08s01 sql-CSDN博客

也有其他方法,可参考下面这个连接(但我尝试了依然没绕过此问题):

https://cloud.tencent.com/developer/article/1650141

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

gradle打包分离依赖jar

正常打包的jar是包含项目所依赖的jar包资源,而且大多数场景下的依赖资源是不会频繁的变更的,所以实际把项目自身jar和其所依赖的资源分离可以实现jar包瘦身,减小上传的jar包总大小,能实现加速部署的效果 一 原本结构 二 配置buil…

基于Python实现人脸识别相似度对比

目录 引言背景介绍目的和意义 人脸识别的原理人脸图像获取人脸检测与定位人脸特征提取相似度计算 基于Python的人脸相似度对比实现数据集准备人脸图像预处理特征提取相似度计算 引言 背景介绍 人脸识别技术是一种通过计算机对人脸图像进行分析和处理,从而实现自动识…

UML中的实现关系

在UML(统一建模语言)中,“实现”关系是指一个类(实现类)实现一个接口或抽象类的方法的情况。这种关系通常用于指定类如何实现某个特定的接口规范。 UML中的实现关系 在UML类图中,实现关系用一条带有空心箭…

学生公寓智能控电管理的功能和管理意义

石家庄光大远通电气有限公司学生公寓智能控电管理系统是由硬件和软件组成的系统,用于控制和管理学生公寓中的电力使用。 一、用户管理 智能控电管理系统具备用户管理功能,可以对学生的个人信息进行统一管理。系统会记录学生的姓名、学号、宿舍号等基本信…

MySQL InnoDB 底层数据存储

InnoDB 页记录Page Directory记录迁移 页 是内存与磁盘交互的基本单位,16kb。 比如,查询的时候,并不是只从磁盘读取某条记录,而是记录所在的页 记录 记录的物理插入是随机的,就是在磁盘上的位置是无序的。但是在页中…

Yuliverse:引领区块链游戏新篇章!

数据源:Yuliverse Dashboard 作者:lesleyfootprint.network 什么是 Yuliverse Yuliverse 是一款元宇宙游戏的先锋,是一款主打 Explore to earn 和 Social to earn 的链游。 这是一款能让你边玩边赚钱的免费区块链游戏,得到 LI…

前端开发如何在自己项目中引用iconfont图标

前端开发如何在自己项目中引用iconfont图标!下面展示一下,详细的引入步骤。 第一步,您需要注册一个会员账号登录进入。创建一个项目。 可以使用其他的平台账号登录,我选了是微信登录,不过他们还会要求你输入手机号&am…

牛客网-----跳石头

题目描述: 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有N块岩石(不含起点和终点的岩石)。在比赛过程中&#xff0…

网络防御保护1

网络防御保护 第一章 网络安全概述 网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断 随着数…

Oracle Linux 8.9 安装图解

风险告知 本人及本篇博文不为任何人及任何行为的任何风险承担责任,图解仅供参考,请悉知!本次安装图解是在一个全新的演示环境下进行的,演示环境中没有任何有价值的数据,但这并不代表摆在你面前的环境也是如此。生产环境…

Linux下软件安装的命令【RPM,YUM】及常用服务安装【JDK,Tomcat,MySQL】

Linux下软件安装的命令 源码安装 以源代码安装软件,每次都需要配置操作系统、配置编译参数、实际编译,最后还要依据个人喜好的方式来安装软件。这个过程很麻烦很累人。 RPM软件包管理 RPM安装软件的默认路径: 注意: /etc 配置文件放置目录…

精益生产咨询背后的秘密:企业如何实现价值最大化

精益生产,起源于丰田生产系统,是一种集中于削减浪费、优化流程、提升顾客价值的生产方法。它的核心在于确保每一步生产过程都能为顾客创造价值。以下是实现精益生产咨询的详细步骤: 1.确定客户价值 一切从顾客需求出发。企业需深入理解顾客…

x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具

目录 简介首次用户快速实验指南基本功能性能特点竞品进一步探索 简介 dasel,是数据(data)和 选择器(selector)的简写,该工具使用选择器查询和修改数据结构。 支持 JSON,YAML,TOML&…

如何正确利用点对点传输工具来传输文件

P2P技术作为一种创新的数据交换机制,近年来已经获得了广泛的关注和应用。这种技术通过直接在用户之间建立连接,绕过了传统的中心服务器架构,从而在数据传输效率和速度上实现了显著提升。然而,正如硬币有两面,P2P技术同…

Leetcode—23.合并 K 个升序链表【困难】

2023每日刷题(八十三) Leetcode—23.合并 K 个升序链表 算法思想 用容量为K的最小堆优先队列,把链表的头结点都放进去,然后出队当前优先队列中最小的,挂上链表,,然后让出队的那个节点的下一个…

Postman基本使用、测试环境(Environment)配置

文章目录 准备测试项目DemoController测试代码Interceptor模拟拦截配置 Postman模块简单介绍Postman通用环境配置新建环境(Environment)配置环境(Environment)设置域名变量引用域名变量查看请求结果打印 Postman脚本设置变量登录成功后设置全局Auth-Token脚本编写脚本查看conso…

C Primer Plus 第6版 编程练习 chapter 17

文章目录 1. 第1题1.1 题目描述1.2 递归方式1.2.1 源码1.2.1 结果显示 1.3 双向链表1.3.1 源码1.3.2 结果显示 2. 第2题2.1 题目描述2.2 编程源码2.3 结果显示 3. 第3题3.1 题目描述3.2 编程源码3.3 结果显示 4. 第4题4.1 题目描述4.2 编程源码4.3 结果显示 5. 第5题5.1 题目描…

UML类图学习

UML类图学习 UML类图是描述类之间的关系概念1.类(Class)&#xff1a;使用三层矩形框表示2.接口(interface)&#xff1a;使用两层矩形框表示&#xff0c;与类图主要区别在于顶端有<<interface>>显示3、继承类&#xff08;extends&#xff09;&#xff1a;用空心三角…

Python + Selenium —— ActionChains动作链!

当你需要执行复杂的操作时&#xff0c;比如将一个元素按住拖动到另一个元素上去&#xff0c;需要移动鼠标然后点击并按下键盘某个按键等等。 当然&#xff0c;在 Web 页面上&#xff0c;这种操作好像比较少。 但是&#xff0c;如果遇到了怎么办呢&#xff1f;这就需要用到 Ac…

【设计模式】字节三面:请举例阐释访问者模式

今天我们要一起探讨的主题是一种设计模式——访问者模式(Visitor Pattern)。我将从最基础的概念、应用场景&#xff0c;再到实例代码的展示&#xff0c;全方位的为大家剖析访问者模式。而且&#xff0c;我保证&#xff0c;你即使是编程新手&#xff0c;也能理解并开始应用这个设…
最新文章