linux离线安装mysql8(单机版)
文章目录
- 一、检查服务器是否有残留mysql资源,有的话就全删除
- 1.1、查询mysql已安装的相关依赖:
- 1.2、查找含有MySQL的目录
- 二、安装
- 2.1、上传mysql安装包到文件夹下并解压
- 2.2、移动及重命名
- 2.3、mysql用户
- 2.4、配置mysql所需的my.cnf文件
- 2.5、给my.cnf配置文件中指定的目录配置权限:(否则会在初始化时或是启动时出现问题,如果出现问题,应该实时查看初始化时与启动时的mysql.log日志)
- 2.6、配置命令
- 2.7、修改系统配置
- 2.7.1、修改/etc/profile,添加```export PATH=$PATH:/usr/local/mysql8/bin```
- 2.7.2、配置启动项
- 三、启动
- 3.1、初始化mysql服务
- 四、问题拓展
- 4.1、安装成功后,登录报错ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO),或ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
- 4.1.1 设置跳过密码验证
- 4.1.2 重启mysql后进行登录
- 4.1.3 将登录密码设置为空
- 4.1.4、修改新密码
- 4.2、新安装的mysql,登录后,执行任何命令报错:You must reset your password using ALTER USER statement before executing this statement.
- 前言,这里以mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz版本为例
一、检查服务器是否有残留mysql资源,有的话就全删除
1.1、查询mysql已安装的相关依赖:
rpm -qa | grep mysql
- 没有依赖是如图所示的

- 如果有依赖,就依次卸载依赖
# 这里的XXXXXX表示依赖名
rpm -e XXXXXX --nodeps
1.2、查找含有MySQL的目录
find / -name mysql

- 如果有依赖存在,就使用rm -rf 依次全部删除
例:rm -rf /var/lib/selinux/targeted/active/modules/100/mysql
二、安装
2.1、上传mysql安装包到文件夹下并解压
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz
2.2、移动及重命名
mv mysql-8.0.26-linux-glibc2.12-x86_64 /usr/local/mysql8
2.3、mysql用户
- 创建mysql用户
useradd mysql
- 配置mysql密码
passwd mysql
- 给用户赋权限
chown -R mysql:mysql /usr/local/mysql8
2.4、配置mysql所需的my.cnf文件
- 编辑my.cnf
vim /etc/my.cnf
- 配置文件内容
# 优先读取/etc/my.cnf.d目录下配置文件,一般用不着
#!includedir /etc/my.cnf.d# 客服端设置
[client]# 服务套接字位置
socket=/mnt/data/mysql/mysql.sock[mysqld]# 数据目录,路径的位置根据实际情况配置,给目录指定权限,否真会报权限问题
datadir=/mnt/data/mysql/mysql-data# mysql端口号
port = 3306# 日志文件输出,需要给目录配置权限,否则会报目录权限问题
log-error=/mnt/data/mysql/mysql-logs/mysql.log# 不区分大小写
# MySQL在Windows上会将所有的表名和数据库名转换为小写,并且在查询时不区分大小写。这有助于在不同操作系统之间移植数据库
lower_case_table_names=1# 服务套接字位置,需要给目录配置权限
socket=/mnt/data/mysql/mysql.sock# 是否与旧版本的客户端兼容,可能需要将此参数设置为mysql_native_password
# default_authentication_plugin=mysql_native_password# 最大传输如果数据包超过这个大小,MySQL会报错
# max_allowed_packet=64M# 最大连接并发数据量
# max_connections=1000
2.5、给my.cnf配置文件中指定的目录配置权限:(否则会在初始化时或是启动时出现问题,如果出现问题,应该实时查看初始化时与启动时的mysql.log日志)
chown -R mysql:mysql /mnt/data/mysql/mysql-data
chown -R 755 /mnt/data/mysql/mysql-data
chown -R mysql:mysql /mnt/data/mysql/mysql-logs
chmod -R 755 /mnt/data/mysql/mysql-logs
chown -R mysql:mysql /mnt/data/mysql
chown -R 755 /mnt/data/mysql
chmod -R 777 /mnt/data/mysql/
- 如果未检测到文件夹,就创建文件夹,然后再重新执行
mkdir -p /mnt/data/mysql/mysql-data
mkdir -p /mnt/data/mysql/mysql-logs

