周顺的技术博客

  • 1. 下载MySQL软件包
  • 2. 查看MySQL GLIBC安装文档
  • 3. 安装MySQL软件
  • 首页
  • 榜上有名
  • 文章归档
  • 读者排行
  • 豆瓣书影
  • 友情链接
  • DevOps (4)
  • Docker (4)
  • k8s (9)
  • linux (11)
  • Mysql (9)
  • Python (2)
  • Redis (1)
  • Shell (6)
  • 主题 (0)
  • 未分类 (0)

MySQL 数据库安装部署

  • xiaoteng
  • 2025-02-11
  • 0

1. 下载MySQL软件包

下载地址:https://dev.mysql.com/downloads/mysql/

查看GLIBC版本,如下图所示

下载对应版本的MySQL软件包

2. 查看MySQL GLIBC安装文档

官方地址:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html

3. 安装MySQL软件

安装MySQL依赖包:

yum install libaio -y

注:libaio 是 Linux 的异步 I/O (Asynchronous Input/Output) 库,全称是 Linux Asynchronous I/O Library。它的主要作用是允许程序在不阻塞 CPU 的情况下发起 I/O 操作,即 I/O 请求可以异步地进行,程序不需要等待 I/O 操作完成后再进行下一步操作,从而提高了 I/O 性能。在 MySQL 中,libaio 被用于处理磁盘的读写操作,尤其是在高负载和高并发的情况下,可以提高数据库的性能和响应速度。

对MySQL压缩包进行解压缩操作:

tar -xf mysql-8.0.40-linux-glibc2.17-x86_64.tar.xz
ll mysql-8.0.40-linux-glibc2.17-x86_64

-xf:可以解压任何tar类型的压缩包,如.tar.gz或.tar.xz格式压缩包

目录结构说明:

软件安装路径、数据路径以及端口设置:

选项值(自定义也可以采用默认形式)
安装路径/export/server/mysql
数据路径/export/server/mysql/data
端口号3306

具体安装步骤:

准备工作,提前卸载与mariadb相关软件包

rpm -qa |grep mariadb

第一步:创建一个数据库专用账号mysql(其所属组也为mysql) => -r系统账号,-s可以使用shell

useradd -r -s /sbin/nologin mysql
id mysql

参数说明:
-r :系统参数-s :shell缩写,用于指定shell解析器,需要登录系统账号,用/bin/bash;不需要登录系统的账号(系统账号),用/sbin/nologin

第二步:清空系统中的原有mariadb的配置文件(/etc/my.cnf)

rm -rf /etc/my.cnf

第三步:把mysql解压后的压缩包(GBLIC版本)移动到/根目录下,然后更名为mysql

mkdir -p /export/server
mv mysql-8.0.40-linux-glibc2.17-x86_64 /export/server/mysql

第四步:切换到mysql工作目录/export/server/mysql

cd /export/server/mysql

第五步:初始化数据库(可以实现数据库的初始化,而且会产生一个随机密码)

bin/mysqld --initialize --user=mysql --basedir=/export/server/mysql &>/tmp/mysqld.log

选项说明:
--initialize   初始化(真正开始干活)
--user=mysql   以mysql用户的身份初始化数据库,产生文件都是mysql作为拥有者
--basedir=xxx  mysql其安装目录,非常重要

运行完毕后,观察最后一行,保存root账号的密码,以备后期使用。

A temporary password is generated for root@localhost: synNE*skt4ts
经验之谈:想查看mysql软件有没有初始化成功,主要看mysql目录下有没有产生data文件夹且文件夹中至少要有一个mysql的文件夹。

延伸一下:有一个文件/tmp/mysqld.log,里面保存了数据库密码信息,如何提取出这个密码?
答:grep password /tmp/mysqld.log |awk '{print $NF}'

第六步:设置安全加密连接(SSL),数据传输会采用加密形式,适合敏感数据

bin/mysql_ssl_rsa_setup --datadir=/export/server/mysql/data

第七步:创建mysqld.service

vi /etc/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking

# MySQL 执行命令及路径
ExecStart=/export/server/mysql/bin/mysqld --daemonize --pid-file=/export/server/mysql/data/mysqld.pid
ExecStop=/export/server/mysql/bin/mysqladmin --defaults-file=/export/server/mysql/my.cnf shutdown

# Ensure MySQL has sufficient time to start up
TimeoutSec=600

# PID 文件路径
PIDFile=/export/server/mysql/data/mysqld.pid

# Enable these options to auto-restart the service if it crashes
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

服务创建完成后,重新加载 systemd 服务

systemctl daemon-reload

第八步:启动MySQL数据库

systemctl start mysqld
systemctl status mysqld
© 2026 周顺的技术博客
Theme by Wing
  • {{ item.name }}
  • {{ item.name }}