三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Linux系统MySQL安装与配置全指南

Linux系统MySQL安装与配置全指南

1. Linux系统安装MySQL全流程指南

作为一款开源关系型数据库,MySQL在Linux服务器上的部署是每个运维人员和开发者的必备技能。不同于Windows环境下的图形化安装,Linux下的MySQL安装更考验对命令行操作的熟练程度。我在过去五年里为数十家企业部署过MySQL环境,总结出一套稳定可靠的安装方案。

2. 环境准备与安装方案选择

2.1 系统兼容性检查

在开始安装前,首先需要确认你的Linux发行版和版本。通过以下命令查看系统信息:

cat /etc/os-release uname -m

主流Linux发行版如Ubuntu、CentOS、Debian等都支持MySQL安装,但包管理工具和默认仓库有所差异。对于生产环境,建议选择LTS版本的发行版以获得长期支持。

2.2 安装方式对比

MySQL在Linux上主要有三种安装方式:

  1. 系统包管理器安装(推荐新手)

    • Ubuntu/Debian:apt install mysql-server
    • CentOS/RHEL:yum install mysql-server
  2. 官方二进制包安装

    • 适合需要特定版本或自定义安装路径的场景
    • 需要手动解决依赖关系
  3. 源码编译安装

    • 适合深度定制和性能调优
    • 编译过程耗时且容易出错

提示:企业生产环境建议使用官方二进制包,既能保证版本统一又便于维护。

3. 详细安装步骤

3.1 通过APT安装(Ubuntu/Debian)

# 更新软件包索引 sudo apt update # 安装MySQL服务端 sudo apt install mysql-server -y # 安全初始化 sudo mysql_secure_installation

在安全初始化过程中,会提示设置root密码、移除匿名用户、禁止root远程登录等安全选项。生产环境建议全部选择Y。

3.2 通过YUM安装(CentOS/RHEL)

# 添加MySQL官方仓库 sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm # 安装MySQL服务 sudo yum install mysql-community-server -y # 启动服务 sudo systemctl start mysqld # 查看临时密码 sudo grep 'temporary password' /var/log/mysqld.log

CentOS安装后需要特别注意:

  1. 首次登录需要使用日志中的临时密码
  2. 必须立即修改root密码
  3. 默认启用了密码强度验证插件

4. 关键配置调优

4.1 基础配置文件

MySQL的主要配置文件通常位于:

  • /etc/mysql/my.cnf(Ubuntu/Debian)
  • /etc/my.cnf(CentOS/RHEL)

建议修改的基础配置项:

[mysqld] datadir=/var/lib/mysql socket=/var/run/mysqld/mysqld.sock # 字符集设置 character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci # 连接设置 max_connections=200 wait_timeout=300

4.2 内存参数优化

根据服务器内存大小调整以下参数(以8GB内存为例):

innodb_buffer_pool_size=4G innodb_log_file_size=256M innodb_flush_log_at_trx_commit=2

注意:修改配置后需要重启MySQL服务生效:

sudo systemctl restart mysql

5. 常见问题解决

5.1 安装失败排查

如果安装过程中出现依赖错误,可以尝试:

# Ubuntu/Debian sudo apt --fix-broken install # CentOS/RHEL sudo yum clean all sudo yum makecache

5.2 连接问题处理

若无法本地连接MySQL,检查:

  1. 服务是否运行:systemctl status mysql
  2. 防火墙设置:sudo ufw allow 3306
  3. 用户权限:SELECT Host,User FROM mysql.user;

5.3 密码重置方法

忘记root密码时可通过以下步骤重置:

# 停止MySQL服务 sudo systemctl stop mysql # 跳过权限检查启动 sudo mysqld_safe --skip-grant-tables & # 登录并修改密码 mysql -u root FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; exit; # 重启服务 sudo systemctl restart mysql

6. 安全加固建议

  1. 定期备份策略

    # 使用mysqldump进行全量备份 mysqldump -u root -p --all-databases > backup.sql
  2. 审计日志配置在my.cnf中添加:

    [mysqld] log-error=/var/log/mysql/mysql-error.log general_log=1 general_log_file=/var/log/mysql/mysql-query.log
  3. 最小权限原则

    • 为每个应用创建独立数据库用户
    • 只授予必要的权限
    CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'strongpassword'; GRANT SELECT,INSERT,UPDATE ON appdb.* TO 'appuser'@'localhost';

经过多年实践验证,这套安装流程在Ubuntu 18.04/20.04和CentOS 7/8上均能稳定运行。对于特别注重性能的场景,可以考虑使用MySQL调优工具如mysqltuner进行分析优化。

← 返回列表