第二章MySQL安装部署(上)

2.1 版本及下载

  • 版本介绍:

Alpha版:开发版,公司内部使用

Beta版:完成开发后,用户体验版

RC版:生产环境发布之前的一个小版本或称候选版

GA版:正式发布版本

  • MySQL官网地址: http://www.mysql.com/

从官方网站下载安装包

从官方网站下载源代码包

从官方网站下载二进制包

从发行版本光盘中获取安装包

  • MySQL 常见版本:

MySQL Community Server社区版本,开源免费,但不提供官方技术支持。

MySQL Enterprise Edition企业版本,需注册付费,可以试用 30 天。

MySQL Cluster集群版,开源免费。可将几个 MySQL Server 封装成一个 Server。

MySQL Cluster CGE高级集群版,需付费

  • 官方文档: https://dev.mysql.com/doc/refman/8.0/en/introduction.html
  • MySQL数据库存在多种版本,不同的版本在不同的平台上:https://dev.mysql.com/downloads/mysql/

  • 也可以选择MySQL对应版本的,找到安装教程,如MySQL8.0为例: https://dev.mysql.com/doc/r efman/8.0/en/installing.html

2.2 生产环境中使用通用二进制包安装

2.2.1 作用

  • 二进制包:源码包经过成功编译之后产生的包
  • 优点:由于二进制包在发布之前就已经完成了编译的工作,因此用户安装软件的速度较快
  • 注意:在生产环境中通用二进制包安装方法较为常用

2.2.2 软件包下载

根据上图系统参数里的glibc版本和cpu架构选择

  • Compressed TAR Archive:生产环境首选包(最小完整版)
  1. 格式: .tar.xz 高压缩,体积小、传输快
  2. 内容:仅运行 MySQL 必需文件(mysqld、客户端工具、库、配置模板、文档)
  3. 剔除:调试程序、源码、完整测试套件、多余开发文件
  4. 适用:自建服务器、容器、生产业务、运维标准二进制部署
  • Compressed TAR Archive, Test Suite:仅测试人员使用,生产完全不用下载
  1. 内容:MySQL 官方自动化压力 / 功能测试用例、测试脚本、单元测试工具 不含完整数据库服 务端程序,单独下载无法启动 MySQL 服务
  2. 适用:内核开发、DBA 做全量兼容性压测,普通业务部署直接忽略
  • TAR:无压缩原始大包,不推荐
  1. 格式:.tar 无压缩,体积巨大,下载耗时、占用磁盘多
  2. 内容:和第一个 xz 包内容完全一致,只是没有高压缩,包含完整 stripped 运行程序
  3. 缺点:传输慢、备份占用空间大,无任何额外功能增益
  4. 适用:内网离线环境无法解压 xz 格式的极端场景

2.2.3 安装

2.2.3.1 解压

  • 将软件包上传到根当前用户家目录
  • 解压缩
[root@server ~]# tar -xvf mysql-8.0.37-linux-glibc2.17-x86_64.tar.xz -C /usr/local
  • 使用前的准备
# 移动到默认安装目录,也可自行修改 [root@server ~]# cd /usr/local [root@server local]# ls bin etc games include lib lib64 libexec mysql-8.0.45-linux-glibc2.28 x86_64 sbin share src [root@server local]# mv mysql-8.0.45-linux-glibc2.28-x86_64 mysql [root@server local]# ls bin etc games include lib lib64 libexec mysql sbin share src [root@server local]# cd mysql [root@server mysql]# useradd -r -s /sbin/nologin mysql # 创建名为 mysql 的系统用 户,系统会自动创建与用户同名的 mysql 组,并设置其登录 shell 为 /sbin/nologin,以限制该用户的 登录权限 [root@server mysql]# mkdir data # 创建用于存放 MySQL 数据文件目录 # 设置 mysql 目录的账户及工作组,生产环境中不要使用 root [root@server mysql]# chown -R mysql:mysql /usr/local/mysql

2.2.3.2 初始化软件

