MySQL安装包下载及Linux系统安装指南,如何在Linux系统上轻松下载并安装MySQL?,如何在Linux系统上快速完成MySQL的下载与安装?

昨天 7857阅读
MySQL是一款流行的开源关系型数据库管理系统,广泛应用于各类Web应用和数据存储场景,在Linux系统上安装MySQL非常简单,首先需要从MySQL官方网站或系统软件仓库下载适合的安装包,对于基于Debian的系统(如Ubuntu),可以使用apt-get install mysql-server命令进行安装;而基于RPM的系统(如CentOS)则可通过yum install mysql-serverdnf install mysql-server完成安装,安装过程中会提示设置root用户密码,建议设置强密码以确保安全,安装完成后,使用systemctl start mysqld启动服务,并通过mysql_secure_installation进行基本安全配置,还可以通过mysql -u root -p登录数据库进行进一步操作,整个过程简单快捷,适合各类Linux用户快速部署MySQL环境。

MySQL简介与版本选择策略

MySQL作为全球领先的开源关系型数据库管理系统,凭借其卓越的性能、出色的稳定性和易用性,已成为Web应用和企业级解决方案的首选数据库,根据DB-Engines排名,MySQL长期占据关系型数据库市场占有率第一的位置,在Linux环境下部署MySQL是开发者和运维人员必备的核心技能。

MySQL安装包下载及Linux系统安装指南,如何在Linux系统上轻松下载并安装MySQL?,如何在Linux系统上快速完成MySQL的下载与安装? 第1张

版本选择建议

  • MySQL Community Server:官方免费开源版本,采用GPL协议,适合个人开发者和小型企业
  • MySQL Enterprise Edition:商业授权版本,提供高级功能和企业级技术支持服务
  • MariaDB:由MySQL原创团队开发的兼容分支,在存储引擎优化和查询性能方面有显著提升
  • Percona Server:专注于性能优化的MySQL分支,内置XtraDB引擎,适合高负载场景

当前MySQL 8.0系列作为长期支持版本(LTS),相比5.7版本在以下方面有显著提升:

  • 事务性能提升2倍,得益于优化的InnoDB引擎
  • 增强的JSON功能,支持JSON路径表达式
  • 完善的窗口函数支持,简化复杂分析查询
  • 更严格的安全机制,默认使用caching_sha2_password认证插件
  • 原子DDL操作,确保数据字典更新的完整性
  • 资源组管理,可以分配线程到特定CPU核心

MySQL安装包获取途径

官方下载渠道

推荐通过MySQL官方网站获取最新稳定版本:

https://dev.mysql.com/downloads/mysql/

在下载页面需注意以下关键选项:

  1. 操作系统类型选择"Linux - Generic"(通用Linux版本)或特定发行版
  2. 版本号选择最新的GA(General Availability)稳定版本
  3. 安装包格式推荐.tar.gz压缩包(灵活性高)或.rpm/.deb(特定发行版专用)

命令行直接下载

对于服务器环境,推荐使用wget或curl命令直接下载:

# 下载MySQL 8.0最新稳定版
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz
# 使用curl下载
curl -OL https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz

国内镜像加速下载

为提升国内用户的下载速度,可使用以下优质镜像源:

# 清华大学开源镜像站
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz
# 华为云镜像源
wget https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz
# 阿里云镜像源
wget https://mirrors.aliyun.com/mysql/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz
# 腾讯云镜像源
wget https://mirrors.cloud.tencent.com/mysql/downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz

Linux系统手动安装MySQL全流程

系统环境准备

安装前需确保系统满足以下最低要求:

  • 硬件要求

    • 至少2GB可用内存(生产环境建议8GB以上)
    • 5GB以上磁盘空间(实际需求取决于数据量)
    • 64位x86或ARM架构处理器
  • 软件要求

    • Linux内核3.10或更高版本
    • glibc 2.12或更高版本
    • root权限账户

安装必要依赖包:

# CentOS/RHEL系统
yum install -y libaio numactl openssl-devel ncurses-devel wget
# Ubuntu/Debian系统
apt-get update
apt-get install -y libaio1 libnuma1 libssl-dev pkg-config libncurses5 wget

安装包解压与部署

# 解压到/usr/local目录(推荐位置)
tar -zxvf mysql-8.0.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local
# 创建管理软链接
cd /usr/local
ln -s mysql-8.0.33-linux-glibc2.12-x86_64 mysql
# 添加环境变量
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

创建专用系统账户

# 创建mysql用户组和用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
# 设置目录权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 750 /usr/local/mysql

数据库初始化

cd /usr/local/mysql
# 创建数据目录
mkdir -p /var/lib/mysql
chown mysql:mysql /var/lib/mysql
# 初始化数据库(重要:记录输出的临时root密码)
bin/mysqld --initialize --user=mysql \
--basedir=/usr/local/mysql \
--datadir=/var/lib/mysql
# 设置SSL/RSA文件
bin/mysql_ssl_rsa_setup --datadir=/var/lib/mysql

