CentOS 7 上安装 MySQL 8.0.40 (二进制安装)

要在 CentOS 7 上安装 MySQL 8.0.40,按照以下步骤操作:

下载安装包。

https://dev.mysql.com/downloads/mysql/
在这里插入图片描述

下载之前查看系统c++版本
在这里插入图片描述

解压安装包

首先,解压下载的 .tar.xz 安装包。

cd /path/to/your/downloads
tar -xvf mysql-8.0.40-linux-glibc2.28-x86_64.tar.xz

解压后,会得到一个 mysql-8.0.40-linux-glibc2.28-x86_64 目录。

移动到合适的位置

接下来,你可以将解压后的目录移动到你希望安装 MySQL 的位置,通常是 /usr/local

sudo mv mysql-8.0.40-linux-glibc2.28-x86_64 /usr/local/mysql

创建 MySQL 用户和组

为了安全性,MySQL 应该运行在专用的用户和组下。

sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

创建 MySQL 数据目录

接下来,创建数据存储目录,并给 MySQL 用户设置适当的权限。

sudo mkdir /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql

配置环境变量

为了方便使用 MySQL 命令,你需要将 MySQL 的 bin 目录添加到 PATH 环境变量中。编辑 /etc/profile 文件。

sudo vi /etc/profile

在文件末尾添加以下内容:

export PATH=$PATH:/usr/local/mysql/bin

保存并退出编辑器。然后执行以下命令使改动生效:

source /etc/profile

创建配置文件

touch /etc/my.cnf
[mysqld]                              
port=3306               
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/data/mysql.sock                   
max_connect_errors=10                         
character-set-server=utf8mb4                          
default-storage-engine=INNODB                               
user=root
#skip-grant-tables  [client]                                                     
port=3306                              
socket=/usr/local/mysql/data/mysql.sock                                                                
default-character-set=utf8mb4

备注:不要有空格,否则会找不到socket连接

初始化 MySQL 数据目录

使用 MySQL 自带的 mysqld 工具初始化数据目录:

sudo /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --console --user=root

初始化成功后,会有一个临时密码

[root@localhost mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf --initialize --console --user=root
2024-12-03T10:56:54.844764Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.40) initializing of server in progress as process 11446
2024-12-03T10:56:54.852440Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-12-03T10:56:55.144832Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-12-03T10:56:56.594319Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: FhN9Yk=/Cdus

删除 mysql/data目录即可重新初始化

创建 mysql.sock文件(重要,非常重要的一步)

cd  data/
touch mysql.sock

启动mysql 服务

sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &

查看mysql是否启动

执行命令  ps -ef | grep mysql

在这里插入图片描述

登录 mysql 数据库

sudo /usr/local/mysql/bin/mysql --socket=/usr/local/mysql/data/mysql.sock -u root -p

完成!

到此为止,你已经成功安装 MySQL 8.0.40。

常用命令(扩展)

# 初始化
sudo /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --initialize --console --user=root#启动服务
sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &#停止服务
sudo /usr/local/mysql/bin/mysqladmin -u root -p shutdown
#停止服务(二)
ps aux|grep mysql
kill <mysql有关的pid># 登录mysql
sudo /usr/local/mysql/bin/mysql --socket=/usr/local/mysql/data/mysql.sock -u root -p

创建账号并授权

# 进入mysql
use mysql# 用如下语句查看MySQL当前加密方式
select host,user,plugin from user;# 创建账号test01、密码test01, 设置密码插件模式mysql_native_password,并允许该用户从任何主机(即 %)进行连接
CREATE USER 'test01'@'%' IDENTIFIED WITH mysql_native_password BY 'test01';
# 如果你只希望该用户能从本地(localhost)连接,可以将 '%' 改为 'localhost':
CREATE USER 'test01'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test01';# 授予权限。为  用户授予合适的权限。如果你希望该用户具有所有权限,可以使用以下命令:
GRANT ALL PRIVILEGES ON *.* TO 'test01'@'%' WITH GRANT OPTION;

忘记密码,找回

  1. kill mysql服务
  2. 进入/etc/my.cnf
  3. 添加 在 [mysqld] 下面,添加一行 skip-grant-tables
  4. 重启mysql:sudo /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
  5. 无密码,进入mysql。将登陆密码设置为空。将密码设置为空(此时还不能直接修改密码,必须先设置为空,否则会报错。 skip-grant-tables 模式下无法修改其他密码,只能修改为空 )