[root@server mysql]# cd /usr/local/mysql/bin [root@server bin]# ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # 注意:执行成功后需要复制密码 # --basedir:基础目录(程序安装目录) # --datadir:数据目录 [root@server bin]# ./mysqld_safe --user=mysql # 以 mysql 用户身份启动 MySQL 服务 器,mysqld_safe 是一个用于启动和监控 MySQL 服务器的脚本 # 注意:此时上述命令执行完毕处于后台运行状态,需要另行启动一个终端 [root@server ~]# ps -ef | grep mysql # 查看进程运行状态 [root@server ~]# cd /usr/local/mysql/bin [root@server bin]# ./mysql -uroot -p Enter password: # 粘贴之前的初始密码 mysql> alter user 'root'@'localhost' identified by '123456'; #修改密码 mysql> flush privileges; # 刷新 mysql>exit # 再次测试是否可用新密码登录 [root@server bin]# ./mysql -uroot -p Enter password: # 新设置的密码 mysql>exit [root@server ~]# ps -ef | grep mysql [root@server ~]# kill pid号 # 在当前终端关闭运行的mysql

2.2.3.3 配置文件

# 回到之前的终端,敲一个回车,显示进程已杀死,获取到终端提示符 [root@server bin]# vim /etc/my.cnf # 新建配置文件,输入以下内容: [client] port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 basedir = /usr/local/mysql datadir = /usr/local/mysql/data tmpdir = /tmp socket = /tmp/mysql.sock character-set-server = utf8mb4 collation-server = utf8mb4_general_ci default-storage-engine=INNODB log_error = error.log # 修改密码 # 注意:以下是上述配置文件的解释 ###############################客户端设置##################################### # [client]:客户端设置 # port:默认端口号 # socket:启动套接字 ###############################服务端设置##################################### # [mysqld] # port:端口号 3306 # basedir:mysql安装根目录 # datadir:mysql数据文件所在位置 没有改目录则创建 # tmpdir:临时目录 比如load data infile会用到 # socket:设置socke文件所在目录 # character-set-server:utf8mb4数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符 占用4个字节) # collation-server:数据库字符集对应一些排序等规则,注意要和character-set-server对应 # default-storage-engine:数据库引擎 ###############################日志设置##################################### # log_error = error.log:数据库错误日志文件

2.2.3.4 配置启动脚本

[root@server mysql]# vim /usr/lib/systemd/system/mysqld.service [Unit] Description=MySQL Server After=network.target remote-fs.target nss-lookup.target [Service] Type=notify User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE=65535 LimitNPROC=65535 Restart=on-failure RestartPreventExitStatus=1 TimeoutSec=0 [Install] WantedBy=multi-user.target # 注意:以下是上述配置文件的解释 ###############################服务描述##################################### # [Unit]:服务的描述、启动依赖板块 # Description:服务的描述 # After:定义启动顺序,等后面这几个目标全部启动完成之后,才启动 MySQL ###############################服务设置##################################### # [Service]:服务核心区块 # Type:类型 # User:用户 # Group:用户组 # ExecStart:服务启动执行的程序,指定主程序,指定程序读取的配置文件 # LimitNOFILE:最大句柄数(进程同一时间能打开的文件 + 网络连接的总数上限) # LimitNPROC:创建的最大进程数 # Restart=on-failure:只有进程异常失败退出(非0退出码)的时候,systemd自动重启MySQL # RestartPreventExitStatus=1:如果程序退出码是1,就算 on-failure,也不自动重启 # TimeoutSec=0:服务启动超时时间。0 代表不设置超时,无限等待 ###############################启动设置##################################### # [Install] # WantedBy=multi-user.target:Linux 多用户字符模式(没有图形桌面,黑窗口命令行模式,服务器 默认都是这个模式) [root@master mysql]# systemctl daemon-reload # 配置完成即可用 systemctl 管理 mysql [root@master mysql]# systemctl enable --now mysqld.service [root@master mysql]# systemctl status mysqld.service [root@master mysql]# ps -ef | grep mysql # 查看是否启动

2.2.3.5 设置 mysql 命令

