Linux系统离线部署MySQL详细教程(带每步骤图文教程)

1、登录官网下载对应的安装包

MySQL :: Developer Zone

2、将压缩包上传到服务器上,这里直接上传到/usr/local路径上

使用sftp工具上传到/usr/local目录上

3、解压压缩包

tar -xf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz

4、将mysql-8.0.39-linux-glibc2.17-x86_64目录重命名为mysql

在/usr/mysql/目录下

mv mysql-8.0.39-linux-glibc2.17-x86_64 mysql

5、创建用户组

groupadd mysql #创建用户组

useradd -r -g mysql mysql

# -r 参数表示mysql 用户是系统用户,不可用于登录系统;

# -g 将用户mysql添加到用户组mysql中

6、分配用户组,将文件属性、组属性改为mysql

chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为mysql用户

chgrp -R mysql /usr/local/mysql/ # 将组属性改为mysql组

7、创建新的数据目录(也可以使用默认的数据目录,一般在/var目录下)

mkdir -p /data/mysql #创建数据目录

chown mysql:mysql -R /data/mysql# 将新目录文件的所有属性改为mysql用户

8、修改MySQL服务器配置文件

vim /etc/my.cnf

添加如下配置信息

[mysqld]

port=3306 # 设置MySQL服务监听端口,默认3306

bind-address=0.0.0.0# 设置MySQL服务器绑定的IP地址,可以设置为自己本机IP

user=mysql # 设置MySQL数据库用户

basedir=/usr/local/mysql # 数据库文件路径

datadir=/data/mysql # 数据库数据目录,存储数据库文件的路径

socket=/tmp/mysql.sock # 设置MySQL服务器使用的套接字文件路径

pid-file=/data/mysql/mysql.pid # 设置指定存放进程ID的文件

character_set_server=utf8mb4 # 设置每个连接的默认字符集

symbolic-links=0

explicit_defaults_for_timestamp=true # mysql-5.6.6丢弃了这个系统变量,版本高于5.6.6的可加上

9、初始化数据库

先切换到mysql路径,再执行初始化

cd /usr/local/mysql/bin

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

–basedir 为mysql解压目录,–datadir 为mysql数据存放目录,就是在/etc/my.cnf配置的路径

PS:此步骤可能因glibc依赖问题会报错,如报错可参考第15条的解决方法。

10、初始化后就可以查看mysql初始密码了

cat /data/mysql/mysql.err

11、加入到系统服务,启动mysql服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

PS:此步骤重启mysql服务可能会log-err文件目录不存在报错,可参考第15条的解决方法。

12、MySQL服务启动成功后,就可以登录到mysql数据库

/usr/local/mysql/bin/mysql -u root -p

输入刚开始初始化后查看到的初始密码,即可完成进入mysql数据库

PS:如果想直接使用mysql -u root -p 直接登录,则需要先把mysql的路径映射链接到/usr/bin目录下

ln -s /usr/local/mysql/bin/mysql /usr/bin

13、更改mysql数据库登录初始密码

ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;

FLUSH PRIVILEGES; #刷新

14、完成部署

退出数据库,再次登录即可输入更改的密码,到此mysql已经部署完成,成功部署。

15、部署时可能出现的问题

1、初始化数据库报错

初始化数据库的时候报“./mysqld:/lib64/libstdc++.so.6:version ‘CXXABI 1.3.11’ not found (required by ./mysqld)”

此报错是缺少对应的libstdc++版本依赖问题,可以先查看对应的版本

strings /usr/lib64/libstdc++ |grep CXXABI

find / -name “libstdc++.so.6*”

可以看到是缺少相应的版本依赖。

(1)解决办法

1)可以看缺少那些依赖就安装对应的依赖版本

  1. 使用rpm查看glibc版本,然后去官网下载对应的版本即可

2、启动mysql服务报错

启动mysql服务时可能会报“Starting MySQL.2024-09-20T09:32:58.959370Z mysqld safe error:log-errorr set to/var/log/mariadb/mariadb.log’,however file don’t exists.Create writable for us ‘mysql’”

**(1)**解决方法

此错误时没有对应的目录和文件,进行创建目录和文件即可

mkdir /var/log/mariadb/

touch /var/log/mariadb/mariadb.log

chown -R mysql:mysql /var/log/mariadb/

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

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

相关文章

leetcode刷题记录(六十一)——73. 矩阵置零

(一)问题描述 73. 矩阵置零 - 力扣(LeetCode)73. 矩阵置零 - 给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 [http://baike.baidu.com/item/%E5%8E%9F%E5%9…

人机交互(包含推荐软件)

视觉交互、语音交互、笔式交互、触觉交互、虚拟环境交互。 主要的研究方面包括:人机交互界面表示模型与设计方法、可用性工程、可用性评估模型和方法、多模态智能交互技术、智能交互认知技术、语音识别交互、web界面交互设计、移动界面交互设计。 交互设计流程&am…

解锁未来情感科技:AI 机器人 Ropet 搭载的前沿智能黑科技

2025年的国际消费电子产品展览会(CES)上,一只可爱的“毛绒玩具”成了全场焦点。 当然,这并不是一个单纯的玩偶,而是和《超能陆战队》的大白一样温暖的陪伴机器人。 相信有很多人和小编一样,当年看完《超能…

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载,Scroll滚动到顶部

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载 效果展示 使用方法 import LoadingText from "../components/LoadingText" import PageToRefresh from "../components/PageToRefresh" import FooterBar from "../components/…

Flink(八):DataStream API (五) Join

1. Window Join Window join 作用在两个流中有相同 key 且处于相同窗口的元素上。这些窗口可以通过 window assigner 定义,并且两个流中的元素都会被用于计算窗口的结果。两个流中的元素在组合之后,会被传递给用户定义的 JoinFunction 或 FlatJoinFunct…

Flink CDC 在阿里云实时计算Flink版的云上实践

摘要:本文整理自阿里云高级开发工程师,Apache Flink Committer 阮航老师在 Flink Forward Asia 2024 生产实践(三)专场中的分享,主要分为以下四个方面: Flink CDC & 实时计算 Flink CDC YAML 核心功能…

如何使用wireshark 解密TLS-SSL报文

目录 前言 原理 操作 前言 现在网站都是https 或者 很多站点都支持 http2。这些站点为了保证数据的安全都通过TLS/SSL 加密过,用wireshark 并不能很好的去解析报文,我们就需要用wireshark去解密这些报文。我主要讲解下mac 在 chrome 怎么配置的&…

【大模型系列篇】数字人音唇同步模型——腾讯开源MuseTalk

之前有一期我们体验了阿里开源的半身数字人项目EchoMimicV2,感兴趣的小伙伴可跳转至《AI半身数字人开箱体验——开源项目EchoMimicV2》,今天带大家来体验腾讯开源的数字人音唇同步模型MuseTalk。 MuseTalk 是一个实时高品质音频驱动的唇形同步模型&#…

C++基础入门(二)

目录 前言 一、重载 1.函数重载 2.运算符重载 二、构造函数 1.什么是构造函数 2.带参数的构造函数 3.使用初始化列表 4.this关键字 5.new关键字 三、析构函数 1.什么是析构函数 四、静态成员变量 1.静态成员的定义 2.静态成员变量的作用 五、继承 1.继承基本概…

基础vue3前端登陆注册界面以及主页面设计

1.下载依赖 "element-plus/icons": "^0.0.11", "element-plus/icons-vue": "^2.3.1", "fortawesome/fontawesome-svg-core": "^6.7.2", "fortawesome/free-solid-svg-icons": "^6.7.2", &quo…

Mybatis-Plus:乐观锁与悲观锁

文章目录 一、场景二、乐观锁与悲观锁三、模拟修改冲突3.1 数据库中增加商品表3.2 添加数据3.3 添加实体3.4 添加mapper3.5 测试 四、乐观锁实现流程4.1 Mybatis-Plus实现乐观锁 一、场景 一件商品,成本价是80元,售价是100元。老板先是通知小李&#xf…

卷积神经网络——食物分类

整体框架: 导入库 导入了各种必需的Python库,用于数据处理、图像读取、模型构建和训练。 设置随机种子 seed_everything: 用于设置所有随机数生成器的种子,确保每次运行时的结果都是相同的。 图像预处理(transform) 对…

Jmeter配置服务代理器 Proxy(二)

1.创建脚本记录器 2.配置:Jmeter代理、端口、记录目标等 3.配置谷歌浏览器代理 浏览器配置代理的详细教程可参考:使用whistle代理-CSDN博客 4.启动Jmeter记录器 点击ok后弹出这个界面,生成了证书: 5.给浏览器安装Jmeter代理的证书…

灰色预测and BP神经网络 (详细上手使用)

灰色预测模型 基础知识: 白色系统:系统的信息是完全明确的。 灰色系统:系统的部分信息已知,部分信息未知。 黑色系统:系统的内部信息是未知的。 灰色预测是对既含有已知信息又含有不确定信息的系统进行预则&#xf…

mac 安装 node

brew versions node // 安装 node brew versions node14 // 安装指定版本 卸载node: sudo npm uninstall npm -g sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* sudo rm -rf /usr/local/include/node /Users/$USER/.npm su…

【Unity】unity3D 调用LoadSceneAsync 场景切换后比较暗 部门材质丢失

解决方法:两个场景使用同样灯光 现象 直接进入第二个场景是可以正常显示 调用LoadSceneAsync来切换后,第二个场景出现比较暗的情况 解决方法:两个场景使用同样灯光,在loading 的场景中加入灯光。 Light—Directional Light 如果…

红日-VulnStack靶场一

http://vulnstack.qiyuanxuetang.net/vuln/ 一、环境部署 win7(被攻击机/关火墙) web服务器 1张外网网卡(桥接192.168.1.105),一张内网网卡192.168.52.143/255.255.255.0/192.168.52.2 DNS 192.168.52.138 winser2008 域控服务器 1张…

实现linux硬盘smart检测

一、下载交叉编译libatasmart库 下载链接:https://www.linuxfromscratch.org/blfs/view/svn/general/libatasmart.html libatasmart库编译依赖libudev库,交叉编译器前先准备依赖的libudev: 设置libudev的环境变量,并通过configure编译文件生…

蓝桥杯算法|基础笔记(1)

**时间复杂度** 一、概念理解 时间复杂度是用来衡量算法运行时间随输入规模增长而增长的量级。它主要关注的是当输入规模趋向于无穷大时,算法执行基本操作的次数的增长趋势,而不是精确的运行时间。 二、分析代码中的基本操作 确定关键操作 在一段代码…

Uniapp判断设备是安卓还是 iOS,并调用不同的方法

在 UniApp 中,可以通过 uni.getSystemInfoSync() 方法来获取设备信息,然后根据系统类型判断当前设备是安卓还是 iOS,并调用不同的方法。 示例代码 export default {onLoad() {this.checkPlatform();},methods: {checkPlatform() {// 获取系…