use mysql; (使用mysql数据表)
update user set authentication_string='' where user='root';(将密码置为空)
quit; (然后退出Mysql)
  1. kill mysql服务。 将/etc/my.cnf 添加的一行skip-grant-tables去掉, 再次启动。
  2. 再次无密码登录
  3. 更新密码,要使用mysql_native_password 插件模式,否则navicat可能链接不上
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '1234';
FLUSH PRIVILEGES;

修改加密模式

update user set plugin='mysql_native_password' where user='root';

进入mysql,use mysql,直接update加密模式,退出来,原密码就无法登录了

在Mysql 8版本中,必须分两步来实现设置用户权限

在Mysql 8版本中,不能使用

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'WITH GRANT OPTION;

这一行命令来设置用户权限,必须分两步来实现设置用户权限【先创建用户、在对该用户分配用户权限】,最后刷新权限

CREATE USER 'test2'@'%' IDENTIFIED WITH mysql_native_password BY 'test2';
GRANT ALL PRIVILEGES ON *.* TO 'test2'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

或者

CREATE USER 'test3'@'%' IDENTIFIED BY 'test3';
GRANT ALL PRIVILEGES ON *.* TO 'test3'@'%' WITH GRANT OPTION;
update user set plugin='mysql_native_password' where user='test3';
FLUSH PRIVILEGES;

然后外部就可以通过账户密码访问了。

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

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

相关文章

PHP语法学习(第六天)

&#x1f4a1;依照惯例&#xff0c;回顾一下昨天讲的内容 PHP语法学习(第五天)主要讲了PHP中的常量和运算符的运用。 &#x1f525; 想要学习更多PHP语法相关内容点击“PHP专栏” 今天给大家讲课的角色是&#x1f34d;菠萝吹雪&#xff0c;“我菠萝吹雪吹的不是雪&#xff0c;而…

Python Web 开发:使用 FastAPI 进行依赖注入与异常处理

Python Web 开发&#xff1a;使用 FastAPI 进行依赖注入与异常处理 目录 &#x1f6e0;️ 依赖注入与 FastAPI 高级特性⚠️ 自定义异常类的实现与应用&#x1f6a8; 使用 HTTPException 处理常见错误&#x1f30d; 全局异常处理器的设计与实现⚙️ 异常处理与 API 响应的整合…

免押租赁系统助力资源共享新模式开创便捷租赁体验

内容概要 免押租赁系统&#xff0c;听起来是不是很酷&#xff1f;这个新模式不仅仅是为了让你少花点钱&#xff0c;它的到来简直就是个革命&#xff01;以前&#xff0c;租东西时首先想到的就是那个令人心痛的押金&#xff0c;对吧&#xff1f;但现在&#xff0c;免押租赁系统…

oracle之用户的相关操作

&#xff08;1&#xff09;创建用户(sys用户下操作) 简单创建用户如下&#xff1a; CREATE USER username IDENTIFIED BY password; 如果需要自定义更多的信息&#xff0c;如用户使用的表空间等&#xff0c;可以使用如下&#xff1a; CREATE USER mall IDENTIFIED BY 12345…

第77期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

如何通过自学成长为一名后端开发工程师?

大家好&#xff0c;我是袁庭新。最近&#xff0c;有星友向我提出了一个很好的问题&#xff1a;如何通过自学成为一名后端开发工程师&#xff1f; 为了解答这个疑问&#xff0c;我特意制作了一个视频来详细分享我的看法和建议。 戳链接&#xff1a;如何通过自学成长为一名后端开…

Linux---对缓冲区的简单理解--第一个系统程序

前序&#xff1a; 首先先理解一下什么是回车与换行&#xff1b;回车和换行是两个概念&#xff0c;它们不是一个东西&#xff1b; 回车:光标回到开始&#xff1b;换行:换到下一行&#xff1b; 如下图&#xff1a; 行缓冲区 如何理解缓冲区问题&#xff1f; 可以认为&#xff0…

力扣每日一题-999. 可以被一步捕获的棋子数

题目 给定一个 8 x 8 的棋盘&#xff0c;只有一个 白色的车&#xff0c;用字符 R 表示。棋盘上还可能存在白色的象 B 以及黑色的卒 p。空方块用字符 . 表示。车可以按水平或竖直方向&#xff08;上&#xff0c;下&#xff0c;左&#xff0c;右&#xff09;移动任意个方格直到它…

