[亲测有效]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.mzph.cn/news/642603.shtml

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

相关文章

美妆-美妆种类

粉底液 作用: 整体肤色提亮,匀称肤色,提升皮肤质感,轻微遮瑕, 中低价位:kate,妙巴黎 遮瑕 作用: 强力遮盖皮肤瑕疵 种类: 遮瑕膏,遮瑕液,遮…

JavaScript总结(三)

今日成果: 27.对象 var xiaoming { name:小明, birth:1990, school:No.1 Middle School, score:null, middle-school:no1.school//不是一个有效变量 }; xiaoming.name;//小明 xiaoming[middle-school];//no1.school xiaoming.age;//undefined…

文心一言 v.s. ChatGPT:多角度对比测评“追赶者”能否超越?

ChatGPT自发布以来就引发了关注热潮,如今国内大模型的发展也是如火如荼、百花齐放:比如百度的文心一言、阿里的通义千问、讯飞的星火大模型等等,那么作为后起之秀的国内大模型与ChatGPT相比哪个更好用呢?“追赶者”能否实现超越&a…

使用Unity创建VisionPro应用

1、下载特定Unity版本 Unity账号需要是Pro账号,普通账号不行,目前只支持这1个Unity版本,不要下载任何其它版本:unityhub://2022.3.11f1/d00248457e15) 其它条件:使用Mac电脑M系列芯片,XCode15 Beta2及以上 参考资料: 苹果官网:苹果官网 Unity官网:Unity官网 官方教程…

Network:use `--host` to expose

前言: 最近开始学习使用vite创建项目,但是 vite 启动后提示:Network:use --host to expose,从而导致在同一个局域网内的其他人也无法访问到我本地的项目。 导致原因:通过官方文档了解到不显示地址是因为IP没有做配置&a…

浏览器无网

目录 1.运行网络诊断,确认原因 原因A.远程计算机或设备将不接受连接(该设备或资源(Web 代理)未设置为接受端口“7890”上的连接 原因B.DNS服务器未响应 场景A.其他的浏览器可以打开网页,自带的Edge却不行 方法A:关闭代理 Google自带翻译…

【江科大】STM32:中断系统(理论)

文章目录 中断系统为什么要使用中断中断优先级中断嵌套STM32的中断系统如何管理这些中断NVIC的结构![请添加图片描述](https://img-blog.csdnimg.cn/c77b038fd63a4ddfbcd3b86f6dfe596b.png) 优先级窗口看门狗(WWDG):外部中断模块的特性&#…

《Python数据分析技术栈》第06章使用 Pandas 准备数据 04 DataFrames

04 DataFrames 《Python数据分析技术栈》第06章使用 Pandas 准备数据 04 DataFrames A DataFrame is an extension of a Series. It is a two-dimensional data structure for storing data. While the Series object contains two components - a set of values, and index …

MySQL语句 | FIELD()与ORDER BY()相结合实现对结果的自定义排序

在MySQL中,可将FIELD()与ORDER BY()结合使用,实现对查询结果的自定义规则排序。 举个通用的例子 假设有一个名为your_table的表,包含名为your_column的列,希望按照列your_column的值的特定顺序进行排序: SELECT * F…

从0开始学C++ 第二十八课 数据结构深入 - 栈和队列

第二十八课:数据结构深入 - 栈和队列 学习目标: 理解栈(Stack)的基本概念和特性。掌握队列(Queue)的基本概念和特性。学会在C中使用栈和队列。了解栈和队列的典型应用场景。 学习内容: 栈&am…

前后端分离项目中实现图形验证码

图形验证码在我们的日常生活中时经常用到的,一般用于用户的登录、注册等。 图形验证码在互联网应用中的作用是提高安全性、防止滥用和保护用户隐私。它是一种简单而有效的人机验证技术,帮助保护系统和用户免受自动化攻击的影响。 本次我们通过spring b…

损失函数是指什么

损失函数(Loss Function)是用来衡量模型预测输出与实际目标之间差异的函数。在机器学习和深度学习中,损失函数是模型训练的关键部分。其目标是通过最小化损失函数来使模型的预测尽可能接近实际的标签或目标值。 在监督学习中,模型…

跟着野火学FreeRTOS:第二段(队列管理)

队列( Q u e u e s Queues Queues)是 F r e e R T O S FreeRTOS FreeRTOS中的一种数据结构,这种数据结构提供了一种任务和任务之间,任务和中断之间的通信机制。队列可以存储一定有限数量的固定大小( u x I t e m S i z…

Adobe Media Encoder 2023下载安装教程,ME 2023安装教程,附安装包和工具,无套路,轻松搞的安装

前言 Adobe Media Encoder是一个视频和音频编码应用程序,可让针对不同应用程序和观众,以各种分发格式对音频和视频文件进行编码。包括专门设计的预设设置,以便导出与特定交付媒体兼容的文件,可以按适合多种设备的格式导出视频&am…

漫漫数学之旅010

文章目录 经典格言数学习题古今评注科学家小传(一)艾伦凯(二)托马斯C黑尔斯 经典格言 计算机的归宿是融入我们的生活,就像其它一切我们习以为常的东西:手表、纸、铅笔和衣服,我们不再把它们看作…

Hbas简介:数据模型和概念、物理视图

文章目录 说明零 BigTable一 Hbase简介二 HBase 访问接口简介三 行式&列式存储四 HBase 数据模型4.1 HBase 列族数据模型4.2 数据模型的相关概念4.3 数据坐标 五 概念&物理视图 说明 本文参考自林子雨老师的大数据技术原理与应用(第三版)教材内容,仅供学习…

maven pom中的内置变量及引用

目录 前言内置变量引用 前言 maven其实有很多内置变量供开发着在开发中使用,比如说basedir这变量,它指的是pom.xml文件所在的目录,下面我们一起来认识一下。 内置变量 变量名作用说明basedir 、project.basedir项目的根目录即包含 pom.xml 文…

Gen AI大潮来袭!8个Salesforce新岗位,你会选择哪个?

人工智能席卷全球,企业对如何整合GenAI有着浓厚的兴趣。为启动企业的GenAI转型浪潮,Salesforce宣布与埃森哲和德勤建立合作伙伴关系,并计划推出更多支持项目。 目前,Salesforce领域的其他咨询公司正在提高员工技能,以…

C++之类型定义

# define QT_PREPEND_NAMESPACE(name) ::name template <class T> struct QIntegerForSizeof: QIntegerForSize<sizeof(T)> { }; typedef QIntegerForSizeof<void*>::Unsigned quintptr; typedef QT_PREPEND_NAMESPACE(quintptr) WId; WId winid; ​ 这段代…

笨蛋学设计模式行为型模式-状态模式【20】

行为型模式-状态模式 8.7状态模式8.7.1概念8.7.2场景8.7.3优势 / 劣势8.7.4状态模式可分为8.7.5状态模式8.7.6实战8.7.6.1题目描述8.7.6.2输入描述8.7.6.3输出描述8.7.6.4代码 8.7.7总结 8.7状态模式 8.7.1概念 ​ 状态模式是指对象在运行时可以根据内部状态的不同而改变它们…