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系统中,使用浏览器下载文件的具体操作流程是怎样的?

    在Linux操作系统中,使用浏览器下载文件是日常操作中的重要环节,无论是开源软件、文档资料还是多媒体资源,都离不开下载功能,Linux环境下主流浏览器如Firefox、Google Chrome、Chromium、Microsoft Edge等均内置了下载管理功能,同时也可结合第三方下载工具提升效率,本文将详细……

    2025年9月22日
    4300
  • 30秒写出高效脚本?

    cron 任务调度(最常用)原理:通过守护进程crond周期性执行任务,适用场景:需要按固定周期(分钟/小时/天等)重复执行的任务,操作步骤:编辑用户级定时任务crontab -e # 编辑当前用户的任务在打开的文件中添加规则(每行一个任务):# 格式:分 时 日 月 周 <命令&gt……

    2025年6月24日
    7300
  • Linux程序崩溃后,如何有效检测崩溃原因?

    Linux程序崩溃是开发过程中常见的问题,可能由内存访问越界、空指针解引用、资源耗尽、逻辑错误等多种原因引起,有效的崩溃检测能够帮助开发者快速定位问题根源,提高系统稳定性,本文将详细介绍Linux环境下检测程序崩溃的多种方法,涵盖日志分析、调试工具、内存检测、信号处理及性能监控等维度,并结合实际场景说明具体操作……

    2025年9月28日
    3700
  • Linux如何快速测试网络连接?

    在 Linux 系统中,网络连接是日常操作的基础,无论是服务器运维还是个人使用,快速诊断网络状态都至关重要,以下是 7 种专业方法,涵盖从基础连通性测试到深度故障排查,帮助您全面确认网络状态,方法 1:使用 ping 测试基础连通性命令:ping -c 4 8.8.8.8 # 测试与 Google DNS 的连……

    2025年6月16日
    8800
  • 如何确保SSH服务器安全配置?

    Linux系统安全防护与黑客入侵防御策略在网络安全领域,”入侵”一词常被误解,作为负责任的平台,我们必须明确指出:未经授权访问任何计算机系统(包括Linux系统)是非法行为,违反《网络安全法》和《刑法》第285条,将面临严厉法律制裁,本文旨在揭示常见攻击手法,帮助管理员加固系统安全,攻击者视角:常见Linux入……

    2025年6月24日
    6800

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信