多模态大型语言模型MM-1.5采用数据驱动的方法,通过不断优化数据组合提高模型性能

多模态大型语言模型MM-1.5采用数据驱动的方法&#xff0c;通过不断优化数据组合提高模型性能 MM-1.5模型的设计核心在于其数据驱动的方法&#xff0c;这意味着模型的性能在很大程度上取决于所使用的数据类型和组合。这种方法的实施细节可以从以下几个方面来展开&#xff1a; …

[Python学习日记-70] 元类

[Python学习日记-70] 元类 简介 什么是元类 关键字 class 创建类的流程分析 自定义元类控制类的创建 自定义元类控制类的调用 自定义元类的属性查找 自定义元类的应用与练习 简介 在上一篇章当中我们已经了解了面向对象的各种内置函数了&#xff0c;本篇我们将讲述“元类…

数据结构题库11

第五章 树和二叉树 一、单项选择题 1&#xff0e;关于二叉树的下列说法正确的是 (1)。 (1)&#xff1a;A&#xff0e;二叉树的度为2 B&#xff0e;二叉树的度可以小于2 C&#xff0e;每一个结点的度都为2 D&#xff0e;至少有一个结点的度为 2&#xff0e;设深度为h(h>0)的二…

【学习路线】Java

Java基础 基础 基础语法 面向对象 集合框架 JCF 进阶 并发编程 JVM 企业级开发 框架 Spring Boot Spring Cloud 分布式 高性能 高可用 安全 基建 Docker 实战 数据库 MySQL Redis 计算机基础 计算机组成原理 操作系统 计算机网络 数据结构与算法 设计模式 参考&#xff1a;…

学生公寓智能限电系统的功能和作用

学生公寓智能限电系统‌是一种用于管理和限制学生公寓用电的设备和技术&#xff0c;旨在确保用电安全、防止火灾事故&#xff0c;并促进节能减排。以下是关于学生公寓智能限电系统的详细介绍&#xff1a; 1、功能和作用 智能限电系统通过以下功能来管理和限制用电&#xff1a…

【开发语言】层次状态机(HSM)介绍

层次状态机&#xff08;Hierarchical State Machine, HSM&#xff09;&#xff0c;从基本原理、结构设计、实现方法以及如何结合 Qt 进行具体实现等方面进行分析。 1. 层次状态机的基本原理 层次状态机是一种用于管理复杂系统行为的状态机模型&#xff0c;它通过将状态组织成…

MYSQL PARTITIONING分区操作和性能测试

PARTITION OR NOT PARTITION IN MYSQl Bill Karwin says “In most circumstances, you’re better off using indexes instead of partitioning as your main method of query optimization.” According to RICK JAMES: “It is so tempting to believe that PARTITIONing wi…

深入解析 Loss 减少方式:mean和sum的区别及其在大语言模型中的应用 (中英双语)

深入解析 Loss 减少方式&#xff1a;mean 和 sum 的区别及其在大语言模型中的应用 在训练大语言模型&#xff08;Large Language Models, LLM&#xff09;时&#xff0c;损失函数&#xff08;Loss Function&#xff09;的处理方式对模型的性能和优化过程有显著影响。本文以 re…

基于 AutoFlow 快速搭建基于 TiDB 向量搜索的本地知识库问答机器人

导读 本文将详细介绍如何通过 PingCAP 开源项目 AutoFlow 实现快速搭建基于 TiDB 的本地知识库问答机器人。如果提前准备好 Docker、TiDB 环境&#xff0c;整个搭建过程估计在 10 分钟左右即可完成&#xff0c;无须开发任何代码。 文中使用一篇 TiDB 文档作为本地数据源作为示…

生信技能63 - 构建gnomAD变异位点的SQLite查询数据库

将数据量巨大的gnomAD数据库,通过SQLite数据库寻找gnomAD中存在的各种变异注释信息(如等位基因计数,深度,次要等位基因频率等),查询300.000个变量的查询需要大约40秒,通过染色体编号+位置+REF+ALT即可进行快速查询。 1. gnomAD变异注释VCF文件字段 gnomAD VCF各版本包…

【前端】将vue的方法挂载到window上供全局使用,也方便跟原生js做交互

【前端】将vue的方法挂载到window上供全局使用&#xff0c;也方便跟原生js做交互 <template><div><el-button click"start">调用方法</el-button></div> </template> <script> // import { JScallbackProc } from ./JScal…