【问题标题】:Mysql failed to startmysql启动失败
【发布时间】:2013-11-30 14:19:47
【问题描述】:

我已经从源码包安装了mysql-5.6.14

尝试开始:

vaio1@vaio1-VPCEA3S1E:mysqld

 2013-11-17 13:22:18 0 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.
 2013-11-17 13:22:18 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
 2013-11-17 13:22:18 1777 [ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys'
 2013-11-17 13:22:18 1777 [Warning] One can only use the --user switch if running as root  
 2013-11-17 13:22:18 1777 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
 2013-11-17 13:22:18 1777 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)
 2013-11-17 13:22:18 1777 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
 2013-11-17 13:22:18 1777 [Note] Plugin 'FEDERATED' is disabled.mysqld: Unknown error 1146
 2013-11-17 13:22:18 1777 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
 2013-11-17 13:22:18 1777 [Note] InnoDB: The InnoDB memory heap is disabled
 2013-11-17 13:22:18 1777 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
 2013-11-17 13:22:18 1777 [Note] InnoDB: Compressed tables use zlib 1.2.3
 2013-11-17 13:22:18 1777 [Note] InnoDB: Using CPU crc32 instructions
 2013-11-17 13:22:18 1777 [Note] InnoDB: Initializing buffer pool, size = 128.0M
 2013-11-17 13:22:18 1777 [Note] InnoDB: Completed initialization of buffer pool
 2013-11-17 13:22:18 1777 [Note] InnoDB: Highest supported file format is Barracuda.
 2013-11-17 13:22:19 1777 [Note] InnoDB: 128 rollback segment(s) are active.
 2013-11-17 13:22:19 1777 [Note] InnoDB: Waiting for purge to start
 2013-11-17 13:22:19 1777 [Note] InnoDB: 5.6.14 started; log sequence number 1600677
 2013-11-17 13:22:19 1777 [ERROR] Aborting