[root@server mysql]# echo $PATH /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin [root@server mysql]# vim /etc/profile # 在该文件第二行添加下述内容 export PATH=$PATH:/usr/local/mysql/bin [root@server mysql]# source /etc/profile [root@server mysql]# echo $PATH /root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr /local/mysql/bin

2.2.3.6 测试

[root@server ~]# mysql -uroot -p Enter password: mysql> exit

2.3 yum仓库安装

2.3.1 官方yum仓库

添加 yum 源(RHEL)

  • 访问官方:https://www.mysql.com/
  • 查看官方教程:https://dev.mysql.com/doc/refman/8.0/en/linux-installation-yum-repo.html
  • 选择downloads页面的:MySQL Community (GPL) Downloads »

  • 添加 yum 源
[root@server ~]# wget https://dev.mysql.com/get/mysql84-community-release-el10 3.noarch.rpm [root@server ~]# rpm -ivh mysql84-community-release-el10-3.noarch.rpm [root@server ~]# dnf list | grep mysql
  • 安装 mysql-community-server
[root@server ~]# yum install mysql-community-server.x86_64 -y [root@server ~]# systemctl start mysqld # 启动,注意有d [root@server ~]# systemctl status mysqld [root@server ~]# cat /var/log/mysqld.log # 如果文件太长,可过滤 'temporary password' 此字段 2023-07-09T02:38:36.368700Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: qQ6OmpD?8_.f # 查看初始登录密码 [root@server ~]# mysql -u root -p Enter password: # 赋值初始登录密码 mysql> flush privileges; mysql> exit # 以root身份登录 mysql> alter user 'root'@'localhost' identified by '密码'; [root@server ~]# dnf remove mysql-community-server.x86_64 -y [root@server ~]# rpm -qa | grep mysql [root@server ~]# rm -rf /var/lib/mysql/ /var/log/mysqld.log

2.3.2 本地yum仓库

# 安装 mysql [root@server ~]# dnf install mysql-server -y [root@server ~]# systemctl start mysqld.service # 查看日志,发现mysql是空密码 [root@server ~]# cat /var/log/mysql/mysqld.log [root@server ~]# mysql -uroot -p # 空密码登录 Enter password: mysql> alter user 'root'@'localhost' identified by '123456'; mysql> flush privileges; mysql> exit # 删除 mysql [root@server ~]# dnf remove mysql-server -y [root@server ~]# rm -rf /var/log/mysql /var/log/mysqld.log.00.json

宝子们剩下的下次更完,有需要急用的可以私聊问我,免费的,嘻嘻,记得关注点赞呦

相关新闻

Autosar+Simulink建模实战:破解模型生成与ECU部署卡点

Autosar+Simulink建模实战:破解模型生成与ECU部署卡点

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 2:29:55 阅读更多 →
ISBN书号查询API——通过 ISBN 查询图书信息:从扫码识书到自建图书系统的完整指南

ISBN书号查询API——通过 ISBN 查询图书信息:从扫码识书到自建图书系统的完整指南

一、图书的"身份证"——ISBN每本正式出版的图书,封底都印有一串以 ISBN 开头的编码。ISBN(International Standard Book Number,国际标准书号),是国际标准化组织(ISO)为每本公开出版的…

2026/10/21 2:29:55 阅读更多 →
从Clawdbot到Moltbot:个人AI代理迁移实战与架构解析

从Clawdbot到Moltbot:个人AI代理迁移实战与架构解析

聊一个最近绕不开的话题:2026年的个人AI代理。如果你一直盯着 Clawdbot 和 Moltbot 这两个代号的演进,大概率会和我有同样的判断——个人 AI 代理的所谓“iPhone 时刻”,这次是真的来了。作为一个从 Clawdbot 一路折腾到 Moltbot 的开发者&am…

2026/10/21 2:29:55 阅读更多 →

最新新闻

无人机航拍小目标检测数据集构建:从场景设计到智慧交通与应急救援落地

无人机航拍小目标检测数据集构建:从场景设计到智慧交通与应急救援落地

