在Linux系统上,通过YUM(Yellowdog Updater, Modified)包管理器安装MySQL不仅方便快捷,还能确保依赖关系的正确处理
本文将详细介绍如何使用YUM安装MySQL,并优化其配置文件,以满足生产环境中的各种需求
一、准备工作 在开始之前,请确保你的Linux服务器满足以下条件: 1.操作系统:本文基于CentOS 7或RHEL 7,但大多数步骤同样适用于其他基于RPM的Linux发行版
2.网络连接:确保服务器可以访问互联网,以便从官方仓库下载MySQL软件包
3.权限:你需要root权限或使用sudo命令来执行安装和配置操作
二、使用YUM安装MySQL 1.添加MySQL Yum Repository 由于MySQL不再包含在默认的CentOS/RHEL仓库中,你需要先添加MySQL官方提供的Yum Repository
这将确保你能够下载到最新版本的MySQL
bash sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm 执行上述命令后,MySQL的Yum Repository将被添加到你的系统中
2.安装MySQL Server 使用Yum安装MySQL Server软件包: bash sudo yum install mysql-server 这将下载并安装MySQL Server及其所有必要的依赖项
3.启动MySQL服务 安装完成后,启动MySQL服务并设置其在系统启动时自动启动: bash sudo systemctl start mysqld sudo systemctl enable mysqld 4.获取临时root密码 MySQL5.7及更高版本在安装过程中会自动生成一个临时root密码,你可以在`/var/log/mysqld.log`文件中找到它: bash sudo grep temporary password /var/log/mysqld.log 记录下这个密码,因为你将在首次登录MySQL时使用它
三、安全配置MySQL 1.首次登录并修改root密码 使用临时密码登录MySQL: bash mysql -u root -p 系统会提示你输入密码,输入刚才记录的临时密码
登录后,立即更改root密码
为了提高安全性,建议使用强密码,并遵循MySQL的密码策略: sql ALTER USER root@localhost IDENTIFIED BY NewStrongPassword!; 2.运行安全安装脚本 MySQL提供了一个名为`mysql_secure_installation`的脚本,用于执行一系列安全相关的配置: bash sudo mysql_secure_installation 该脚本会提示你执行以下操作: -更改root密码(虽然你已经在上一步中更改了,但这里会再次确认)
- 删除匿名用户
-禁止root远程登录(出于安全考虑,建议仅允许本地登录)
- 删除测试数据库并重新加载权限表
- 重新加载权限表
根据提示,逐一确认或设置这些选项
四、优化MySQL配置文件 MySQL的配置文件(通常是`/etc/my.cnf`或`/etc/mysql/my.cnf`)对于数据库的性能和安全至关重要
以下是一些关键的配置参数及其优化建议: 1.【mysqld】 部分 -bind-address:指定MySQL监听的网络接口
在生产环境中,为了安全起见,通常将其设置为`127.0.0.1`,仅允许本地访问
ini 【mysqld】 bind-address =127.0.0.1 -port:MySQL服务的监听端口,默认是3306
如果你需要更改,可以在这里设置
ini port =3306 -datadir:MySQL数据文件的存储目录
确保该目录有足够的磁盘空间和适当的权限
ini datadir = /var/lib/mysql -socket:Unix域套接字文件的路径,用于本地客户端连接
ini socket = /var/lib/mysql/mysql.sock -- character-set-server 和 `collation-server`:设置默认的字符集和排序规则
推荐使用utf8mb4字符集,以支持完整的Unicode字符
ini character-set-server = utf8mb4 collation-server = utf8mb4_general_ci -innodb_buffer_pool_size:InnoDB存储引擎的缓冲区池大小,直接影响数据库性能
建议设置为物理内存的50%-75%
ini innodb_buffer_pool_size =1G -max_connections:允许的最大并发客户端连接数
根据服务器的内存和处理能力调整
ini max_connections =200 -- query_cache_size 和 `query_cache_type`:查询缓存的大小和类型
在MySQL 8.0中,查询缓存已被弃用并移除,因此如果你使用的是MySQL8.0或更高版本,可以忽略这些设置
对于MySQL5.7及以下版本: ini query_cache_size =64M query_cache_type =1 2.- 【client】 和 【mysql】 部分 -default-character-set:设置客户端和MySQL命令行工具的默认字符集
ini 【client】 default-character-set = utf8mb4 【mysql】 default-character-set = utf8mb4 3.日志配置 -- general_log 和 `general_log_file`:启用通用查询日志并记录到指定文件
出于性能考虑,通常不建议在生产环境中启用
ini 【mysqld】 general_log =0 general_log_file = /var/log/mysql/mysql.log -slow_query_log、`slow_query_log_file`- 和 long_query_time:启用慢查询日志并记录到指定文件,设置超过多少秒的查询被视为慢查询
ini 【mysqld】 slow_query_log =1 slow_query_log_file = /var/log/mysql/mysql-slow.log long_query_time =2 五、重启MySQL服务以应用配置更改 每次修改配置文件后,都需要重启MySQL服务以使更改生效: bash sudo systemctl rest