【问题讨论】:

    标签: daemon mysql


    【解决方案1】:

    也许,您得到的是 MySQL 5.6 二进制文件,但 my.cnf 和数据文件是旧版本。

    你读过MySQL upgrade Manual吗?

    MySQL 死掉的主要原因是:

    Unknown error 1146 2013-11-17 13:22:18 1777 [ERROR] Can't open the mysql.plugin table.
    Please run mysql_upgrade to create it
    

    请参阅Manual 如何使用 mysql_upgrade。大多数错误消息与不推荐使用的选项有关。

    【讨论】:

    【解决方案2】:

    我是从sourceforge zip编译的:mysql-5.6.14

    尝试mysql_upgrade:

    vaio1@vaio1-VPCEA3S1E:~/Téléchargements/mysql-5.6.14$ mysql_upgrade

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

    vaio1@vaio1-VPCEA3S1E:~/Téléchargements/mysql-5.6.14$ mysqlcheck

      Variables (--variable-name=value)
      and boolean options {FALSE|TRUE}  Value (after reading options)
      --------------------------------- ----------------------------------------
      all-databases                     FALSE
      all-in-1                          FALSE
      auto-repair                       FALSE
      bind-address                      (No default value)
      character-sets-dir                (No default value)
      compress                          FALSE
      databases                         FALSE
      debug-check                       FALSE
      debug-info                        FALSE
      default-character-set             (No default value)
      default-auth                      (No default value)
      fast                              FALSE
      fix-db-names                      FALSE
      fix-table-names                   FALSE
      force                             FALSE
      extended                          FALSE
      host                              (No default value)
      write-binlog                      TRUE
      plugin-dir                        (No default value)
      port                              0
      quick                             FALSE
      silent                            FALSE
      skip-database                     (No default value)
      socket                            (No default value)
      ssl                               FALSE
      ssl-ca                            (No default value)
      ssl-capath                        (No default value)
      ssl-cert                          (No default value)
      ssl-cipher                        (No default value)
      ssl-key                           (No default value)
      ssl-crl                           (No default value)
      ssl-crlpath                       (No default value)
      ssl-verify-server-cert            FALSE
      use-frm                           FALSE
      user                              (No default value)
    

    我不明白为什么

     user                              (No default value)
    

    在我的文件中:/etc/mysql/my.cnf

     user = mysql
    

    vaio1@vaio1-VPCEA3S1E:~/Téléchargements/mysql-5.6.14$ mysqld_safe --skip-grant-tables

     131118 10:10:04 mysqld_safe Logging to '/var/log/mysql/error.log'.
     touch: impossible de faire un touch «/var/log/mysql/error.log»: Permission non accordée
     chmod: impossible d'accéder à «/var/log/mysql/error.log»: Aucun fichier ou dossier de ce type ## No files or directory
     131118 10:10:04 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
     /usr/local/mysql/bin/mysqld_safe: 129: /usr/local/mysql/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
     /usr/local/mysql/bin/mysqld_safe: 1: eval: cannot create /var/log/mysql/error.log: Permission denied
     touch: impossible de faire un touch «/var/log/mysql/error.log»: Permission non accordée
     chown: impossible d'accéder à «/var/log/mysql/error.log»: Aucun fichier ou dossier de ce type ## No files or directory
     chmod: impossible d'accéder à «/var/log/mysql/error.log»: Aucun fichier ou dossier de ce type 
     131118 10:10:04 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
     /usr/local/mysql/bin/mysqld_safe: 129: /usr/local/mysql/bin/mysqld_safe: cannot create /var/log/mysql/error.log: Permission denied
    

    ...$ mysqlcheck --all-databases --check-upgrade --auto-repair

     mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) when trying to connect
    

    试试这个:sudo chown -R mysql /var/lib/mysql 还有..chown..var/log/mysql/

     .. change nothing
    

    是的!可能是默认用户的问题;

     sudo cmod 777 var/log/mysql/  ## just test lol
    

    尝试mysqld

     vaio1@vaio1-VPCEA3S1E:~/Téléchargements/mysql-5.6.14$ mysqld
     2013-11-18 11:36:36 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
     2013-11-18 11:36:36 24679 [ERROR] Can't find messagefile '/usr/share/mysql/errmsg.sys'
     2013-11-18 11:36:36 24679 [Warning] One can only use the --user switch if running as root
    

    2013-11-18 11:36:36 24679 [错误] 找不到消息文件'/usr/share/mysql/errmsg.sys'

    应对 errmsg.sys

     sudo cp /usr/local/mysql/share/english/errmsg.sys /usr/share/errmsg.sys
     sudo chown mysql /usr/share/errmsg.sys
    

    Resolve /usr/share/mysql/errmsg.sys

    【讨论】:

      【解决方案3】:
      mysqld reads this standard configuration file and can not read the 5.5 message file in
      5.6, leading to this error.
      
      Solutions :
      
      1. pass your configuration file to mysql_install_db
      
      ./scripts/mysql_install_db --defaults-file=my.cnf
      
      2. use --no-defaults, not to read other configuration files
      
      ./scripts/mysql_install_db --no-defaults --basedir=/home/praveen/mysql-5.6.10-linux-x86_65 
      --datadir=/home/praveen/data
      

      【讨论】:

      • 脚本文件夹似乎从 tar 文件中消失了
      【解决方案4】:

      无论 MySQL "ini" 文件列表存在于:"MySQL\MySQL Server 5.2\" 文件夹中,请从您的 fried.xml 文件中替换它们。 我浪费了这么多时间,仍然不知道问题的根本原因。 如果有错误,请检查“data”文件夹中存在的“.err”文件是否存在错误。 现在启动服务并完成。 它只是在某处进入,您尝试调试问题解决方案,而不是这是更快的方法。

      【讨论】:

        【解决方案5】:

        刚遇到这个问题中提到的相同问题并尝试了很多解决方案,最后我弄清楚了哪里出了问题。问题来自服务器升级。 mysql-libs-5.1.73-5.el6_6.x86_64 中的文件替换了 MySQL-server-5.6.15-1.el6.x86_64 中的文件,因此重新安装后,服务器恢复正常。这是我为将来参考所做的。

        $ rpm -qf /usr/share/mysql/english/errmsg.sys
        MySQL-server-5.6.15-1.el6.x86_64
        mysql-libs-5.1.73-5.el6_6.x86_64
        $ rpm -e mysql-libs-5.1.73-5.el6_6.x86_64
        $ rpm -ivh --replacepkgs MySQL-*
        

        【讨论】:

          【解决方案6】:

          打开终端并运行以下命令启动mysql服务:

          $ sudo mysqld_safe --skip-grant-tables
          

          当mysql服务运行时,打开其他终端运行:

          $ sudo mysql_upgrade -u root -p
          

          【讨论】:

          • 非常简单明了,工作正常,升级成功非常感谢@Silva,这是最好的答案!
          • 我在 CentOs 6 上尝试过这个解决方案,我建议对 All 使用这个解决方案
          猜你喜欢
          • 1970-01-01
          • 2018-10-05
          • 2021-05-31
          • 2023-03-13
          • 1970-01-01
          • 2023-01-25
          • 2014-11-17
          • 2019-08-11
          • 2015-08-24
          相关资源
          最近更新 更多