本文将详细介绍如何在RedHat6上安装MySQL5.7,涵盖从准备工作到配置安全设置的每一步
一、准备工作 在安装MySQL5.7之前,你需要做一些准备工作
首先,确保你的RedHat6系统是最新的,并且你有root权限来执行安装命令
其次,由于MySQL和MariaDB(MySQL的一个分支)在端口和一些系统文件上存在冲突,如果你的系统上已经安装了MariaDB,你需要先卸载它
bash 检查并卸载MariaDB yum remove mariadb 另外,考虑到MySQL5.7的安装包有多种来源,你可以选择从MySQL官方网站下载RPM包,或者通过MySQL的官方Yum Repository进行安装
本文将以RPM包安装为例进行详细说明
二、下载并解压MySQL安装包 从MySQL官方网站下载MySQL5.7的RPM安装包
你可以访问MySQL的【下载页面】(http://dev.mysql.com/downloads/mysql/),选择适合RedHat6的版本进行下载
下载完成后,将安装包上传到你的服务器上
假设你已经下载了`mysql-5.7.xx-linux-glibc2.5-x86_64.tar.gz`(请将`xx`替换为具体的版本号),接下来解压这个安装包: bash 创建存放MySQL安装包的目录 mkdir /home/mysql mkdir /mysql_data 解压安装包 tar -xvf mysql-5.7.xx-linux-glibc2.5-x86_64.tar.gz -C /home/mysql 重命名解压后的目录(可选) cd /home/mysql mv mysql-5.7.xx-linux-glibc2.5-x86_64 mysql 三、创建MySQL用户和组 在RedHat系统上,出于安全考虑,MySQL服务通常不以root用户运行
因此,你需要创建一个专门的MySQL用户和组: bash 创建mysql用户组 groupadd -g505 mysql 创建mysql用户,并将其添加到mysql组 useradd -u506 -g mysql -s /bin/false -d /home/mysql mysql 设置目录权限 chown -R mysql:mysql /home/mysql chown -R mysql:mysql /mysql_data chmod750 -R /home/mysql chmod750 -R /mysql_data 四、安装MySQL RPM包 接下来,你需要安装MySQL的RPM包
这些包通常包括MySQL服务器、客户端、库文件等
确保你按照依赖关系顺序安装这些包: bash 切换到RPM包所在的目录(假设你已经解压到/home/mysql) cd /home/mysql/mysql 安装MySQL-common(如果有的话) rpm -ivh mysql-community-common-5.7.xx-1.el6.x86_64.rpm 安装MySQL库文件 rpm -ivh mysql-community-libs-5.7.xx-1.el6.x86_64.rpm 安装MySQL客户端 rpm -ivh mysql-community-client-5.7.xx-1.el6.x86_64.rpm 安装MySQL服务器 rpm -ivh mysql-community-server-5.7.xx-1.el6.x86_64.rpm 注意:这里的`xx`代表具体的版本号,你需要根据实际情况进行替换
同时,如果你的安装包不是从MySQL社区下载的,包名可能会有所不同(例如商业版可能会有`mysql-commercial-`前缀)
五、初始化数据库 在安装MySQL服务器之后,你需要初始化数据库
这个过程会创建一个默认的MySQL数据目录,并生成一个临时的root密码
bash 初始化数据库(指定basedir和datadir) cd /home/mysql/mysql/support-files 或者你的实际路径 ./mysqld --user=mysql --basedir=/home/mysql --datadir=/mysql_data --initialize 初始化成功后,你会在终端输出中看到一个临时的root密码,类似于`A temporary password is generated for root@localhost: xxxxxxxx`
请记下这个密码,因为你将在后续步骤中使用它
六、启动MySQL服务 现在,你可以启动MySQL服务,并设置它在系统启动时自动启动: bash 启动MySQL服务 service mysqld start 设置MySQL服务开机自启 chkconfig mysqld on 七、配置MySQL 在MySQL服务启动后,你需要进行一些基本的配置
首先,使用临时root密码登录MySQL: bash 登录MySQL mysql -u root -p 输入临时密码 登录成功后,你需要执行以下操作: 1.修改root密码:由于临时密码是自动生成的,你可能希望将其更改为一个你容易记住的密码
sql ALTER USER root@localhost IDENTIFIED BY new_password; FLUSH PRIVILEGES; 请注意,MySQL5.7默认启用了密码策略,要求密码满足一定的复杂性要求(至少包含一个小写字母、一个大写字母、一个数字、一个特殊符号,且长度至少为8位)
如果你不想使密码过于复杂,可以调整密码策略(后面会详细介绍)
2.删除匿名用户:为了提高安全性,你应该删除MySQL中的匿名用户
sql DELETE FROM mysql.user WHERE User=; FLUSH PRIVILEGES; 3.禁用远程root登录(可选):出于安全考虑,你可能不希望root用户能够从远程登录MySQL
你可以通过更新`mysql.user`表来限制root用户的登录主机
sql UPDATE mysql.user SET Host=localhost WHERE User=root; FLUSH PRIVILEGES; 4.配置防火墙:如果你的RedHat系统启用了防火墙(如firewalld),你需要开放MySQL使用的端口(默认是3306)
bash 开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent 重新加载防火墙配置 firewall-cmd --reload 八、调整密码策略(可选) 如前所述,MySQL5.7默认启用了严格的密码策略
如果你希望使用较简单的密码,可以通过调整`validate_password`参数来实现
sql 查看当前密码策略 SHOW VARIABLES LIKE validate_password%; 设置密码策略为LOW,并调整其他参数 SET GLOBAL validate_password_policy=LOW; SET GLOBAL validate_password_length=6; SET GLOBAL validate_password_number_count=1; SE