【问题标题】:MySQL Daemon Failed to Start - centos 6MySQL 守护进程无法启动 - centos 6
【发布时间】:2013-12-17 03:03:16
【问题描述】:

编辑:查看勾选的答案 cmets 以解决您的问题。

每当我尝试启动 SQLD 服务时,我都会收到 MySQL Daemon Failed to Start。我实际上尝试通过执行以下操作来“启动”服务:

service mysqld start

还有

当我输入:mysql

我明白了:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

我知道那个目录应该有一个 mysql.sock 文件,所以我创建了一个。但是文件只是自动删除了它自己,我继续收到错误 2002。

由于错误,我也无法登录 PHPMyAdmin。我可以访问 phpmyadmin 页面,但登录时我得到:#2002 Cannot log in to the MySQL server

编辑:

这是我的 mysql.log 文件:

131201 13:05:07 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
131201 13:18:18 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
131201 13:18:18 [Note] Plugin 'FEDERATED' is disabled.
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
131201 13:18:18 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
131201 13:18:18 InnoDB: The InnoDB memory heap is disabled
131201 13:18:18 InnoDB: Mutexes and rw_locks use GCC atomic builtins
131201 13:18:18 InnoDB: Compressed tables use zlib 1.2.3
131201 13:18:18 InnoDB: Using Linux native AIO
131201 13:18:18 InnoDB: Initializing buffer pool, size = 128.0M
131201 13:18:18 InnoDB: Completed initialization of buffer pool
131201 13:18:18  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
131201 13:18:18 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

我运行了 mysql_upgrade 并得到了

Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
FATAL ERROR: Upgrade failed

【问题讨论】:

  • 你确定mysqld正在运行吗?试试service mysqld status 看看。如果没有:service mysqld startMySQL on Centos
  • 我在尝试启动 mysqld 服务时忘记添加我得到 MySQL Daemon 错误。
  • 究竟是什么错误信息?另外,请尝试sudo service mysql start。并且可能摆脱您手动创建的 mysql.sock 文件。
  • 如我所说,它会自动删除它。

标签: php mysql phpmyadmin centos6


【解决方案1】:
 /etc/init.d/mysqld stop

 mysqld_safe --skip-grant-tables & mysql_upgrade

 /etc/init.d/mysqld stop

 /etc/init.d/mysqld start

【讨论】:

  • 一些解释会很好。也请用代码块格式化你的答案。
【解决方案2】:
  1. /etc/init.d/mysql stop
  2. chown -R mysql:mysql /var/lib/mysql
  3. mysql_install_db
  4. /etc/init.d/mysql start

这一切拯救了我的 MySQL 服务器!