我做无人机视觉落地也有几年了,今年被问得最多的问题不是“模型怎么调”,而是“模型怎么到了现场就不灵”。很多朋友拿着公开的航拍检测模型,在桌面演示上mAP能到七八十个点,可一部署到国内的十字路口、老小区、城乡结合部&#x…

2026/10/21 3:07:07 阅读更多 →
Seay源代码审计系统实战:PHP漏洞扫描与规则扩展

Seay源代码审计系统实战:PHP漏洞扫描与规则扩展

简介:Seay源代码审计系统是一款基于C#开发的PHP代码安全审计工具,主要运行于Windows平台,面向网络安全初学者、CTF/AWD参赛选手及渗透测试人员,用于快速定位PHP项目中的安全隐患。它能够识别SQL注入、代码执行、命令执行、文件包含…

2026/10/21 3:07:07 阅读更多 →
Seay源代码审计系统实战:PHP静态代码审计与AWD快速排查指南

Seay源代码审计系统实战:PHP静态代码审计与AWD快速排查指南

简介:Seay源代码审计系统是一款基于C#开发的PHP代码安全审计工具,主要运行于Windows平台,面向网络安全初学者、CTF/AWD参赛选手及渗透测试人员,用于快速定位PHP项目中的安全隐患。它可检测SQL注入、代码执行、命令执行、文件包含、…

2026/10/21 3:07:07 阅读更多 →
程序员 AI 出图避坑:椒图 AI 与 Nano Banana Pro 实战指南

程序员 AI 出图避坑:椒图 AI 与 Nano Banana Pro 实战指南

如果你也是那种被拉去“顺带做个图”就浑身难受的程序员,这篇文章应该能帮你省下不少救心丸。我自己的本职是写后端,大部分时间对着终端和接口文档,但只要涉及方案评审、产品汇报、开源项目宣传,就逃不开一个尴尬任务:…

2026/10/21 3:07:07 阅读更多 →
从能生成到有质感:Seedance 2.0镜头语言全解析

从能生成到有质感:Seedance 2.0镜头语言全解析

先说一个我自己的真实感受:第一次用 Seedance 2.0 生成视频时,我很兴奋,因为画面真的“能动了”。但等我把五六段素材拼到一起,越看越不对劲——画面在动,情绪却没动;每个镜头单拎出来都不差,连…

2026/10/21 3:07:07 阅读更多 →
RAG效果差?问题多半出在知识库管理:清洗、分块与治理实战

RAG效果差?问题多半出在知识库管理:清洗、分块与治理实战

先说明一点:这个标题我深有同感。做了大半年RAG相关的东西,见过不少团队把精力全压在召回链路调参上,结果效果上不去,最后排查一圈,问题全出在知识库本身——脏数据、错分块、无版本、无评测,源头一乱&…

2026/10/21 3:06:07 阅读更多 →

日新闻

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

统一内存+量化:锐龙AI Max PRO 400如何本地跑320B大模型

这段时间硬件圈和AI圈都在传一个事:AMD锐龙AI Max PRO 400系列把最高192GB统一内存搬进了PC形态的产品里,按宣传口径,本地跑320B参数的大家伙不再是纸面概念。我第一反应倒不是“内存真大”,而是这话背后的含金量——它把过去只能…

2026/10/21 0:00:11 阅读更多 →
AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

AI助手深度使用体验:对话质量、长文本处理与指令遵循如何留住用户

1. 从“封号重开”这个行为说起:用户到底在追求什么“封号重开”这四个字,放在任何产品语境里都带着一股决绝的味道。一个账号从零开始积累使用记录、调教偏好、沉淀工作流,背后是大量的时间和精力成本。正常情况下,没有人愿意主动…

2026/10/21 0:00:11 阅读更多 →
ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

ROS中YOLOv3工程落地:通信同步、坐标变换与性能调优

1. 为什么在ROS里硬刚YOLOv3不是“炫技”,而是工程落地的必经之路我第一次在某高校机器人实验室看到那台搭载Jetson TX2的移动底盘原地打转、反复识别错垃圾桶时,就意识到:单纯跑通darknet_ros demo和真正让YOLOv3在ROS里“干活”&#xff0c…

2026/10/21 0:00:11 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →