MySQL 二进制安装(正式篇)

Author:Arsen
Date:2025/01/24
官方参考文档:点击链接跳转
目录
- 规划
- 下载
- 安装
- 管理
- FAQ
规划
| OS | MySQL Server Version | 备注 |
|---|---|---|
| CentOS 7.9 or Linux - Generic | 8.0.33 | (GNU libc) 2.17 |
下载
二进制包下载地址:https://downloads.mysql.com/archives/community/

注意,OS Version 选择对应的 glibc 版本:
首先查看自己服务器 glibc 版本:
ldd --version

因此,需要选择对应的 2.17 版本。
安装
创建 mysql 数据目录
/data/mysql
创建 mysql 用户组
groupadd -g 27 -o -r mysql
创建 mysql 用户
useradd -M -N -g mysql -o -r -d /data/mysql -s /bin/false -c "MySQL Server" -u 27 mysql
选项解析:
-M:不创建用户的主目录
-N:不为用户自动创建同名的组,如果需要加入一个已存在的组,可通过-g选项来指定
-g:指定用户的主组,此时,不会自动创建mysql组,前提是系统中已经存在mysql组
-o:允许新用户使用已经存在的 UID
-r:创建系统用户,系统用户通常用于没有交互性登录权限的服务账户,UID 通常小于 1000
-d:指定用户的家目录,通常是 MySQL 数据文件的存储目录
-s:禁用用户登录,即不提供交互式 shell 登录
-c:为用户添加注释,在系统的/etc/passwd文件中可以看到该注释
-u:指定 UID,通常,MySQL 用户会使用固定的 UID 以便与系统中的 MySQL 服务保持一致
安装包上传至服务器并解压
tar xf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz
mv mysql-8.0.33-linux-glibc2.17-x86_64-minimal/* /data/mysql
MySQL Linux 通用二进制分发目录解释:
bin:包含了软件的主程序或者工具的可执行文件docs:MySQL 手册(Info 格式)man:Unix 手册页(包含了命令的用法、选项和示例)include:存放头文件(通常是 C 或 C++ 编程语言的头文件)lib:存放库文件(动态或静态库)LICENSE:软件的许可证文件README:包含软件的简要说明和安装信息share:存放共享的资源文件support-files:与管理多个服务器进程、自动启动配置和日志轮换相关的其他支持文件
创建文件导入、导出安全目录(防止 SQL 注入)
mkdir /data/mysql/secure-file
创建配置文件目录
mkdir /data/mysql/conf
创建数据目录
mkdir /data/mysql/data
创建日志目录
mkdir /data/mysql/logs
配置 MySQL
官方:https://dev.mysql.com/doc/mysql-secure-deployment-guide/8.0/en/secure-deployment-post-install.html
vim /data/mysql/conf/my.cnf
[mysqld]
datadir=/data/mysql/data
socket=/tmp/mysql.sock
port=13306
log-error=/data/mysql/logs/localhost.localdomain.err
user=mysql
secure_file_priv=/data/mysql/secure-file
local_infile=OFF
目录/文件授权
chown mysql.mysql -R /data/mysql/
chmod 750 -R /data/mysql
初始化数据目录(较快,秒级)
cd /data/mysql/
bin/mysqld --defaults-file=/data/mysql/conf/my.cnf --initialize
过滤出初始密码
cat logs/localhost.localdomain.err |grep 'root@localhost'# 初始密码为: >BqGh,R>D5-G

管理
配置 systemd 管理,实现在主机重启时启用 MySQL 服务器的自动重启功能。
vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target[Install]
WantedBy=multi-user.target[Service]
User=mysql
Group=mysql# Have mysqld write its state to the systemd notify socket
Type=notify# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0# Start main service
ExecStart=/data/mysql/bin/mysqld --defaults-file=/data/mysql/conf/my.cnf $MYSQLD_OPTS # Use this to switch malloc implementation
EnvironmentFile=-/etc/sysconfig/mysql# Sets open_files_limit
LimitNOFILE = 10000Restart=on-failureRestartPreventExitStatus=1# Set environment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1PrivateTmp=false
设置开机自启动
systemctl enable mysqld.service
使配置生效
systemctl daemon-reload
启动 MySQL 服务
systemctl start mysqld.service
查看 MySQL 状态
systemctl status mysqld.service

重置 MySQL root 账户密码
bin/mysql -u root -p# 这里输入我们上面过滤出来的“初始密码 >BqGh,R>D5-G”
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zhurs@123!';
新密码验证
bin/mysqlshow -u root -p

systemd 常用管理命令:
# 启动
systemctl start mysqld.service# 停止
systemctl stop mysqld.service# 重启
systemctl restart mysqld.service# 开机自启
systemctl enable mysqld.service
FAQ
[ERROR] [MY-013276] [Server] Failed to set datadir to …
现象:

原因:
MySQL 无法访问 datadir 指定的目录 /data/mysql/data/,错误信息显示 OS errno: 13 - Permission denied,这表明 MySQL 的 mysqld 进程没有足够的权限在该目录中创建和写入文件。
解决:
# 赋权
chmod 750 -R /data/mysql# 再次初始化
bin/mysqld --defaults-file=/data/mysql/conf/my.cnf --initialize
ERROR 1820 (HY000): You must reset your password …
现象:

原因:
未修改初始密码。
解决:
# 修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Zhurs@123!';
相关文章:
MySQL 二进制安装(正式篇)
Author:Arsen Date:2025/01/24 官方参考文档:点击链接跳转 目录 规划下载安装管理FAQ 规划 OSMySQL Server Version备注CentOS 7.9 or Linux - Generic8.0.33(GNU libc) 2.17 下载 二进制包下载地址:https://downloads.mysql.…...
MongoDB 数据库备份和恢复全攻略
在当今数据驱动的时代,数据库的稳定运行和数据安全至关重要。MongoDB 作为一款流行的 NoSQL 数据库,以其灵活的文档模型和高扩展性备受青睐。然而,无论数据库多么强大,数据丢失的风险始终存在,因此掌握 MongoDB 的备份…...
K8S部署DevOps自动化运维平台
持续集成(CI) 持续集成强调开发人员提交了新代码之后,立刻自动的进行构建、(单元)测试。根据测试结果,我 们可以确定新代码和原有代码能否正确地集成在一起。持续集成过程中很重视自动化测试验证结果&#…...
工业相机 SDK 二次开发-Sherlock插件
本文介绍了 sherlock 连接相机时的插件使用。通过本套插件可连接海康的工业相机。 一.环境配置 1. 拷贝动态库 在用户安装 MVS 目录下按照如下路径 Development\ThirdPartyPlatformAdapter 找到目 录为 DalsaSherlock 的文件夹,根据 Sherlock 版本找到…...
分布式版本控制系统:Git
1 Git概述 Git官网:https://git-scm.com/ Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目Git易于学习,占地面积小,性能极快。它具有廉价的本地库、方便的暂存区域和多个工作流分支等特性…...
页高速缓存与缓冲区缓存的应用差异
页高速缓存(Page Cache)与缓冲区缓存(Buffer Cache)是计算机系统中用于提高数据访问性能的两种不同类型的缓存机制,它们的差异主要体现在以下几个方面: 缓存目的 页高速缓存:主要用于加速对磁…...
C语言编程笔记:文件处理的艺术
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一、为什么要用文件二、文件的分…...
如何编写一个MyBatis插件?
大家好,我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助; 如何编写一个MyBatis插件? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 编写 MyBatis 插件需要使用 MyBatis 提供的插件接口,MyBa…...
验证二叉搜索树(力扣98)
根据二叉搜索树的特性,我们使用中序遍历,保证节点按从小到大的顺序遍历。既然要验证,就是看在中序遍历的条件下,各个节点的大小关系是否符合二叉搜索树的特性。双指针法和适合解决这个问题,一个指针指向当前节点&#…...
C语言初阶牛客网刷题—— HJ34 图片整理【难度:中等】
1. 题目描述 牛客网在线OJ链接 Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。 输入描述:Lily使用的图片包括 “A…...
Golang Gin系列-7:认证和授权
在本章中,我们将探讨Gin框架中身份验证和授权的基本方面。这包括实现基本的和基于令牌的身份验证,使用基于角色的访问控制,应用中间件进行授权,以及使用HTTPS和漏洞防护保护应用程序。 实现身份认证 Basic 认证 Basic 认证是内置…...
mysql create table的用法
在MySQL中创建表的基本语法如下: CREATE TABLE table_name (column1 datatype,column2 datatype,column3 datatype,... );这里是一个例子,假设我们要创建一个名为employees的表,包含以下字段: id:一个整数类型的主键…...
蓝桥杯算法赛第25场月赛
前言 这些题对于我的难度有点大,大家感兴趣的可以来做一下,看一下,下面给大家展示一下题目 1. 桃花运走向【算法赛】 问题描述 2025 年春节,小明和小红兴致勃勃地去庙会玩耍。庙会上,一个算命先生摆摊算命…...
从介词到状语 (什么都研究一点系列)
契子 英语中介词的使用频率很高, 但在使用时本质上作为状语而成为句子成分, 没错 “本质上” 这三个字就是状语 😃 形式上是这样: 介词 -> 状语 -> 句子 常见的介词: 时间 at, 地点 on, 原因 of, 方式 in, 伴随 with, 比较 than, 条件 if 等等 下面我们开…...
CVE-2025-0411 7-zip 漏洞复现
文章目录 免责申明漏洞描述影响版本漏洞poc漏洞复现修复建议 免责申明 本文章仅供学习与交流,请勿用于非法用途,均由使用者本人负责,文章作者不为此承担任何责任 漏洞描述 此漏洞 (CVSS SCORE 7.0) 允许远程攻击者绕…...
java入门笔记基础语法篇(4)
变量 在Java中,每个变量都有一个类型(type)。在声明变量时,变量的类型位于变量 名之前。例如: int days; double salary; long earthPopulation; boolean done; 在Java中,每个声明以分号结束。变量名必须…...
学习数据结构(1)时间复杂度
1.数据结构和算法 (1)数据结构是计算机存储、组织数据的方式,指相互之间存在⼀种或多种特定关系的数据元素的集合 (2)算法就是定义良好的计算过程,取一个或一组的值为输入,并产生出一个或一组…...
存储基础 -- SCSI命令格式与使用场景
SCSI命令格式与使用场景 1. SCSI命令描述符块(CDB) 1.1 CDB基本概念 SCSI命令通过**命令描述符块(CDB, Command Descriptor Block)**表示。 CDB长度:SCSI命令根据使用场景有不同长度的CDB,常见的有6字节…...
PyTorch广告点击率预测(CTR)利用深度学习提升广告效果
目录 广告点击率预测问题数据集结构广告点击率预测模型的构建1. 数据集准备2. 构建数据加载器3. 构建深度学习模型4. 训练与评估 总结 广告点击率预测(CTR,Click-Through Rate Prediction)是在线广告领域中的重要任务,它帮助广告平…...
算法每日双题精讲 —— 二分查找(寻找旋转排序数组中的最小值,点名)
🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧💪 在算法的…...
Flutter TextPainter 计算文本高度和行数
在开发中有的时候需要去计算文本的高度或者行数,从而控制展示的内容,比如进一步设置展示控件的高度,或者根据行数进行不同的内容展示。 在原生 Android 开发时,View 的绘制流程分为 measure,layout,draw 三…...
STM32-时钟树
STM32-时钟树 时钟 时钟...
算法知识补充2
一部分:Tire树:高效地存储和查找字符串集合的数据结构acwing835 #include<iostream> #include<cstring> using namespace std; const int N100010; int son[N][26],cnt[N],idx; char str[N]; void insert(char str[]){int p0;for(int i0;st…...
微信小程序-点餐(美食屋)02开发实践
目录 概要 整体架构流程 (一)用户注册与登录 (二)菜品浏览与点餐 (三)订单管理 (四)后台管理 部分代码展示 1.index.wxml 2.list.wxml 3.checkout.wxml 4.detail.wxml 小结优点 概要…...
WPF基础 | WPF 常用控件实战:Button、TextBox 等的基础应用
WPF基础 | WPF 常用控件实战:Button、TextBox 等的基础应用 一、前言二、Button 控件基础2.1 Button 的基本定义与显示2.2 按钮样式设置2.3 按钮大小与布局 三、Button 的交互功能3.1 点击事件处理3.2 鼠标悬停与离开效果3.3 按钮禁用与启用 四、TextBox 控件基础4.…...
CentOS7使用源码安装PHP8教程整理
CentOS7使用源码安装PHP8教程整理 下载安装包解压下载的php tar源码包安装所需的一些依赖扩展库安装前的配置修改配置文件1、进入php8的安装包 配置环境变量开机自启启动服务创建软连接常见问题1、checking for icu-uc > 50.1 icu-io icu-i18n... no2、configure: error: Pa…...
强化学习 - 基于策略搜索和策略优化: 高斯策略
最近在做毕设需要用强化学习来做控制,对强化学习的知识点做一下总结。 高斯策略 高斯策略属于强化学习中的基于策略优化的分支(Policy Optimization),尤其是策略梯度方法(Policy Gradient Methods) 的一部…...
126周日复盘 (166)本周回顾
关键词:帧数测试 1、上午继续各处排查,优化帧数。 中午打包测试。 显卡锁60帧,720p窗口模式,画质3下, 低负载时50-60帧,密集战斗时35-45帧,基本达到预期, 硬件占用,显…...
08-Elasticsearch
黑马商城作为一个电商项目,商品的搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的,存在很多问题。 首先,查询效率较低。 由于数据库模糊查询不走索引,在数据量较大的时候,查询性能很…...
SQL在DBA手里-改写篇
背景 最近运营需要做月报汇总交易情况,之前一直是他们手工出的数据,他们想做成月初自动发送邮件,从而减轻他们的工作量。于是他们提供SQL我们在邮件服务器配置做定时发送任务。 表介绍(表及字段已做脱敏处理) trans…...
