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

在 CentOS 中安装 MySQL 的过程与问题解决方案

MySQL 是一款广泛使用的开源关系型数据库管理系统,在 CentOS 系统中安装 MySQL 是很多开发者和运维人员常做的工作。下面将详细介绍安装过程以及可能遇到的问题和解决方案。

一、安装前的准备工作

在安装 MySQL 之前,需要做好一些准备工作,以确保安装过程顺利进行。

  • 检查系统版本:确认 CentOS 的版本,不同版本在安装 MySQL 时可能会有一些差异。可以使用 cat /etc/centos-release 命令查看系统版本。
  • 更新系统:运行  yum -y update  命令更新系统软件包,保证系统处于最新状态,减少兼容性问题。
  • 检查是否已安装 MySQL 相关软件:使用   rpm -qa | grep mysql  命令查看,如果有安装则使用   rpm -e --nodeps   软件名命令卸载,避免冲突。

二、MySQL 的安装过程

(一)选择安装方式

MySQL 在 CentOS 上有多种安装方式,常用的有通过 yum 源安装和源码编译安装。这里推荐使用 yum 源安装,操作相对简单。

(二)添加 MySQL yum 源

  • 访问 MySQL 官网(https://dev.mysql.com/downloads/repo/yum/),选择适合 CentOS 版本的 yum 源 rpm 包。
  • 下载 rpm 包:可以使用 wget 命令下载,例如 wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm(具体链接根据实际情况选择)。
  • 安装 rpm 包:运行  rpm -ivh mysql80-community-release-el7-3.noarch.rpm  ,安装完成后会在/etc/yum.repos.d/目录下生成相关的 yum 源配置文件。

(三)选择 MySQL 版本

如果需要安装特定版本的 MySQL,可以修改 yum 源配置文件。例如,对于 MySQL 5.7,编辑/etc/yum.repos.d/mysql-community.repo文件,将 MySQL 8.0 的 enabled 设置为 0,将 MySQL 5.7 的 enabled 设置为 1。

(四)安装 MySQL

运行  yum -y install mysql-community-server  命令开始安装 MySQL。安装过程中,yum 会自动处理依赖关系。

三、MySQL 的配置与启动

(一)启动 MySQL 服务

安装完成后,使用systemctl start mysqld命令启动 MySQL 服务。可以通过  systemctl status mysqld  命令查看服务状态,如果显示 “active (running)” 则表示启动成功。

(二)设置开机自启动

为了让 MySQL 在系统重启后自动启动,运行  systemctl enable mysqld  命令。

(三)获取初始密码

MySQL 安装完成后,会生成一个初始密码,存放在/var/log/mysqld.log文件中。可以使用  grep 'temporary password' /var/log/mysqld.log   命令查看初始密码。

(四)登录 MySQL 并修改初始密码

  • 使用初始密码登录   MySQL:mysql -u root -p,然后输入初始密码。
  • 修改密码:登录后,需要立即修改初始密码,否则无法执行其他操作。可以使用ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';命令修改密码。注意,MySQL 对密码有一定要求,通常需要包含大小写字母、数字和特殊字符。

四、可能遇到的问题及解决方案

(一)yum 源安装时提示 “找不到包”

  • 原因:可能是 yum 源配置不正确或者没有启用对应的 MySQL 版本。
  • 解决方案:检查/etc/yum.repos.d/mysql-community.repo文件中对应的 MySQL 版本的 enabled 是否设置为 1,然后运行yum clean all和yum makecache命令刷新 yum 缓存。

(二)启动 MySQL 服务失败

  • 原因:可能是端口被占用、配置文件错误等。
  • 解决方案:
    • 检查端口是否被占用:使用  netstat -tunlp | grep 3306  命令查看 3306 端口是否被占用,如果被占用可以修改 MySQL 配置文件中的端口或者停止占用端口的进程。
    • 查看错误日志:/var/log/mysqld.log文件中会记录启动失败的原因,根据日志信息进行排查。

(三)初始密码无法登录

  • 原因:可能是初始密码获取错误或者密码已过期。
  • 解决方案:
    • 重新获取初始密码:再次运行  grep 'temporary password' /var/log/mysqld.log  命令确认。
    • 如果密码过期,可以修改 MySQL 配置文件/etc/my.cnf,在 [mysqld] 部分添加  skip-grant-tables,然后重启 MySQL 服务systemctl restart mysqld,此时可以无密码登录 MySQL,登录后修改密码,修改完成后删除skip-grant-tables并重启服务。

(四)远程连接 MySQL 失败

  • 原因:默认情况下,MySQL 只允许本地登录,没有开启远程连接权限。
  • 解决方案:
    • 登录 MySQL 后,执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;命令授予 root 用户远程连接权限,其中%表示允许所有 IP 连接,也可以指定具体的 IP。
    • 执行FLUSH PRIVILEGES;命令刷新权限。
    • 检查防火墙是否开放 3306 端口:如果使用 firewalld 防火墙,运行firewall-cmd --zone=public --add-port=3306/tcp --permanent命令开放 3306 端口,然后运行firewall-cmd --reload命令重新加载防火墙配置。

通过以上步骤,应该可以在 CentOS 系统中成功安装并配置 MySQL。如果在安装过程中遇到其他问题,可以查阅 MySQL 官方文档或者相关技术论坛寻求帮助。

http://www.dtcms.com/a/302074.html

相关文章:

  • QGIS基于规则的道路分级制图及Leaflet集成展示实例
  • 深入解析NES游戏原理与开发流程:从硬件架构到现代开发实践
  • 腾讯云centos7使用docker部署生产环境中间件
  • 基于黑马教程——微服务架构解析(二)
  • python的第三方库(五分钟小白从入门到精通)
  • 信息收集的一般思路
  • linux cut命令 使用教程
  • JavaWeb(苍穹外卖)--学习笔记14
  • uni-app switch(开关选择器) BUG
  • SystemV消息队列揭秘:原理与实战
  • Vue、微信小程序、Uniapp 面试题整理最新整合版
  • springboot集成deepseek
  • Apache Ignite 的 JDBC Client Driver(JDBC 客户端驱动)
  • uniapp,uview 报错:Not Found:Page[2][-1;-1,8,0,28] at view.umd.min.js:1
  • 目前市面上有Android 16KB的手机吗
  • 时序数据库选型指南:工业大数据场景下基于Apache IoTDB技术价值与实践路径
  • Deep Learning_ Foundations and Concepts-Springer (2024)【拜读】前向编码器20章
  • TS面试题
  • 数据库概述(学习笔记)
  • 墨者:SQL注入漏洞测试(宽字节)
  • IDEA 手动下载安装数据库驱动,IDEA无法下载数据库驱动问题解决方案,IDEA无法连接数据库解决方案(通用,Oracle为例)
  • 自学嵌入式 day36 数据库
  • 《Go Web编程实战派--从入门到精通》的随笔笔记
  • 当非洲爱上“中国制造”:如何赢在起跑线
  • 【Oracle】闪回相关操作
  • UV安装并设置国内源
  • easyexcel填充方式导出-合并单元格并设置边框
  • QML QtCharts 极坐标图(PolarChartView)
  • 【WRF-Chem第二期】WRF-Chem有关 namelist 详解
  • 学习lxml库:Python XML/HTML处理利器