Linux下tar包如何安装MySQL?

在Linux系统中使用tar包安装MySQL是一种灵活的方式,尤其适合需要自定义安装路径或特定版本的场景,以下是详细的安装步骤及注意事项,涵盖环境准备、依赖安装、配置优化及安全设置等内容。

linux下tar包如何安装mysql

安装前准备工作

检查系统环境

确保Linux系统满足MySQL的基本要求:内核版本建议3.10+(CentOS 7+或Ubuntu 18.04+),磁盘剩余空间至少1GB(数据目录建议单独分区),内存至少2GB(推荐4GB+),可通过以下命令检查:

uname -r  # 查看内核版本
df -h     # 查看磁盘空间
free -h   # 查看内存

卸载旧版本MySQL

若系统已安装MySQL,需先彻底卸载,避免冲突:

# CentOS系统
rpm -qa | grep mysql | xargs rpm -e --nodeps
# Ubuntu系统
dpkg -l | grep mysql | xargs apt-get -y purge
# 删除残留目录
rm -rf /var/lib/mysql /usr/lib/mysql /etc/my.cnf

安装依赖库

MySQL运行需要依赖一些基础库,根据系统类型安装:

  • CentOS系统
    yum install -y libaio-devel numactl-devel openssl-devel cmake gcc-c++ make
  • Ubuntu系统
    apt update && apt install -y libaio1 numactl libncurses5 libssl-dev cmake g++ make

下载并解压MySQL tar包

下载MySQL二进制tar包