2.6、配置命令
- 设置命令,方便命令操作,软链接执行mysql8下对应命令文件,执行下面所有的指令
ln -snf /usr/local/mysql8/bin/mysql /usr/bin/mysqlln -snf /usr/local/mysql8/bin/mysqld /usr/sbin/mysqld ln -snf /usr/local/mysql8/bin/mysqladmin /usr/bin/mysqladminln -snf /usr/local/mysql8/bin/mysqlbinlog /usr/bin/mysqlbinlogln -snf /usr/local/mysql8/bin/mysqlcheck /usr/bin/mysqlcheckln -snf /usr/local/mysql8/bin/mysql_config_editor /usr/bin/mysql_config_editorln -snf /usr/local/mysql8/bin/mysqldump /usr/bin/mysqldumpln -snf /usr/local/mysql8/bin/mysqldumpslow /usr/bin/mysqldumpslowln -snf /usr/local/mysql8/bin/mysqlimport /usr/bin/mysqlimportln -snf /usr/local/mysql8/bin/mysqlpump /usr/bin/mysqlpumpln -snf /usr/local/mysql8/bin/mysql_secure_installation /usr/bin/mysql_secure_installationln -snf /usr/local/mysql8/bin/mysqlshow /usr/bin/mysqlshowln -snf /usr/local/mysql8/bin/mysqlslap /usr/bin/mysqlslapln -snf /usr/local/mysql8/bin/mysql_tzinfo_to_sql /usr/bin/mysql_tzinfo_to_sqlln -snf /usr/local/mysql8/bin/mysql_upgrade /usr/bin/mysql_upgrade
- 这样就安装成功了,查看一下mysql版本
mysql -V
mysqld -V

2.7、修改系统配置
2.7.1、修改/etc/profile,添加export PATH=$PATH:/usr/local/mysql8/bin
vim /etc/profile
- 在配置文件末尾添加
export PATH=$PATH:/usr/local/mysql8/bin
2.7.2、配置启动项
- 在mysql8下拷贝mysql.server到/etc/init.d目录下:
cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld
- 修改/etc/init.d/mysqld的基础路径:
vim /etc/init.d/mysqld
- 修改目录位置:
basedir=/usr/local/mysql8 (mysql的安装路径)
datadir=/mnt/data/mysql/mysql-data (这里要与配置文件保持一致)

- 保证service mysql 或 mysqld start均可启动:
cp /etc/init.d/mysqld /etc/init.d/mysql
- 添加到启动列表:
chkconfig --add mysqld
- 重新加载启动信息:
systemctl daemon-reload
- 查看启动项列表
chkconfig --list

三、启动
3.1、初始化mysql服务
- 初始化命令:–basedir:根据实际mysql安装路径
mysqld --user=mysql --basedir=/usr/local/mysql8 --initialize
-
初始化后,查看mysqld.log(默认/var/log/mysqld.log或本文取决于my.cnf的日志路径配置),找到root初始密码,在执行上方initialize语句时mysqld.log文件中就会打印,如图所示:

-
启动mysql:
service mysqld start
- 使用root登录:
mysql -uroot -p
- 首次需要修改密码 :
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

四、问题拓展
4.1、安装成功后,登录报错ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: NO),或ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
出错原因:
using password: NO:表示输入没有输入密码就尝试登陆了
using password: YES:表示输入了密码,但密码错误
这里表示很有可能是忘记密码了,或者初始化的时候,初始化密码不生效,因此需要重设密码。
4.1.1 设置跳过密码验证
找到 MySQL 的配置文件 “my.ini”,如果自己配置了配置文件,就到自己配置的配置文件里面找,比如我们当前文档2.4处配置的文件地址为/etc/my.cnf,vim配置文件后,找到 [mysqld],在其下面任意一行添加 skip-grant-tables,保存,如下图所示:

4.1.2 重启mysql后进行登录
- 重启
service mysqld restart
-
- 使用root登录,出现输入密码时,直接回车就好了:
mysql -uroot -p
4.1.3 将登录密码设置为空
- 依次执行命令
use mysql;update user set authentication_string='' where user='root';quit;

4.1.4、修改新密码
- 重启
service mysqld restart
- 使用root登录,出现输入密码时,直接回车就好了,因为此时密码为空:
mysql -uroot -p
- 刷新权限,输入
flush privileges;后回车 - 最后输入
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';后回车
# 刷新权限
flush privileges;# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
4.2、新安装的mysql,登录后,执行任何命令报错:You must reset your password using ALTER USER statement before executing this statement.
解决办法
- MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('Admin2022!');
- MySQL版本5.7.6版本开始的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY 'Admin2022!';

相关文章:
linux离线安装mysql8(单机版)
文章目录 一、检查服务器是否有残留mysql资源,有的话就全删除1.1、查询mysql已安装的相关依赖:1.2、查找含有MySQL的目录 二、安装2.1、上传mysql安装包到文件夹下并解压2.2、移动及重命名2.3、mysql用户2.4、配置mysql所需的my.cnf文件2.5、给my.cnf配置…...
【Python】快速创建一个简易 HTTP 服务器(http.server)
目录 官方文档安装教程用命令行创建编写代码创建 实例 官方文档 http.server 警告: http.server 不推荐用于生产环境。它仅仅实现了 basic security checks 的要求。 安装 Python3 内置标准模块,无需安装。(在之前的 Python2 版本名称是 Si…...
随着软件开发方法的不断演进,Cobol 程序如何适应敏捷开发和持续集成/持续部署(CI/CD)的流程?
Cobol是一种古老的编程语言,最初设计用于商业数据处理。虽然它不是为敏捷开发和CI/CD流程而设计的,但仍然可以通过一些技术和方法来使其与这些现代开发流程兼容。 以下是一些方法可以帮助Cobol程序适应敏捷开发和CI/CD流程: 拆分和模块化&am…...
nodejs - MongoDB 学习笔记
一、简介 1、MongoDB 是什么 MongoDB 是一个基于分布式文件存储的数据库,官方地址 https://www.mongodb.com/ 2、数据看是什么 数据库(DataBase)是按照数据结构来组织、存储和管理数据的应用程序。 3、数据库的作用 主要作用是 管理数据…...
photoshop学习笔记——移动工具
移动工具,可以对图层进行移动,快捷键 V 使用的素材已经放上了,直接下载即可 按住ctrl 可以自动选取,鼠标点击哪个对象,自动选中哪个图层 按住 shift 校正角度(只能沿着直线移动) 按住 alt 拖…...
HarmonyOS 质量、测试、上架速浏
1.应用质量要求: 1. 应用体验质量建议: 功能数据完备 功能完备 数据完备 基础体验要求 基础约束 兼容性 稳定性 性能 功耗 安全…...
TS的访问修饰符有哪些
如果你和我一样是从强类型语言(如C、C#、Java)转过来的,相信你会一眼就知道是什么 public(默认) - 全部可访问 protected - 自己和派生类可访问 private - 只有自己可访问 废话不多说,上代码: class Person {publ…...
网络安全之扫描探测阶段攻防手段(二)
扫描探测 扫描探测阶段是攻击者对目标网络进行深入了解的关键步骤,同时也是防御者识别潜在威胁和加强安全防护的机会。 攻击端:技术原理和工具 端口扫描: 原理:攻击者使用端口扫描工具来识别目标网络中开放的端口,这…...
C++:泛型算法了解
什么是泛型算法 泛型算法是C标准模板库(STL)中的一部分,它们表示的是可以用于不同类型的元素和多种容器类型的一些经典算法的公共接口。这些算法之所以被称为“泛型”,是因为它们可以操作在多种容器类型上,包括但不限…...
基于bert的自动对对联系统
目录 概述 演示效果 核心逻辑 使用方式 1.裁剪数据集 根据自己的需要选择 2.用couplet数据集训练模型 模型存储在model文件夹中 3.将模型转换为ONNX格式 4.打开index.html就可以在前端使用此自动对对联系统了。 本文所涉及所有资源均在传知代码平台可获取。 概述 这个生成器利用…...
js-vue中多个按钮状态选中类似于复选框与单选框实现
1.vue中多个按钮状态选中类似于复选框 在Vue中处理多个按钮的选中状态切换,通常我们会利用Vue的响应式数据系统来追踪每个按钮的选中状态。 html <div id"app"> <button v-for"button in buttons" :key"button.id" :c…...
ObservableCollection新增数据前判断数据是否存在
public class MyDataModel {public int Id { get; set; }public string Name { get; set; }}public static void Main(){// 创建 ObservableCollectionObservableCollection<MyDataModel> myDataCollection new ObservableCollection<MyDataModel>{new MyDataMode…...
DBus快速入门
DBus快速入门 参考链接: 中文博客: https://www.e-learn.cn/topic/1808992 https://blog.csdn.net/u011942101/article/details/123383195 https://blog.csdn.net/weixin_44498318/article/details/115803936 https://www.e-learn.cn/topic/1808992 htt…...
SQL Server 设置端口号:详细步骤与注意事项
目录 一、了解SQL Server端口号的基础知识 1.1 默认端口号 1.2 静态端口与动态端口 二、使用SQL Server配置管理器设置端口号 2.1 打开SQL Server配置管理器 2.2 定位到SQL Server网络配置 2.3 修改TCP/IP属性 2.4 重启SQL Server服务 三、注意事项 3.1 防火墙设置 3…...
Python面试题:结合Python技术,如何使用NetworkX进行复杂网络分析
NetworkX 是一个强大的 Python 库,用于创建、操作和研究复杂网络的结构、动力学和功能。它提供了丰富的功能来处理图和网络数据,适合用于复杂网络分析。以下是使用 NetworkX 进行复杂网络分析的基本步骤: 安装 NetworkX: pip inst…...
【C#/C++】C#调C++的接口,给C++传结构体数组
C#调C的接口,给C传结构体数组 1、背景2、实现 1、背景 C#软件创建了一个结构体数组用来存储图像的区域信息,分别是矩形框的左上像素的xy坐标和矩形框右下像素的xy坐标。需要传入给调用的C函数的参数列表中,我们选择使用C#传入一个结构体数组…...
ctfshow SSTI注入 web369--web372
web369 这把request过滤了,只能自己拼字符了 ""[[__clas,s__]|join] 或者 ""[(__clas,s__)|join] 相当于 ""["__class__"]举个例子,chr(97) 返回的是字符 a,因为 97 是小写字母 a 的 Unicode 编码…...
Llama + Dify,在你的电脑搭建一套AI工作流
theme: smartblue 点赞 关注 收藏 学会了 本文简介 最近字节在推Coze,你可以在这个平台制作知识库、制作工作流,生成一个具有特定领域知识的智能体。 那么,有没有可能在本地也部署一套这个东西呢?这样敏感数据就不会泄露了&…...
洛谷 P9854 [CCC 2008 J1] Body Mass Index
这题让我们计算出 BMI 值,随后判断属于哪个等级。 BMI 值计算公式: 。 BMI 范围 对应信息 …...
Redis面试三道题目
针对Redis的面试题,我将从简单到困难给出三道题目,并附上参考答案的概要。 1. 简单题:请简述Redis是什么,以及它的主要优点。 参考答案: Redis简介:Redis是一个开源的、使用ANSI C语言编写、支持网络、可…...
基于springboot家庭影像管理系统设计与开发(源码+精品论文+答辩PPT等资料)
博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...
基于关键链方法的遗传算法求解项目调度问题
一、问题背景与核心思想 项目调度问题(Project Scheduling Problem, PSP)是在满足活动逻辑关系(紧前约束)和资源约束(如人力、设备)的前提下,确定各活动开始/结束时间,以最小化项目工…...
OpenClaw极简部署:nanobot镜像+手机Termux方案
OpenClaw极简部署:nanobot镜像手机Termux方案 1. 为什么要在手机上部署OpenClaw? 去年夏天,我在咖啡馆等朋友时突发奇想:如果能用手机随时调用AI助手处理文件该多好。当时尝试了几款云端AI工具,但要么功能受限&#…...
你的产品过不了EMC测试?很可能是电源接口这3个PCB布局坑没避开
电源接口EMC设计避坑指南:PCB布局中的三个致命细节 当你的产品在EMC测试中屡屡碰壁时,问题往往不在于防护电路设计本身,而是隐藏在PCB布局的细微之处。许多工程师精心设计了符合规范的防护拓扑,却在传导骚扰测试中遭遇滑铁卢。本文…...
音乐解密技术探秘:从加密困境到跨平台解决方案
音乐解密技术探秘:从加密困境到跨平台解决方案 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库: 1. https://github.com/unlock-music/unlock-music ;2. https://git.unlock-music.dev/um/web 项目地址: https://gitc…...
面向对象编程入门(下篇):继承、封装与多态
在上篇中,我们学会了如何定义类和创建对象,将现实世界的事物用代码表示。今天,我们将深入面向对象编程的三大核心特性:继承、封装和多态。这些特性将让你的代码更加灵活、可扩展和易维护。一、继承:代码复用的“家族传…...
终极指南:GoldHEN Cheats Manager - PlayStation 4游戏作弊代码完整管理方案
终极指南:GoldHEN Cheats Manager - PlayStation 4游戏作弊代码完整管理方案 【免费下载链接】GoldHEN_Cheat_Manager GoldHEN Cheats Manager 项目地址: https://gitcode.com/gh_mirrors/go/GoldHEN_Cheat_Manager GoldHEN Cheats Manager 是一款专为PlaySt…...
5大理由让你立即选择Argos Translate:开源离线翻译的终极解决方案
5大理由让你立即选择Argos Translate:开源离线翻译的终极解决方案 【免费下载链接】argos-translate Open-source offline translation library written in Python 项目地址: https://gitcode.com/GitHub_Trending/ar/argos-translate Argos Translate是一款…...
屠龙刀法35--使用SQL查询器批量生成insert语句
很多网友认为SQL查询器的语句不都是人工输入或者从外面粘贴进去的吗?用查询器批量生成Insert语句感觉有点魔幻哦。的确听起来不太科学,但是对于DBCS来说这个功能的确非常好用。下面我们就举例一步步告诉大家,如何使用这个功能。 第一步&…...
Python多进程+ZeroMQ+内存映射=真无锁?资深架构师用17个生产事故告诉你为什么92%的“去GIL”方案在高并发下静默失败
第一章:Python无锁GIL环境下的并发模型避坑指南Python 的全局解释器锁(GIL)长期被误认为是“无锁”环境,实则恰恰相反——GIL 是 CPython 解释器中一把严格的互斥锁,它确保任意时刻仅有一个线程执行 Python 字节码。所…...
