centos6.5中rpm包安装mysql5.7初始化出错的解决方法

yizhihongxing

下面将详细讲解“CentOS 6.5 中 RPM 包安装 MySQL 5.7 初始化出错的解决方法”的完整攻略,包含以下内容:

问题描述

在 CentOS 6.5 中通过 RPM 包安装 MySQL 5.7,执行初始化命令时出现如下错误:

ERROR: Unable to start MySQL server:
mysqld: Can't read dir of '/var/lib/mysql/' (Errcode: 13 - Permission denied)
mysqld: [ERROR] Aborting
mysqld: [Note] /usr/sbin/mysqld: Shutdown complete

解决方法

  1. 创建 MySQL 相关的用户和组
sudo groupadd mysql
sudo useradd -r -g mysql mysql
  1. 为 MySQL 数据目录设置正确的权限
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 770 /var/lib/mysql
sudo chmod g+s /var/lib/mysql
  1. 修改 SELinux 的 security context
sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"
sudo semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?"
sudo semanage fcontext -a -t mysqld_tmp_t "/var/tmp/mysql(/.*)?"
sudo restorecon -Rv /var/lib/mysql
sudo restorecon -Rv /var/log/mysql
sudo restorecon -Rv /var/tmp/mysql
  1. 重新执行初始化命令
sudo mysqld --initialize-insecure
  1. 启动 MySQL 服务
sudo service mysqld start

示例说明

  1. 创建 MySQL 相关的用户和组

在 CentOS 6.5 中,MySQL 数据目录的所属用户和组默认为 mysql。如果系统中没有这个用户和组,则需要手动创建:

sudo groupadd mysql  # 创建 mysql 组
sudo useradd -r -g mysql mysql  # 创建 mysql 用户,-r 表示创建系统用户
  1. 为 MySQL 数据目录设置正确的权限

在 CentOS 6.5 中,MySQL 数据目录默认为 /var/lib/mysql。为了保证 MySQL 对数据目录有完全的访问权限,需要执行如下命令:

sudo chown -R mysql:mysql /var/lib/mysql  # 修改所有者和组为 mysql
sudo chmod 770 /var/lib/mysql  # 修改权限为 770
sudo chmod g+s /var/lib/mysql  # 设置SGID位,新建文件的所属组为 mysql
  1. 修改 SELinux 的 security context

在 CentOS 6.5 中,SELinux 默认开启,为了让 MySQL 对数据目录、日志目录以及临时目录等有完全的访问权限,需要修改相应的 security context:

sudo semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"  # 添加 MySQL 数据目录的 security context
sudo semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?"  # 添加 MySQL 日志目录的 security context
sudo semanage fcontext -a -t mysqld_tmp_t "/var/tmp/mysql(/.*)?"  # 添加 MySQL 临时目录的 security context
sudo restorecon -Rv /var/lib/mysql  # 重新设置 MySQL 数据目录的 security context
sudo restorecon -Rv /var/log/mysql  # 重新设置 MySQL 日志目录的 security context
sudo restorecon -Rv /var/tmp/mysql  # 重新设置 MySQL 临时目录的 security context
  1. 重新执行初始化命令

重新执行初始化命令,并加上 --initialize-insecure 参数,跳过密码初始化过程:

sudo mysqld --initialize-insecure
  1. 启动 MySQL 服务

启动 MySQL 服务:

sudo service mysqld start

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:centos6.5中rpm包安装mysql5.7初始化出错的解决方法 - Python技术站

(0)
上一篇 2023年6月20日
下一篇 2023年6月20日

相关文章

  • JAVA利用递归删除文件代码实例

    下面详细讲解一下“JAVA利用递归删除文件代码实例”的完整攻略。 1. 背景介绍 在Java的文件操作过程中,有时候需要删除文件或文件夹,为了保证删除的彻底性,我们可以使用递归来实现该过程。 2. 实现步骤 下面是JAVA利用递归删除文件代码的实现步骤: 首先判断要删除的文件或文件夹是否存在,如果不存在,则直接返回。 如果存在,则判断要删除的是文件还是文件夹…

    other 2023年6月27日
    00
  • Android NDK开发(C语言–联合体与枚举)

    Android NDK开发(C语言–联合体与枚举)完整攻略 联合体 联合体是一种数据类型,它可以容纳多个不同的数据类型,但是同一时间只能有一个成员被使用,这也是联合体和结构体的不同之处。在C语言中,联合体的定义方式为: union unionName { // 成员变量 }; 其中,unionName是联合体的名称,花括号内是联合体的成员。例如,如果定义一…

    other 2023年6月26日
    00
  • Java对象初始化过程代码块和构造器的调用顺序

    对于Java对象的初始化过程,可以分为三个步骤:成员变量的初始化、代码块的初始化和构造器的初始化。这三个步骤的执行顺序如下: 父类的成员变量初始化。 父类的静态代码块初始化。 子类的成员变量初始化。 子类的静态代码块初始化。 父类的代码块初始化。 父类的构造器初始化。 子类的代码块初始化。 子类的构造器初始化。 其中,静态代码块是在类加载时执行,只会执行一次…

    other 2023年6月20日
    00
  • 剑指Offer之Java算法习题精讲二叉搜索树与数组查找

    首先,我们需要了解什么是二叉搜索树。二叉搜索树是一棵有序树,其中每个节点的值都大于其左子树中的所有节点的值,且小于其右子树中的所有节点的值。 在 Java 中,我们可以用节点类和树类来实现二叉搜索树。 接着,我们可以学习如何向二叉搜索树中插入节点,删除节点和查找节点。 对于删除节点,我们有三种情况需要考虑:该节点是叶子节点、该节点有一个子节点或该节点有两个子…

    other 2023年6月27日
    00
  • Android应用开发中View绘制的一些优化点解析

    Android应用开发中View绘制的一些优化点解析 在Android应用开发中,View的绘制是一个重要的环节,对于应用的性能和用户体验有着直接的影响。下面将详细讲解一些优化点,以提高View的绘制效率。 1. 使用ViewStub延迟加载视图 在布局中使用ViewStub可以延迟加载视图,避免在初始化时就加载所有的视图。这样可以减少初始布局的复杂度,提高…

    other 2023年8月21日
    00
  • Jquery 在页面加载后执行的几种方式

    Jquery 在页面加载后执行有多种方式,下面详细说明一下这些方式: 监听$(document).ready() Jquery 提供了一个监听 DOM 加载完成的事件,可以使用$(document).ready()方法来处理这个事件。代码示例如下: $(document).ready(function() { // 在这里写需要执行的代码 }); 这个方法的…

    other 2023年6月25日
    00
  • Ubuntu中添加应用程序快速启动器的方法

    下面是完整的“Ubuntu中添加应用程序快速启动器的方法”攻略。 1. 打开“主菜单” 在Ubuntu的左侧“Dock栏”上,点击Ubuntu图标,打开“主菜单”。 2. 选择应用程序 在“主菜单”中,找到需要添加快速启动器的应用程序,选择该应用程序。 3. 复制应用程序的启动命令 在应用程序的菜单中,右击该应用程序并选择“添加到收藏夹”。然后打开“收藏夹”…

    other 2023年6月25日
    00
  • Windows Powershell 命令集 cmdlets

    Windows Powershell 命令集 cmdlets 完整攻略 简介 Windows Powershell 是一种强大的命令行工具,可以通过 cmdlets(核心模块)来实现各种任务,包括系统管理、脚本编写、数据分析等。Cmdlets 可以实现复杂的任务,还能通过管道将命令链接起来,完成更加强大的功能。 Cmdlets 的结构 Cmdlets 具有以…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部