从MySQL官网(https://dev.mysql.com/downloads/mysql/)下载“Linux – Generic”版本的tar.gz包(如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz),使用wget命令下载:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz

解压并移动到安装目录

# 解压xz格式(若为tar.gz则直接用tar -zxf)
xz -d mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar
# 移动到/usr/local/并创建软链接
mv mysql-8.0.33-linux-glibc2.12-x86_64 /usr/local/mysql
ln -s /usr/local/mysql /usr/local/mysql-8.0.33

创建MySQL用户和组

为安全考虑,避免使用root用户运行MySQL:

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

初始化MySQL数据目录

创建数据目录并设置权限

mkdir -p /data/mysql  # 数据存储目录
chown -R mysql:mysql /data/mysql /usr/local/mysql
chmod -R 750 /usr/local/mysql

初始化MySQL数据库

进入MySQL安装目录的bin目录,执行初始化命令:

linux下tar包如何安装mysql

cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

初始化完成后,终端会输出临时root密码(类似root@localhost: <临时密码>),需记录此密码,后续登录时使用。

配置MySQL配置文件

创建主配置文件my.cnf

vim /etc/my.cnf
```根据实际需求调整参数):  
```ini
[mysqld]
# 基础路径配置
basedir = /usr/local/mysql
datadir = /data/mysql
socket = /tmp/mysql.sock
port = 3306
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
# 日志配置
log-error = /data/mysql/mysql-error.log
slow_query_log = 1
slow_query_log_file = /data/mysql/mysql-slow.log
long_query_time = 2
# InnoDB引擎配置
innodb_buffer_pool_size = 1G
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
# 其他安全配置
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections = 200

配置文件参数说明

参数 说明
basedir MySQL安装根目录
datadir 数据文件存储目录
socket MySQL通信socket文件路径
port 监听端口,默认3306
innodb_buffer_pool_size InnoDB缓冲池大小,建议为物理内存的50%-70%
sql_mode SQL模式,严格模式避免非法数据

配置系统服务并启动

创建systemd服务文件

vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
Restart=on-failure
[Install]
WantedBy=multi-user.target

启动MySQL服务

systemctl daemon-reload
systemctl start mysqld
systemctl enable mysqld  # 设置开机自启

检查MySQL状态

systemctl status mysqld
# 或检查进程
ps aux | grep mysqld
# 或查看端口监听
netstat -tuln | grep 3306

安全配置与初始设置

登录MySQL并修改root密码

使用临时密码登录:

mysql -u root -p

输入临时密码后,执行以下命令修改密码(密码需包含大小写字母、数字和特殊字符):

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword@123';
FLUSH PRIVILEGES;

执行安全脚本

MySQL提供了mysql_secure_installation脚本,用于优化安全设置:

/usr/local/mysql/bin/mysql_secure_installation

根据提示完成:

  • 设置root密码(若已修改可跳过)
  • 移除匿名用户
  • 禁止root远程登录(推荐,仅允许本地登录)
  • 删除测试数据库
  • 重新加载权限表

环境变量配置

为方便全局使用MySQL命令,将bin目录加入PATH

linux下tar包如何安装mysql

echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

验证配置:

echo $PATH
mysql --version

常见问题排查

  1. 启动失败:检查/data/mysql/mysql-error.log日志,常见原因包括权限错误、配置文件参数错误、依赖库缺失。
  2. 无法连接:确认防火墙是否放行3306端口(firewall-cmd --add-port=3306/tcp --permanent),或检查bind-address配置(默认为127.0.0.1,远程访问需改为0.0.0.0)。

相关问答FAQs

问题1:安装后无法启动MySQL,提示“Failed to start mysqld.service: Unit not found”怎么办?
解答:该错误通常因systemd服务文件路径错误或未正确加载导致,检查服务文件是否存放在/usr/lib/systemd/system/目录下,执行systemctl daemon-reload重新加载服务配置后再次启动,若仍失败,检查mysqld.service中的ExecStart路径是否正确指向MySQL的mysqld可执行文件。

问题2:如何设置MySQL开机自启?
解答:在配置systemd服务时,已通过WantedBy=multi-user.target设置开机自启,若未配置,可通过以下命令手动设置:

systemctl enable mysqld  # 启用开机自启
systemctl disable mysqld # 禁用开机自启

设置后,可通过systemctl is-enabled mysqld查看自启状态,确认输出为enabled即表示配置成功。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/23550.html

(0)
酷番叔酷番叔
上一篇 2025年9月15日 21:32
下一篇 2025年9月15日 21:43

相关推荐

  • 为什么这个技巧能让你事半功倍?

    在Linux中删除行首空白(空格或制表符)是文本处理的常见需求,以下是专业可靠的方法,适用于不同场景:方法1:使用 sed 命令(推荐)命令示例:sed 's/^[ \t]*//' input.txt > output.txtsed -i 's/^[ \t]*//' inp……

    2025年6月18日
    13400
  • Linux用户组权限管理全攻略?

    创建新用户使用 useradd 命令sudo useradd -m username # -m 自动创建用户家目录关键参数:-c “注释”:添加用户描述(如全名)-s /bin/bash:指定默认Shell-d /path/to/home:自定义家目录路径-e YYYY-MM-DD:设置账户过期时间设置用户密码……

    2025年7月29日
    10000
  • Linux系统如何添加旅游功能或数据管理工具?

    Linux作为开源操作系统,凭借其高度的可定制性和丰富的工具生态,在旅游规划、信息管理及行程自动化方面展现出独特优势,无论是个人旅行者整理行程细节,还是团队协作管理旅游数据,Linux环境都能提供灵活、高效的解决方案,以下从安装旅游相关工具、命令行数据处理、脚本自动化及云服务同步四个维度,详细说明如何通过Lin……

    2025年9月23日
    8400
  • 在Linux系统中,如何从头开始编写并运行C语言程序?

    在Linux系统中编写C语言程序是开发者的基础技能,整个过程涉及环境搭建、代码编写、编译运行、调试优化等环节,本文将详细讲解从零开始到完成一个完整C程序的全流程,帮助读者掌握Linux下C语言开发的核心操作,开发环境准备在Linux下编写C程序,首先需要确保系统安装了必要的工具,主要包括文本编辑器、编译器和调试……

    2025年9月21日
    10400
  • 如何挂载磁盘分区到文件夹?

    核心概念Linux系统克隆指创建完整的系统副本(包括操作系统、配置、应用及数据),用于备份、迁移或部署相同环境,根据目标需求,主要分三类方法:磁盘/分区级克隆:逐扇区复制(适合整盘备份或硬件更换)文件级克隆:复制文件与目录结构(适合同架构系统迁移)系统打包重建:生成安装包再部署(适合大规模分发)磁盘级克隆(推荐……

    2025年7月6日
    11800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信