初始化成功后会显示类似信息:

[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: JqkfT3j&kla0

配置系统服务

创建systemd服务配置文件:

cat > /etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/8.0/en/using-systemd.html
After=network.target
After=syslog.target
[Service]
User=mysql
Group=mysql
Type=notify
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=65535
Restart=on-failure
RestartPreventExitStatus=1
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

创建基本配置文件/etc/my.cnf

[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/lib/mysql/mysql.sock

启动MySQL服务

# 创建必要的目录和权限
mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld
# 重载systemd配置
systemctl daemon-reload
# 启动并设置开机自启
systemctl start mysqld
systemctl enable mysqld
# 检查服务状态
systemctl status mysqld

安全加固与配置

# 运行安全配置向导
mysql_secure_installation

安全配置向导会引导您完成以下关键安全设置:

  1. 修改root密码(使用强密码,包含大小写字母、数字和特殊字符)
  2. 移除匿名用户(提高安全性)
  3. 禁用root账户远程登录(仅允许本地连接)
  4. 删除测试数据库(减少潜在攻击面)
  5. 立即重载权限表(使更改生效)

宝塔面板一键安装方案

对于运维新手或需要快速部署的场景,宝塔面板提供了极简的MySQL安装方案,宝塔是一款流行的Linux服务器管理面板,支持可视化操作。

宝塔面板安装

# CentOS/RedHat安装命令
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
# Ubuntu/Debian安装命令
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
# 国内服务器加速安装
curl -sSO http://download.bt.cn/install/install_panel.sh && bash install_panel.sh

安装完成后会显示面板访问地址、用户名和随机生成的密码。

MySQL安装步骤

  1. 通过浏览器访问宝塔面板(默认端口8888)
  2. 首次登录后,根据向导安装推荐环境(包含MySQL)
  3. 或进入"软件商店" → 搜索"MySQL" → 选择版本(推荐8.0)
  4. 点击"安装"按钮并等待完成(约5-10分钟)
  5. 安装完成后,在"数据库"页面查看自动生成的root密码

宝塔面板MySQL管理功能

  • 实时监控:直观展示CPU、内存、连接数、查询缓存等关键指标
  • 性能调整:提供my.cnf可视化编辑器,支持常见优化预设
  • 备份管理:设置定时自动备份,支持本地/远程存储
  • 权限管理:图形化界面创建用户、分配数据库权限
  • 日志分析:集成错误日志、慢查询日志查看器
  • phpMyAdmin:内置数据库管理工具,支持SQL操作和数据导出导入

MySQL性能优化配置

核心参数调优

编辑配置文件/etc/my.cnf,根据服务器配置调整以下参数:

MySQL安装包下载及Linux系统安装指南,如何在Linux系统上轻松下载并安装MySQL?,如何在Linux系统上快速完成MySQL的下载与安装? 第2张

[mysqld]
# 基础路径配置
basedir=/usr/local/mysql
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# 内存配置(8GB内存服务器示例)
innodb_buffer_pool_size = 4G       # 建议为物理内存的50-70%
innodb_buffer_pool_instances = 4   # 提高并发访问性能
innodb_log_file_size = 1G          # 大事务处理更高效
innodb_log_buffer_size = 64M
key_buffer_size = 256M
query_cache_size = 0               # MySQL 8.0已移除查询缓存
# 连接配置
max_connections = 500             # 根据应用需求调整
thread_cache_size = 100            # 减少线程创建开销
table_open_cache = 4000            # 提高表访问性能
# 日志配置
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 1                # 记录执行超过1秒的查询
log_queries_not_using_indexes = 1  # 记录未使用索引的查询
# InnoDB高级配置
innodb_flush_log_at_trx_commit = 2 # 平衡性能与持久性(1最安全但最慢)
innodb_file_per_table = 1          # 每个表单独文件
innodb_flush_method = O_DIRECT     # 减少双缓冲开销
innodb_read_io_threads = 8         # 读IO线程数
innodb_write_io_threads = 8        # 写IO线程数
innodb_io_capacity = 2000          # SSD硬盘可提高此值
innodb_io_capacity_max = 4000

配置生效方法

# 重启MySQL服务使配置生效
systemctl restart mysqld
# 验证参数是否生效
mysql -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"

MySQL日常管理命令

服务管理

# 查看服务状态
systemctl status mysqld
# 启动/停止/重启服务
systemctl start mysqld
systemctl stop mysqld
systemctl restart mysqld
# 查看错误日志
tail -f /var/log/mysqld.log
# 查看MySQL进程
ps aux | grep mysql

数据库操作

-- 创建支持中文的数据库
CREATE DATABASE `app_db` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 创建应用用户并授权
CREATE USER 'app_user'@'%' IDENTIFIED WITH mysql_native_password BY 'SecurePass123!';
GRANT ALL PRIVILEGES ON `app_db`.* TO 'app_user'@'%';
FLUSH PRIVILEGES;
-- 查看用户权限
SHOW GRANTS FOR 'app_user'@'%';
-- 修改用户密码
ALTER USER 'app_user'@'%' IDENTIFIED BY 'NewSecurePass456!';

备份与恢复

# 完整备份所有数据库(包含存储过程和触发器)
mysqldump -u root -p --all-databases --routines --triggers --single-transaction > full_backup_$(date +%F).sql
# 单库备份(推荐使用事务保证一致性)
mysqldump -u root -p --single-transaction --routines --triggers app_db > app_db_backup_$(date +%F).sql
# 仅备份表结构
mysqldump -u root -p --no-data app_db > app_db_schema.sql
# 恢复完整备份
mysql -u root -p < full_backup_2023-06-01.sql
# 恢复单个数据库
mysql -u root -p app_db < app_db_backup_2023-06-01.sql

常见问题解决方案

忘记root密码

# 1. 停止MySQL服务
systemctl stop mysqld
# 2. 启动跳过权限检查模式
mysqld_safe --skip-grant-tables --skip-networking &
# 3. 无密码连接MySQL
mysql -u root
-- 4. 刷新权限并修改密码
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewRootPass789!';
exit;
# 5. 重启MySQL服务
pkill mysqld
systemctl start mysqld

连接数过多问题

-- 查看当前连接数和使用情况
SHOW STATUS LIKE 'Threads_connected';
SHOW PROCESSLIST;
-- 终止特定连接
KILL 1234;  -- 1234为process_id
-- 临时增加最大连接数
SET GLOBAL max_connections = 1000;
-- 查看连接错误统计
SHOW STATUS LIKE 'Aborted_connects';

性能瓶颈排查

-- 查看InnoDB引擎状态
SHOW ENGINE INNODB STATUS;
-- 分析慢查询
SELECT * FROM mysql.slow_log ORDER BY start_time DESC LIMIT 10;
-- 查看未使用索引的查询
SELECT * FROM sys.schema_unused_indexes;
-- 查看表状态和碎片情况
ANALYZE TABLE important_table;
SHOW TABLE STATUS LIKE 'important_table';
-- 查看缓存命中率
SHOW STATUS LIKE 'Qcache%';
SHOW STATUS LIKE 'Innodb_buffer_pool_read%';

安全最佳实践

  1. 定期更新:订阅MySQL安全公告,及时应用安全补丁

    # 检查MySQL更新
    mysql_upgrade -u root -p
  2. 最小权限原则

    • 为每个应用创建独立账户
    • 只授予必要权限(避免使用GRANT ALL)
      CREATE USER 'webapp'@'192.168.1.%' IDENTIFIED BY 'AppPass123';
      GRANT SELECT, INSERT, UPDATE ON app_db.* TO 'webapp'@'192.168.1.%';
  3. 网络隔离

    # 配置防火墙仅允许应用服务器访问
    iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
    iptables -A INPUT -p tcp --dport 3306 -j DROP
  4. 加密连接

    -- 要求特定用户使用SSL连接
    ALTER USER 'remote_user'@'%' REQUIRE SSL;
    -- 查看SSL连接状态
    SHOW STATUS LIKE 'Ssl_cipher';
  5. 审计日志

    # 在my.cnf中添加
    [mysqld]
    plugin-load-add = audit_log.so
    audit_log_format = JSON
    audit_log_policy = ALL
  6. 备份策略

    • 每日全量备份 + 每小时增量备份
    • 本地备份 + 异地备份
    • 定期验证备份可恢复性

总结与建议

本文详细介绍了Linux系统下MySQL的两种主流安装方式及其适用场景:

手动安装方式

适用场景

  • 需要高度定制化配置的生产环境
  • 特殊安全要求的政府或金融系统
  • 学习MySQL内部机制的技术人员

优势

  • 完全掌控安装过程和每个配置参数
  • 可以优化到特定硬件和工作负载
  • 避免面板带来的额外资源消耗

挑战

  • 需要较高的Linux和MySQL专业知识
  • 故障排查难度相对较大
  • 后续升级维护复杂度较高

宝塔面板安装方式

适用场景

  • 中小型企业和个人开发者
  • 快速原型开发和测试环境
  • 运维资源有限的团队

优势

  • 极简的一键安装过程
  • 直观的图形化管理和监控
  • 内置常用工具和优化预设
  • 降低运维门槛和学习曲线

局限性

  • 对底层配置的控制有限
  • 面板本身需要额外资源
  • 可能存在安全顾虑(需妥善保护面板访问)

生产环境部署建议

  1. 版本选择

    • 优先选择MySQL 8.0 LTS版本
    • 或考虑Percona Server的企业级特性
  2. 高可用架构

    # 配置主从复制示例
    # 在主服务器上:
    CREATE USER 'repl'@'%' IDENTIFIED WITH mysql_native_password BY '

    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]