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系统中安装bc计算器的完整详细操作步骤教程是什么?

    Linux作为广泛使用的开源操作系统,其命令行工具中包含了许多强大的实用程序,bc(Basic Calculator)就是其中之一,bc是一款支持任意精度数值计算的命令行计算器,能够处理整数和小数运算,支持变量、函数、循环等高级功能,常用于科学计算、财务统计或脚本编程中的高精度数值处理,本文将详细介绍在不同Li……

    2025年9月17日
    14800
  • Linux 如何测试网络带宽?常用方法与工具详解

    在Linux系统中,测试带宽是网络管理、性能优化和故障排查的重要环节,无论是本地网络环境、服务器间互联,还是公网带宽验证,选择合适的工具和方法能准确反映网络性能,本文将详细介绍Linux下常用的带宽测试工具、使用方法及注意事项,帮助用户全面掌握带宽测试技巧,使用iperf3进行专业网络性能测试iperf3是目前……

    2025年8月30日
    24700
  • 如何将U盘挂载到Linux系统?

    将U盘挂载到Linux系统是日常使用中常见的操作,由于Linux采用文件系统层次结构标准(FHS),存储设备需要手动挂载到指定目录才能访问,以下是详细的挂载步骤,涵盖命令行和图形界面两种方式,并包含常见问题处理,准备工作:确认U盘被系统识别插入U盘后,首先需要检查Linux系统是否已识别到该设备,打开终端,使用……

    2025年9月20日
    17400
  • 如何在Linux中轻松运行程序?

    基础执行方法直接执行当前目录的程序命令格式:./程序名示例: ./myapp # 执行当前目录下的myapp前提条件:文件必须有可执行权限(通过 chmod +x myapp 添加),系统默认不搜索当前目录(出于安全考虑),因此必须加 ,通过绝对路径执行命令格式:/完整/路径/程序名示例: /home/user……

    2025年7月30日
    17700
  • 如何安全修改Linux hosts文件?

    hosts文件的作用hosts文件(路径:/etc/hosts)是本地域名解析的配置文件,优先级高于DNS服务器,当访问域名时,系统会先查询此文件,再转向DNS,典型应用场景:将域名指向特定IP(如测试服务器)屏蔽广告域名(如 0.0.1 ads.com)本地开发环境配置(如 168.1.10 myapp.lo……

    2025年6月27日
    20900

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信