一、

Linux系统安装MySQL数据库指南

MySQL 作为最流行的开源关系型数据库,在 Web 应用、数据存储等领域广泛应用。在 Linux 系统中安装 MySQL 不仅性能高效,还能充分利用系统资源。本文将详解三种主流安装方式:包管理器安装二进制包安装Docker 安装,涵盖配置优化与安全加固,助你快速搭建生产级数据库环境。

二、安装前准备

1. 系统要求

  • 支持主流 Linux 发行版(Ubuntu/CentOS/Debian)。
  • 内存 ≥ 2GB(建议 4GB 以上),磁盘空间 ≥ 5GB。
  • 关闭防火墙或开放端口(默认 `3306`):
  • bash

    sudo ufw allow 3306/tcp Ubuntu

    sudo firewall-cmd add-port=3306/tcp permanent CentOS

    2. 卸载旧版本(可选)

    避免版本冲突:

    bash

    sudo apt remove purge mysql- Ubuntu/Debian

    sudo yum remove mysql-server CentOS

    rm -rf /etc/mysql /var/lib/mysql

    三、三种安装方式详解

    3.1 包管理器安装(推荐初学者)

    适用场景:快速部署标准版本,自动处理依赖。

    Ubuntu/Debian:

    bash

    sudo apt update

    sudo apt install mysql-server -y

    sudo systemctl start mysql

    CentOS/RHEL:

    bash

    sudo yum install -y mysql-server

    sudo systemctl start mysqld

    验证安装

    bash

    mysql version 输出示例:mysql Ver 8.0.33 for Linux

    > 深入建议

  • 优先选择发行版官方仓库版本,稳定性高。
  • 若需最新版,可添加 MySQL 官方源(如 Ubuntu 使用 `mysql-apt-config` 工具)。
  • 3.2 二进制包安装(灵活定制)

    适用场景:需特定版本、自定义路径或优化编译参数。

    步骤

    1. 下载解压:

    bash

    wget

    tar -xvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz -C /usr/local/

    mv /usr/local/mysql-8.0.33 /usr/local/mysql

    2. 创建系统用户和组:

    bash

    groupadd mysql

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

    3. 初始化数据库:

    bash

    cd /usr/local/mysql

    mkdir mysql-data

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

    记录输出的临时密码(如:`A temporary password is generated for root@localhost: 5s&gF!a0Kv_`)

    4. 启动服务:

    bash

    /bin/mysqld_safe user=mysql &

    > 深入建议

  • 二进制安装适合对性能有极致要求的场景,可配合 `jemalloc` 优化内存分配。
  • 通过 `f` 调整 `innodb_buffer_pool_size`(建议设为内存的 70%)。
  • 3.3 Docker 安装(快速隔离环境)

    适用场景:开发测试、多版本隔离。

    bash

    docker run -d name mysql

    -e MYSQL_ROOT_PASSWORD=YourStrongPassword

    -p 3306:3306

    -v /path/to/mysql-data:/var/lib/mysql

    mysql:8.0.33

    验证容器状态

    bash

    docker logs mysql 查看启动日志

    docker exec -it mysql mysql -uroot -p

    > 深入建议

  • 务必挂载数据卷(`-v`)避免数据丢失。
  • 生产环境需设置 `restart=always` 确保容器自启。
  • 四、关键配置与安全加固

    4.1 初始安全设置

    运行安全脚本:

    bash

    sudo mysql_secure_installation

    按提示操作:

  • 重置 root 密码
  • 移除匿名用户
  • 禁止 root 远程登录
  • 删除测试数据库
  • 4.2 配置文件优化(/etc/mysql/f)

    ini

    [mysqld]

    character-set-server = utf8mb4 支持 emoji 和特殊字符

    innodb_buffer_pool_size = 4G 根据内存调整

    max_connections = 200 高并发场景可提高

    log-error = /var/log/mysql/error.log 启用错误日志

    4.3 创建远程访问用户

    sql

    CREATE USER 'admin'@'%' IDENTIFIED BY 'SecurePass123!';

    GRANT ALL PRIVILEGES ON . TO 'admin'@'%' WITH GRANT OPTION;

    FLUSH PRIVILEGES;

    > 安全建议

  • 避免使用 root 远程连接,改用普通用户授权最小权限。
  • 开启 SSL 加密(参考 MySQL 官方文档配置 `ssl_cert` 和 `ssl_key`)。
  • 五、日常管理与故障排查

  • 服务控制
  • bash

    sudo systemctl restart mysql 重启

    sudo systemctl status mysql 查看状态

  • 日志分析
  • bash

    tail -f /var/log/mysql/error.log 实时监控错误

  • 备份与恢复
  • bash

    mysqldump -u root -p all-databases > full_backup.sql 备份

    mysql -u root -p < full_backup.sql 恢复

  • 连接问题排查
  • 检查端口监听:`netstat -tuln | grep 3306`
  • 验证用户权限:`SELECT host, user FROM mysql.user;`
  • 六、与建议

    安装方式选择

  • 追求简单 → 包管理器安装
  • 需定制或高版本 → 二进制包安装
  • 快速测试/开发 → Docker 安装
  • 生产环境最佳实践

    1. 定期备份并测试恢复流程。

    2. 监控慢查询日志(`slow_query_log = ON`)。

    3. 使用配置管理工具(Ansible)批量部署。

    4. 考虑主从复制或集群(如 InnoDB Cluster)保障高可用。

    通过本文,你已掌握 Linux 下 MySQL 的完整部署流程及核心优化策略。遵循安全规范并持续监控,即可构建稳定高效的数据库服务。

    > 最后提示:MySQL 8.0+ 默认使用 `caching_sha2_password` 认证,旧客户端需升级或切换为 `mysql_native_password`(参考 `ALTER USER` 命令)。