简介:MySQL 8.0.30 是一款流行的开源关系型数据库管理系统,本文提供在 CentOS 和 Red Hat Enterprise Linux (RHEL) 7 上安装 MySQL 8.0.30 的详细指南。它涵盖了关键特性、安装前准备、安装步骤、安全设置、防火墙配置和后续维护。通过遵循这些步骤,你可以成功安装和配置 MySQL 8.0.30,并使用它来管理和操作数据库。
1. MySQL 8.0.30 概述
MySQL 8.0.30 新特性和优势
MySQL 8.0.30 引入了众多新特性和优势,包括:
- 窗口函数: 支持对数据集进行分组、排序和聚合操作,增强了数据分析能力。
- JSON 原生支持: 原生存储和处理 JSON 数据,简化了非关系型数据的管理。
- 可观察性增强: 提供了更多性能指标和诊断工具,方便监控和故障排除。
- 性能优化: 通过改进查询优化器、缓冲池管理和并行执行,提高了查询性能。
2. CentOS/RHEL 7 安装准备
2.1 系统要求和依赖关系
系统要求:
- 操作系统:CentOS/RHEL 7.x
- CPU:2 核或以上
- 内存:2 GB 或以上
- 磁盘空间:5 GB 或以上
依赖关系:
- yum-utils :用于管理 Yum 仓库
- percona-release :用于安装 Percona MySQL 仓库
- gcc :用于编译 MySQL
- make :用于构建 MySQL
2.2 Yum 源配置
为了安装 MySQL 8.0.30,需要添加 Percona MySQL 仓库。执行以下命令:
yum install -y yum-utils
yum-config-manager --add-repo https://repo.percona.com/yum/percona-release-latest.repo
2.3 SELinux 设置
SELinux(安全增强型 Linux)是一个安全机制,可以限制系统上的进程和用户活动。在安装 MySQL 之前,需要禁用或修改 SELinux 设置。
禁用 SELinux:
setenforce 0
修改 SELinux 设置:
chcon -t mysqld_db_t /var/lib/mysql
此命令将修改 /var/lib/mysql
目录的安全上下文,允许 MySQL 访问该目录。
3. MySQL 服务器安装
3.1 MySQL 8.0.30 RPM 包下载
下载 MySQL 8.0.30 RPM 包
从 MySQL 官方网站下载 MySQL 8.0.30 RPM 包:
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
验证下载的 RPM 包
使用 rpm -ivh
命令验证下载的 RPM 包:
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
添加 MySQL Yum 仓库
添加 MySQL Yum 仓库以获取 MySQL 8.0.30 RPM 包:
yum-config-manager --add-repo https://dev.mysql.com/yum/repo/el/8/mysql80-community.repo
3.2 MySQL 服务器安装和初始化
安装 MySQL 服务器
使用 yum
命令安装 MySQL 服务器:
yum install mysql-server
初始化 MySQL 服务器
安装完成后,使用 mysql_secure_installation
脚本初始化 MySQL 服务器:
mysql_secure_installation
设置 MySQL root 密码
在初始化过程中,将提示设置 MySQL root 密码。输入并确认密码。
删除匿名用户
建议删除匿名用户以提高安全性:
DELETE FROM mysql.user WHERE User='';
禁用远程 root 登录
为了安全起见,禁用远程 root 登录:
UPDATE mysql.user SET Host='localhost' WHERE User='root';
FLUSH PRIVILEGES;
3.3 MySQL 数据目录创建和所有权设置
创建 MySQL 数据目录
创建 MySQL 数据目录 /var/lib/mysql
:
mkdir /var/lib/mysql
设置 MySQL 数据目录所有权
将 MySQL 数据目录所有权设置为 mysql
用户和组:
chown -R mysql:mysql /var/lib/mysql
设置 SELinux 上下文
如果启用了 SELinux,需要设置 MySQL 数据目录的 SELinux 上下文:
chcon -Rt mysql_db_t /var/lib/mysql
4. MySQL 服务启动和配置
4.1 MySQL 服务启动和停止
启动 MySQL 服务
systemctl start mysqld
停止 MySQL 服务
systemctl stop mysqld
重启 MySQL 服务
systemctl restart mysqld
4.2 MySQL 配置文件详解
MySQL 配置文件位于 /etc/my.cnf
。该文件包含 MySQL 服务器的各种设置。
重要配置参数
| 参数 | 描述 | 默认值 | |---|---|---| | bind-address
| 监听的 IP 地址 | 0.0.0.0 | | port
| 监听的端口 | 3306 | | max_connections
| 允许的最大连接数 | 151 | | innodb_buffer_pool_size
| InnoDB 缓冲池大小 | 128MB | | innodb_log_file_size
| InnoDB 日志文件大小 | 50MB |
4.3 MySQL 优化配置
提高并发连接数
max_connections = 500
增加 InnoDB 缓冲池大小
innodb_buffer_pool_size = 256MB
调整 InnoDB 日志文件大小
innodb_log_file_size = 100MB
启用慢查询日志
slow_query_log = ON
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 1
优化查询缓存
query_cache_type = 1
query_cache_size = 16MB
优化临时表
tmp_table_size = 32MB
max_heap_table_size = 32MB
启用二进制日志
log_bin = ON
binlog_format = ROW
启用 redo 日志
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16MB
启用性能模式
performance_schema = ON
performance_schema_instrument = %
5.1 MySQL root 密码更改
MySQL 安装后,默认的 root 用户密码为空,为了安全起见,需要立即更改 root 密码。
操作步骤
- 使用
mysql
命令连接到 MySQL 服务器:
mysql -u root
- 输入以下命令更改 root 密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
- 刷新权限以使更改生效:
FLUSH PRIVILEGES;
5.2 安全设置配置
为了提高 MySQL 服务器的安全性,建议进行以下安全设置配置:
操作步骤
- 禁用远程 root 访问:
UPDATE mysql.user SET Host = 'localhost' WHERE User = 'root';
- 创建新用户并授予权限:
CREATE USER '新用户'@'localhost' IDENTIFIED BY '新密码';
GRANT ALL PRIVILEGES ON *.* TO '新用户'@'localhost';
- 删除匿名用户:
DELETE FROM mysql.user WHERE User = '';
- 启用 SSL 连接:
在 MySQL 配置文件中启用 SSL 连接并配置证书。
5.3 防火墙规则配置
为了保护 MySQL 服务器免受未经授权的访问,需要配置防火墙规则允许必要的连接。
操作步骤
- 允许 MySQL 端口连接:
firewall-cmd --permanent --add-port=3306/tcp
- 重新加载防火墙规则:
firewall-cmd --reload
5.4 数据库备份和恢复
定期备份数据库对于数据安全至关重要。MySQL 提供了多种备份和恢复选项。
操作步骤
- 使用 mysqldump 备份数据库:
mysqldump -u root -p --all-databases > 备份文件.sql
- 使用 MySQL Enterprise Backup 备份数据库(如果已安装):
mysqlbackup --backup-dir=/备份目录 --user=root --password=密码
- 使用 XtraBackup 备份数据库(如果已安装):
innobackupex --user=root --password=密码 --backup /备份目录
- 使用 mysqldump 恢复数据库:
mysql -u root -p < 备份文件.sql
- 使用 MySQL Enterprise Backup 恢复数据库:
mysqlrestore --user=root --password=密码 /备份目录
- 使用 XtraBackup 恢复数据库:
innobackupex --apply-log --redo-only /备份目录
5.5 MySQL 性能监控和故障排除
监控 MySQL 性能并及时排除故障对于确保数据库的稳定运行至关重要。
操作步骤
- 使用 MySQLTuner 监控性能:
mysqltuner
- 使用 MySQL Workbench 监控性能:
MySQL Workbench -> 服务器状态
- 使用 MySQL 日志进行故障排除:
cat /var/log/mysqld.log
- 使用 MySQL 命令行工具进行故障排除:
SHOW PROCESSLIST;
SHOW FULL PROCESSLIST;
SHOW VARIABLES LIKE 'innodb%';
简介:MySQL 8.0.30 是一款流行的开源关系型数据库管理系统,本文提供在 CentOS 和 Red Hat Enterprise Linux (RHEL) 7 上安装 MySQL 8.0.30 的详细指南。它涵盖了关键特性、安装前准备、安装步骤、安全设置、防火墙配置和后续维护。通过遵循这些步骤,你可以成功安装和配置 MySQL 8.0.30,并使用它来管理和操作数据库。