Linux中MySQL 无法正常启动的解决

最近在公司做的项目中用到了MySQL数据库,系统版本是CentOS 5.1 i386。在刚安装完时,使用quot;service mysql startquot;无法正

最近在公司做的项目中用到了MySQL数据库,系统版本是CentOS 5.1 i386。

在刚安装完时,使用”service mysql start”无法正常开启。手动运行mysqld_safe程序,错误信息是”…../etc/rc.d/init.d/mysql 159:kill(xxxx) no such process”。在网上搜了一下,很多人都解决了,但是没有见到详细的讲解和错误原因的分析。我又看了一下MySQL的说明文档,发现了问题所在。此错误信息,说明mysqld_safe程序启动失败—虽然显示的是无法kill某进程,此处的kill只是为了测试指定进程是否仍然存在。

当出现错误时,你需要检查以下内容:

1、selinux是否已经关闭。

2、如果使用默认的方式安装,查看用户”mysql”是否已创建。

3、mysql配置信息中的datadir目录是否已经创建(使用此命令查看已配置的datadir:mysqld –verbose –help | grep datadir)。

4、datadir目录的所有者,是否和mysqld_safe命令行选项中的相同(默认为”mysql”用户)。

错误原因分析:

1、在使用RPM包安装完MySQL-server-xxxx.rpm之后,会看到终端中显示了上面提到的错误,MySQL开启失败。此时造成开启失败的原因,很有可能是开启了selinux,关闭selinux(具体方法请google一下),重启系统,,一般情况下,问题可以解决。刚才已在我的虚拟机中重新尝试了一次。

2、使用rpm包进行安装时,会自动创建”mysql”用户,但是在某些“可信的操作系统”中,root用户无权添加新用户,会导致错误。此时你可以使用具有添加新用户权限的用户,手动添加”mysql”帐户,密码随意设置。当你只能使用root用户时,可以在my.cnf(下面会介绍此文件)中做如下修改:

[mysqld]

user = root   #或者是其他可使用的用户名称

此处的”root”即为脚本中调用mysqld_safe程序时,命令行中指定的系统用户。

3、安装MySQL-server-xxxx.rpm之后,显示正常开启,但是修改了my.cnf(原文件为/usr/share/mysql/中的my-xxxx.cnf文件,需要选择合适的文件复制到/etc/目录中,并且改名为my.cnf)文件之后,出现错误。此时错误的原因,很有可能是因为你没有调用mysql_install_db函数,此函数负责创建mysql的基本数据库,如登录用户的信息等,以及使用my.cnf对mysql进行配置,如数据库目录(datadir),根目录(basedir)等。在当前系统中,默认datadir为/var/lib/mysql/。

4、使用rpm包安装时,mysql_install_db函数被默认的调用,但是配置信息也是默认的。当你改写了my.cnf文件之后,需要重新调用”mysql_install_db –user=mysql”命令,以按照新的配置文件对数据库进行配置。其中的”–user=mysql”选项,使创建的datadir的创建者和所有者为mysql用户(使用rpm包安装时,自动创建此用户)。如果没有为mysqld_safe指定其他用户,必须添加此选项。

参考以上的方法,MySQL无法正常启动的问题应该能够解决。对于CentOS 5.1以外的系统,没有进行测试。

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1961095.html

(0)
上一篇 2025年2月23日 05:27:24
下一篇 2025年2月23日 05:28:25

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 记录 慢SQL优化实战

    sql教程介绍sql慢查询的优化 推荐(免费):sql教程 一、存在问题 经过sql慢查询的优化,我们系统中发现了以下几种类型的问题: 1.未建索引:整张表没有建索引;2.索引未命中:有索引,但是部分查询条件下索引未命中;3.搜索了额外的非…

    2025年2月23日 数据库
    100
  • 解决 SQL 问题绝对能让你对 MySQL 的理解更进一步!

    sql教程栏目介绍如何更有效理解mysql 推荐(免费):SQL教程 属性表(product_props)结构如下 数据量800W以上 字段名 类型 说明 idintidpn_idint属性类型pv_idint属性值product_idin…

    2025年2月23日 数据库
    100
  • 因为一条sql语句产生了自我怀疑!

     故事是这样开始的 在一个月黑风高的夜晚 现场报过来,本该打到新服务的流量,又走到了老服务,老服务的功能不健全,很可能会让现场的用户不能支付。 需要说明一点的是,任何一个从老服务改造到新服务的时候,都不是完全把流量切过去,都需要经过一点时间…

    2025年2月23日
    100
  • 面试题:在日常工作中怎么做MySQL优化的?

    前言 MySQL常见的优化手段分为下面几个方面: SQL优化、设计优化,硬件优化等,其中每个大的方向中又包含多个小的优化点 下面我们具体来看看 SQL优化 此优化方案指的是通过优化 SQL 语句以及索引来提高 MySQL 数据库的运行效率,…

    2025年2月23日
    100
  • sql中不等于0怎么写

    在 SQL 中,判断一个值是否不等于 0,可以使用不等号运算符 !=,语法为:expression != 0。例如,查找所有不等于 0 的记录时,可以使用 SELECT * FROM table_name WHERE column_name…

    2025年2月23日
    100
  • win7怎么安装mysql数据库

    要在 Windows 7 上安装 MySQL 数据库,请按以下步骤操作:从 MySQL 官网下载适用于您系统架构的安装程序。双击安装程序以启动向导。选择“Custom”安装类型。在“Type and Networking”中选择“Devel…

    2025年2月23日
    100
  • mysql中删除表的语句

    MySQL 中删除表的语句是:DROP TABLE table_name; 它将永久删除表及其数据,注意操作不可逆。此语句不适用于视图或临时表,应分别使用 DROP VIEW 和 DROP TEMPORARY TABLE 语句。 MySQL…

    2025年2月23日
    100
  • mysql中删除一个表的命令

    MySQL 中删除表命令:DROP TABLE。语法:DROP TABLE table_name。用法:1. 连接数据库;2. 输入命令:DROP TABLE table_name;3. 执行命令。注意:删除前需删除表中数据;删除后数据将永…

    2025年2月23日
    100
  • unique在mysql中是什么意思

    MySQL中的unique约束确保列或列组中的值唯一,防止重复值,通过创建索引实现,可增强数据完整性、查询优化和数据一致性。 unique在MySQL中的含义 unique是MySQL中的一项约束,用于确保表中某一列或一组列中的值是唯一的。…

    2025年2月23日
    100
  • mysql中use的作用

    MySQL 的 USE 命令用于在会话中选择要使用的数据库,将后续查询和操作应用于指定的数据库。 MySQL 中 USE 命令的作用 简介USE 命令在 MySQL 中用于选择要使用的数据库。它告诉 MySQL 将后续查询和操作应用于指定的…

    2025年2月23日
    100

发表回复

登录后才能评论