【讨论】:

    【解决方案3】:

    以后还会来这里的朋友,如果以上方法都不起作用,请检查my.cnf文件:

    $ sudo gedit /etc/my.cnf
    

    查找以:开头的行

    bind-address=[an-IP-address]
    

    检查等号后的IP地址是否正确。如果连IP是什么都不知道,直接用localhost,就只能连接到同一个主机里面的MySQL了。

    如果您想远程连接到 MySQL,您实际上应该完全注释掉该行,然后它将侦听您需要的所有 IP 和端口,因为您将通过公共 IPv4 远程连接到它。

    然后添加一个用户来访问您的数据库,例如:

    mysql> GRANT ALL ON database_name.* TO user@xx.xxx.xx.xx IDENTIFIED BY 'your_password';
    

    将 xx.xx.xx.xx 替换为您的笔记本电脑/台式机的本地 IP 地址,或者如果它是动态的,您可以通过以下方式添加它们: '192.168.0.%' 作为动态 C 类或 '%' 如果您希望能够从任何地方连接(这不太安全)

    另外,如果安装了防火墙,应该打开防火墙上的端口;

    例如在 Ubuntu 中:

    sudo ufw allow 3306/tcp
    sudo service ufw restart
    

    现在,通过以下方式检查服务是否可启动:

    $ sudo service mysqld start
    

    【讨论】:

      【解决方案4】:

      由于内存不足,您的数据库已关闭! 您可以编辑下图的 my.cnf base 文件来解决它

      performance_schema_max_table_instances=200
      table_definition_cache=200
      table_open_cache=128
      

      【讨论】:

      • 别忘了重启数据库
      【解决方案5】:

      RE:MySQL 守护程序无法启动 - centos 6 / RHEL 6

      1. Yum 安装 MySQL
      2. /etc/init.d/mysqld 启动 MySQL 守护程序无法启动。 启动 mysqld:[失败]

      3. 查看日志:/var/log/mysqld.log

      4. 您可能会收到此错误:[错误] 无法打开 mysql.plugin 表。请运行 mysql_upgrade 来创建它。

      对我有用的解决方案是运行这个:

      1. $ mysql_install_db

      如果这不能解决您的问题,请告诉我。

      【讨论】:

        【解决方案6】:

        参考这里2.10.2.1 Troubleshooting Problems Starting the MySQL Server

        1.找到数据目录,在my.cnf中配置。

        [mysqld]
        datadir=/var/lib/mysql
        

        2。检查 err 文件,它记录了有关 mysql 服务器启动失败的错误消息。 err 文件的名称与您的主机名有关。

        cd /var/lib/mysql
        ll
        tail (hostname).err
        

        3.如果你发现一些类似的消息:

        InnoDB: Error: log file ./ib_logfile0 is of different size 0 33554432 bytes
        InnoDB: than specified in the .cnf file 0 5242880 bytes!
        170513 14:25:22 [ERROR] Plugin 'InnoDB' init function returned error.
        170513 14:25:22 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
        170513 14:25:22 [ERROR] Unknown/unsupported storage engine: InnoDB
        170513 14:25:22 [ERROR] Aborting
        

        然后

        删除 ib_logfile0 和 ib_logfile1

        ,那么,

        /etc/init.d/mysqld start
        

        【讨论】:

          【解决方案7】:

          您可能需要从根 (/) 分区中释放一些空间。停止mysql进程:

          /etc/init.d/mysql stop
          

          通过命令从mySql中删除一个未使用的数据库:

          rm -rf [Database-Directory]
          

          /var/lib/mysql 中执行。现在如果你运行df -h,你可能会被仍然满的空间弄糊涂。要删除受影响的未使用数据库的目录,您需要杀死正在使用当前目录/分区的进程。

          停止mysql_safemysqld_safe 然后mysqld

          ps -A
          

          然后找到mysql的进程号(例如2234)。然后执行:

          kill 2234
          

          现在重新启动mysql:

          /etc/init.d/mysql start
          

          【讨论】:

            【解决方案8】:

            如果您在 AIM Linux Amazon EC2 中使用 yum。 为安全起见,请完整备份目录 /var/lib/mysql

            sudo yum reinstall -y mysql55-server
            
            sudo service mysqld start
            

            【讨论】:

              【解决方案9】:

              我遇到了同样的问题。当我检查 error.log 时,我发现我的磁盘已满。

              用途:

              df -h 
              

              在命令行上。它会告诉你你还剩下多少空间。我的满了。发现我的 error.log 文件是 4.77GB。我下载了它然后删除了它。 然后我使用 service mysqld start 并且它起作用了。

              【讨论】:

                【解决方案10】:

                可能是权限问题,

                请以 root 用户身份尝试以下命令/etc/init.d/mysqld start

                【讨论】:

                  【解决方案11】:

                  试试

                  netstat -a -t -n | grep 3306 
                  

                  查看任何人在监听 3306 端口 然后杀了它

                  我遇到这个问题 2 天了。尝试论坛上发布的解决方案时,我不小心遇到了我的日志出现此错误的情况

                  检查您是否还没有另一个 mysqld 进程

                  【讨论】:

                    【解决方案12】:

                    这个错误最可能的原因是你的mysql服务器没有运行。当您输入 mysql 时,您正在执行 mysql 客户端。

                    试试:

                    # sudo service mysql start
                    # mysql
                    

                    更新(在问题中包含 OP 后;取自下面的 cmets):

                    谢谢,看到你的日志了。日志说mysql用户没有 适当的访问权限。我假设你的mysql用户是mysql(这可以 在/etc/my.cnf进行验证,执行

                    chown -R mysql:mysql /var/lib/mysql

                    然后尝试再次启动mysqld

                    【讨论】:

                    • 截图显示你已经以root登录,所以不需要使用sudo。你可以做service mysqld start。请发布您发出此命令时遇到的任何错误。
                    • 似乎有些人对我写这篇文章的方式感到困惑。当我执行“service mysqld start”时,我得到 MySQL Daemon Failed to Start。另一个问题是我在输入“mysql".
                    • 你有mysqld.log文件吗,能不能在执行service mysqld start的时候贴一下日志的相关部分。
                    • 我已将其添加到主要问题中。
                    • 谢谢,看到你的日志了。日志说 mysql 用户没有适当的访问权限。我假设您的mysql用户是mysql(这可以在/etc/my.cnf中验证,执行chown -R mysql:mysql /var/lib/mysql并尝试再次启动mysqld
                    【解决方案13】:

                    另一个对我有用的技巧。运行命令:

                    $ mysql_install_db
                    

                    【讨论】:

                      【解决方案14】:

                      尝试重新启动 apache sudo service httpd restart。为我工作。

                      【讨论】:

                      • 我不知道为什么,但令我惊恐的是,这确实有效!谢谢雨滴!!
                      • 它也对我有用...我对这个问题的答案很感兴趣。
                      • 我不知道它是如何工作的,但是当 MySQL、PHP 等出现问题时,我有时会重新启动 Web 服务作为常规调试的一部分。
                      • @stcheng 为时已晚,但自上个月以来我也是古玩,但今天我弄清楚了为什么它在 httpd 重新启动后工作。实际上原因是至少在我的情况下是内存,当出现内存问题时 mysql 会崩溃,但是当我重新启动 httpd 时可能是由于释放了一些内存,mysql 获得了足够的内存来重新启动
                      • 这个修复对我来说没有任何意义,但在尝试了其他一些东西后尝试了它并且它有效。我不得不在我的机器上停止 httpd,然后尝试启动 mysqld……它工作了!!!……完全不知道为什么。
                      【解决方案15】:

                      我刚刚遇到了这个错误。我无法远程连接到我的 mysql 服务器。我尝试使用服务mysqld restart(我使用root)重新启动mysql服务器。它停止了,但没有重新开始。原来我的记忆是满的。清除了几 GB,它工作正常。

                      【讨论】:

                        【解决方案16】:

                        运行这个:

                        chown -R mysql:mysql /var/lib/mysql
                        

                        再试一次!

                        【讨论】:

                          猜你喜欢
                          • 2017-08-04
                          • 2012-07-18
                          • 2016-10-26
                          • 2013-09-20
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2015-10-07
                          相关资源
                          最近更新 更多