
在CentOS7上安装MySQL数据库,可以通过下载RPM包进行本地安装,或者利用YUM源进行部署
本文将详细介绍通过官方YUM源在CentOS7上安装MySQL数据库的步骤,并涵盖一些关键的配置和优化建议
一、准备工作 在开始安装之前,请确保你的CentOS7系统已经更新到最新版本,并且拥有root权限或者能够使用sudo命令来获取root权限
此外,由于MySQL在CentOS7的默认仓库中并未包含最新版本,因此推荐通过官方YUM源进行安装
二、安装MySQL 1. 更新YUM源 CentOS7自带的YUM源访问速度可能较慢,因此建议将YUM源更新为国内镜像源,例如阿里源
这可以大大提高软件包的下载速度
首先,安装wget工具(如果尚未安装): bash yum install wget 然后,备份原有的YUM源配置文件: bash mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak 接着,使用wget下载阿里源的YUM源配置文件: bash wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 更新YUM源后,执行以下命令来清理YUM缓存并更新系统软件包: bash yum clean all yum makecache yum update -y 2. 添加MySQL官方YUM仓库 接下来,下载并安装MySQL官方提供的YUM仓库文件
这将允许你通过YUM来安装MySQL软件包
使用wget下载MySQL8.0的YUM仓库RPM包: bash wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm 或者,你也可以选择下载MySQL5.7的YUM仓库RPM包(如果你需要安装旧版本): bash wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm 下载完成后,使用rpm命令安装YUM仓库文件: bash sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm 或者(对于MySQL5.7): bash sudo rpm -ivh mysql57-community-release-el7-8.noarch.rpm 安装完成后,你可以在`/etc/yum.repos.d/`目录下看到MySQL的YUM源配置文件
3. 安装MySQL服务器 现在,你可以使用YUM来安装MySQL服务器软件包了
执行以下命令: bash sudo yum install mysql-community-server 在安装过程中,YUM会自动处理所有依赖关系,并下载并安装所需的软件包
如果遇到GPG密钥过期的错误,你可以通过更新密钥来解决: bash rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 然后再次尝试安装命令
4. 启动MySQL服务 安装完成后,你需要启动MySQL服务
执行以下命令: bash sudo systemctl start mysqld 你可以使用以下命令来检查MySQL服务的运行状态: bash sudo systemctl status mysqld 如果你希望MySQL服务在系统启动时自动启动,可以执行以下命令来启用开机自启: bash sudo systemctl enable mysqld 三、MySQL初始配置 MySQL安装并启动后,你需要进行一些初始配置才能开始使用
1. 获取临时密码 MySQL首次启动时会自动生成一个临时密码,你可以在`/var/log/mysqld.log`日志文件中找到它: bash sudo grep temporary password /var/log/mysqld.log 记录下这个临时密码,稍后将使用它来登录MySQL
2. 登录MySQL并修改密码 使用临时密码登录MySQL: bash mysql -uroot -p 然后系统会提示你输入密码,输入刚才记录的临时密码即可
登录后,你需要修改root用户的密码
MySQL8.0及更高版本对密码策略有严格要求,你需要创建一个符合策略的密码(包含大小写字母、数字和特殊字符)
执行以下命令来修改密码: sql ALTER USER root@localhost IDENTIFIED BY NewStrongPassword!; 请将`NewStrongPassword!`替换为你自己的强密码
如果你遇到密码策略限制导致无法设置密码的问题,你可以暂时降低密码策略要求: sql SET GLOBAL validate_password_policy = LOW; SET GLOBAL validate_password_length =6; 然后再尝试设置密码
但请注意,这只是一个临时解决方案,强烈建议在生产环境中使用强密码策略
3.移除匿名用户并禁用远程root登录(可选) 为了提高MySQL的安全性,你可以移除匿名用户并禁用远程root登录
这可以通过运行`mysql_secure_installation`脚本来完成,该脚本会引导你完成这些安全配置步骤
bash sudo mysql_secure_installation 按照提示进行操作即可
四、MySQL配置与优化 安装并配置好MySQL后,你可能还需要进行一些额外的配置和优化以满足你的业务需求
1. 调整配置文件(`/etc/my.cnf`) MySQL的配置文件位于`/etc/my.cnf`(或`/etc/mysql/my.cnf`,具体路径可能因安装方式和版本而异)
你可以根据服务器硬件资源和业务需求来调整关键参数
以下是一些常见的配置项: ini 【mysqld】 内存分配 innodb_buffer_pool_size=2G 建议为物理内存的50%-70% max_connections=200 根据并发量调整 日志与持久化 slow_query_log=1 long_query_time=2 innodb_flush_log_at_trx_commit=1 请根据你的实际情况调整这些参数
调整完成后,记得重启MySQL服务以使更改生效
2. 用户权限管理 避免直接使用root账户操作数据库,建议创建专用用户并限制其权限
例如: sql CREATE USER app_user@localhost IDENTIFIED BY StrongPassword123!; GRANT SELECT, INSERT, UPDATE, DELETE ON app_db. TO app_user@localhost; FLUSH PRIVILEGES; 这将创建一个名为`app_user`的新用户,并授予其对`app_db`数据库的SELECT、INSERT、UPDATE和DELETE权限
3.索引优化与查询分析 通过EXPLAIN命令分析慢查询,并添加合适的索引来提高查询性能
例如: sql EXPLAIN SELECT - FROM orders WHERE user_id=100; CREATE INDEX idx_user_id ON orders(user_id); 这将分析对`orders`表的查询,并在`user_id`列上创建一个索引以加速查询
4.防火墙设置 仅允许特定IP地址访问MySQL端口(默认3306)
这可以通过配置防火墙规则来实现
例如,使用firewalld来添加一条允许特定IP地址访问33
MySQL存储过程SET操作指南
CentOS7安装MySQL数据库教程
解决MySQL拒绝用户访问的妙招
MySQL数据库管理与开发技能大考验:全面解析考试要点
速查!MySQL存储过程一览表
MySQL数据库中的四则运算技巧
MySQL:双值唯一性约束技巧
MySQL存储过程SET操作指南
解决MySQL拒绝用户访问的妙招
MySQL数据库管理与开发技能大考验:全面解析考试要点
速查!MySQL存储过程一览表
MySQL数据库中的四则运算技巧
MySQL:双值唯一性约束技巧
Java操作MySQL TINYINT数据类型指南
MySQL根账户密码设置未通过解决方案
深入解读:MySQL商业版本协议的核心要点与影响
百万级数据高效导入MySQL指南
MySQL:如何赋予用户建库权限指南
优化MySQL:提升性能连接数策略