欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 运维打铁:Centos 7 使用yum安装 mysql5.7

运维打铁:Centos 7 使用yum安装 mysql5.7

2025/4/29 16:54:04 来源:https://blog.csdn.net/XiaoRungen/article/details/147483142  浏览:    关键词:运维打铁:Centos 7 使用yum安装 mysql5.7

文章目录

    • 一、安装前信息说明
    • 二、安装步骤
      • 1. 下载并安装官网 RPM 安装包
      • 2. 修改配置文件 `/etc/my.cnf`
      • 3. 创建 MySQL 数据相关目录并授权
      • 4. 启动 MySQL 服务
    • 三、修改数据库访问密码
      • 1. 修改配置文件 `/etc/my.cnf`
      • 2. 重启 MySQL 服务
      • 3. 登录数据库并修改密码
      • 4. 恢复配置文件并重启数据库
      • 5. 连接数据库并再次修改密码
      • 6. 授权远程登录权限
    • 四、常见问题及解决办法
      • 1. MySQL 服务无法启动
      • 2. 密码修改失败
      • 3. 无法远程连接 MySQL

在这里插入图片描述

一、安装前信息说明

在安装 MySQL 5.7 之前,先明确以下关键信息:

端口(port)数据路径(datapath)日志路径(logpath)
30030/opt/mysql/data/mysql/opt/mysql/logs/mysqld.log

二、安装步骤

1. 下载并安装官网 RPM 安装包

首先,从 MySQL 官方网站下载 RPM 安装包,然后使用 yum 进行本地安装,最后安装 MySQL 社区服务器。

wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
yum localinstall mysql57-community-release-el7-11.noarch.rpm -y
yum install mysql-community-server -y

2. 修改配置文件 /etc/my.cnf

编辑 MySQL 的配置文件,设置数据目录、端口、字符集等参数。注意,数据目录必须以 mysql 结尾,否则 MySQL 启动会失败。

[mysqld]
datadir=/opt/mysql/data/mysql  # 必须以 mysql 结尾,否则启动失败
socket=/var/lib/mysql/mysql.sock
port=30030
#skip-grant-tables  # 修改密码时打开此注释,重启后登录 mysql -uroot -psymbolic-links=0
log-error=/opt/mysql/logs/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
log_timestamps=SYSTEM  # 配置日志时间戳[client]
default-character-set = utf8mb4[mysql]
default-character-set = utf8mb4

3. 创建 MySQL 数据相关目录并授权

创建数据目录和日志目录,并将这些目录的所有权赋予 mysql 用户和组。

mkdir -p /opt/mysql/data/
mkdir -p /opt/mysql/logs
chown mysql:mysql -R /opt/mysql/*

4. 启动 MySQL 服务

使用 systemctl 命令启动 MySQL 服务。

systemctl start mysqld 

三、修改数据库访问密码

1. 修改配置文件 /etc/my.cnf

在配置文件中添加 skip-grant-tables 选项,跳过权限验证,方便修改密码。

[mysqld]
skip-grant-tables

2. 重启 MySQL 服务

使配置文件的修改生效。

systemctl restart mysqld 

3. 登录数据库并修改密码

无需输入密码登录 MySQL,然后更新 root 用户的密码。

mysql -uroot -p
-- 注意:在 MySQL 5.7 及以上版本,password() 函数已被弃用,可使用以下方式
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

4. 恢复配置文件并重启数据库

skip-grant-tables 注释掉,恢复正常的权限验证,然后重启 MySQL 服务。

vi /etc/my.cnf
# 修改 [mysqld] 部分,注释掉 skip-grant-tables
[mysqld]
#skip-grant-tablessystemctl restart mysqld 

5. 连接数据库并再次修改密码

使用新设置的密码登录 MySQL,再次修改 root 用户的密码以确保密码生效。

mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';

6. 授权远程登录权限

root 用户授予远程登录的权限,并刷新权限表。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

四、常见问题及解决办法

1. MySQL 服务无法启动

  • 可能原因:数据目录配置错误、权限不足、端口被占用等。
  • 解决办法
    • 检查 /etc/my.cnf 中的 datadir 配置是否正确,确保以 mysql 结尾。
    • 使用 chown 命令确保 /opt/mysql 目录及其子目录的所有权属于 mysql 用户和组。
    • 使用 netstat -tlnp | grep 30030 检查端口是否被其他程序占用,若被占用,可修改 /etc/my.cnf 中的 port 配置。

2. 密码修改失败

  • 可能原因:配置文件修改未生效、SQL 语句使用错误等。
  • 解决办法
    • 确保在修改密码前,skip-grant-tables 选项已在 /etc/my.cnf 中启用,并重启 MySQL 服务。
    • 注意在 MySQL 5.7 及以上版本,password() 函数已被弃用,应使用 ALTER USER 语句修改密码。

3. 无法远程连接 MySQL

  • 可能原因:防火墙未开放端口、远程访问权限未授予等。
  • 解决办法
    • 开放防火墙的 30030 端口,例如使用 firewall-cmd --zone=public --add-port=30030/tcp --permanent 命令,然后使用 firewall-cmd --reload 使配置生效。
    • 确保已执行 GRANT 语句为 root 用户授予远程访问权限,并执行 FLUSH PRIVILEGES 刷新权限表。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词