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

日记详情

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

Linux下MySQL 8.0安装与配置全指南

Linux下MySQL 8.0安装与配置全指南

1. Linux环境下MySQL安装部署概述

在Linux服务器环境中部署MySQL数据库是后端开发者和运维工程师的必备技能。作为最流行的开源关系型数据库之一,MySQL在Web应用、企业系统和云计算环境中占据重要地位。不同于Windows下的图形化安装,Linux环境下的MySQL部署需要掌握命令行操作和系统配置能力。

我经历过数十次不同Linux发行版上的MySQL部署,从早期的5.5版本到现在的8.0版本,积累了大量实战经验。本文将基于CentOS 7/8和Ubuntu 20.04 LTS这两个最常用的Linux发行版,详细介绍MySQL 8.0的安装、配置和基础优化方法。无论你是需要在本地开发环境搭建测试数据库,还是为生产服务器部署高可用MySQL服务,这篇指南都能提供完整的技术参考。

2. 安装前的系统准备

2.1 系统环境检查

在开始安装前,需要确认Linux系统的基本信息。执行以下命令检查系统版本和架构:

# 查看系统版本 cat /etc/*release # 查看CPU架构 uname -m

对于MySQL 8.0,官方建议的最低系统要求是:

  • 2GHz以上CPU
  • 2GB以上内存
  • 至少5GB可用磁盘空间
  • Linux内核3.10或更高版本

提示:生产环境建议使用专用服务器,避免在资源紧张的虚拟机或容器中运行MySQL数据库服务。

2.2 卸载旧版本MySQL

如果系统中已存在旧版MySQL,建议先彻底卸载以避免冲突:

# 检查已安装的MySQL相关包 rpm -qa | grep mysql # 或对于Debian系 dpkg -l | grep mysql # 停止MySQL服务 systemctl stop mysqld # 卸载MySQL包(CentOS/RHEL) yum remove mysql-* # 卸载MySQL包(Ubuntu/Debian) apt-get purge mysql-* # 删除残留文件和目录 rm -rf /var/lib/mysql rm -rf /etc/mysql

2.3 安装依赖包

安装MySQL前需要确保系统具备必要的依赖环境:

# CentOS/RHEL yum install -y libaio numactl openssl # Ubuntu/Debian apt-get install -y libaio1 libnuma1 openssl

3. MySQL安装方法详解

3.1 通过官方仓库安装(推荐)

MySQL官方为各Linux发行版维护了专门的软件仓库,这是最推荐的安装方式:

3.1.1 添加MySQL官方仓库
# CentOS/RHEL 7 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm # CentOS/RHEL 8 rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-4.noarch.rpm # Ubuntu/Debian wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb dpkg -i mysql-apt-config_0.8.22-1_all.deb apt-get update
3.1.2 安装MySQL服务器
# CentOS/RHEL yum install -y mysql-community-server # Ubuntu/Debian apt-get install -y mysql-server
3.1.3 启动MySQL服务
systemctl start mysqld systemctl enable mysqld

3.2 通过二进制包安装

对于需要自定义安装路径或配置的场景,可以使用官方提供的二进制包:

# 下载二进制包 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz # 解压并安装 tar -xvf mysql-8.0.33-linux-glibc2.17-x86_64-minimal.tar.xz mv mysql-8.0.33-linux-glibc2.17-x86_64 /usr/local/mysql cd /usr/local/mysql mkdir data chown -R mysql:mysql .

3.3 通过Docker安装

对于容器化环境,可以使用官方MySQL Docker镜像:

docker run --name mysql8 \ -e MYSQL_ROOT_PASSWORD=yourpassword \ -p 3306:3306 \ -v /data/mysql:/var/lib/mysql \ -d mysql:8.0 \ --character-set-server=utf8mb4 \ --collation-server=utf8mb4_unicode_ci

4. 初始配置与安全设置

4.1 获取临时密码

MySQL 8.0安装完成后会生成一个临时root密码:

grep 'temporary password' /var/log/mysqld.log

4.2 运行安全配置向导

执行以下命令进行安全配置:

mysql_secure_installation

根据提示完成以下设置:

  1. 修改root密码
  2. 移除匿名用户
  3. 禁止root远程登录
  4. 移除测试数据库
  5. 重新加载权限表

4.3 创建管理用户

建议创建专用管理账号而非直接使用root:

CREATE USER 'admin'@'%' IDENTIFIED BY 'Complex@Password123'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;

5. 配置文件优化

MySQL的主要配置文件位于/etc/my.cnf或/etc/mysql/my.cnf。以下是生产环境推荐的基础配置:

[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # 基础优化 innodb_buffer_pool_size = 4G # 建议为系统内存的50-70% innodb_log_file_size = 512M max_connections = 200 thread_cache_size = 10 table_open_cache = 4000 # 字符集设置 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci # 日志配置 log_error = /var/log/mysql/error.log slow_query_log = 1 slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time = 2 [client] default-character-set = utf8mb4

修改配置后需要重启MySQL服务:

systemctl restart mysqld

6. 防火墙与网络配置

6.1 配置防火墙

# CentOS/RHEL firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload # Ubuntu ufw allow 3306/tcp

6.2 修改绑定地址

如需远程访问,需修改MySQL绑定地址:

UPDATE mysql.user SET host='%' WHERE user='admin'; FLUSH PRIVILEGES;

然后在配置文件中添加:

[mysqld] bind-address = 0.0.0.0

7. 常见问题排查

7.1 无法启动服务

检查错误日志:

tail -n 50 /var/log/mysqld.log

常见原因包括:

  • 配置文件语法错误
  • 数据目录权限问题
  • 端口冲突

7.2 连接数不足

临时增加连接数:

SET GLOBAL max_connections = 300;

永久修改需在配置文件中调整max_connections参数。

7.3 性能问题排查

使用以下命令监控性能:

SHOW STATUS LIKE 'Threads_connected'; SHOW PROCESSLIST; SHOW ENGINE INNODB STATUS;

8. 生产环境建议

  1. 定期备份策略:
# 全量备份 mysqldump -u admin -p --all-databases > full_backup.sql
  1. 监控设置:
  • 配置Prometheus + Grafana监控
  • 设置关键指标告警
  1. 高可用方案:
  • 主从复制
  • MySQL Group Replication
  • MySQL InnoDB Cluster
  1. 安全建议:
  • 定期更新MySQL版本
  • 限制访问IP
  • 启用SSL连接

9. 版本升级指南

从MySQL 5.7升级到8.0的步骤:

  1. 备份所有数据库
  2. 检查兼容性问题:
mysqlcheck -u root -p --all-databases --check-upgrade
  1. 停止MySQL服务
  2. 安装新版本
  3. 运行mysql_upgrade
  4. 重启服务并验证

重要:升级前务必在测试环境验证,生产环境建议使用主从切换方式逐步升级。

← 返回列表