当前位置: 首页 > news >正文

运维打铁: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 刷新权限表。

相关文章:

  • Rust 学习笔记:编程语言的相关概念
  • HTML、XHTML 和 XML区别
  • 关于Safari浏览器在ios<16.3版本不支持正则表达式零宽断言的解决办法
  • HTML给图片居中
  • 【OSG学习笔记】Day 7: 材质与光照——让模型“活”起来
  • 数据库-数据类型、约束 和 DQL语言
  • 内网数据库怎么通过外网访问?本地SQL无公网IP如何让公网连接实现通用方法
  • 【ES实战】Elasticsearch中模糊匹配类的查询
  • 【mysql】windows mysql命令
  • Redis 基础和高级用法入门
  • 【TensorFlow深度学习框架】从数学原理到工业级应用
  • 国产紫光同创FPGA视频采集转SDI编码输出,基于HSSTHP高速接口,提供2套工程源码和技术支持
  • w~视觉~合集3
  • CV和NLP领域常见模型列表
  • PH热榜 | 2025-04-24
  • elementui日历显示红点及根据日程范围判断是否有红点
  • OSPF动态路由(单臂路由)
  • vue3+element-push 实现input框粘贴图片或文本,图片上传。
  • 2020-06-23 暑期学习日更计划(机器学习入门之路(资源汇总)+概率论)
  • 【农气项目】基于适宜度的产量预报
  • 全国首个古文学习AI大模型在沪发布,可批阅古文翻译
  • 人民论坛:是民生小事,也是融合大势
  • 国家发改委:更大力度、更实举措促进民营经济高质量发展
  • 美联储褐皮书:关税政策背景下,美国部分地区物价上涨、经济前景恶化
  • 新《火灾统计管理规定》即将施行,火灾死亡统计时限延长
  • 牛市早报|特朗普称或将“大幅降低”对华关税,外交部回应