MySQL 无法启动

MySQL 无法启动

我最近尝试运行一个基本的 MySQL 命令。然后我得到了以下响应:

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

然后我发现 MySQL 没有运行。因此我尝试启动它,并得到了以下响应:start: Job failed to start

然后我尝试了以下命令:sudo -u mysql mysqld

然后得到以下输出:

160331 21:09:35 [Note] mysqld (mysqld 5.5.47-0ubuntu0.14.04.1-log) starting as process 6929 ...
160331 21:09:35 [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.
160331 21:09:35 [Note] Plugin 'FEDERATED' is disabled.
160331 21:09:35 [ERROR] Function 'innodb' already exists
160331 21:09:35 [Warning] Couldn't load plugin named 'innodb' with soname 'ha_innodb.so'.
160331 21:09:35 [ERROR] Function 'federated' already exists
160331 21:09:35 [Warning] Couldn't load plugin named 'federated' with soname 'ha_federated.so'.
160331 21:09:35 [ERROR] Function 'blackhole' already exists
160331 21:09:35 [Warning] Couldn't load plugin named 'blackhole' with soname 'ha_blackhole.so'.
160331 21:09:35 [ERROR] Function 'archive' already exists
160331 21:09:35 [Warning] Couldn't load plugin named 'archive' with soname 'ha_archive.so'.
160331 21:09:35 InnoDB: The InnoDB memory heap is disabled
160331 21:09:35 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160331 21:09:35 InnoDB: Compressed tables use zlib 1.2.8
160331 21:09:35 InnoDB: Using Linux native AIO
160331 21:09:35 InnoDB: Initializing buffer pool, size = 256.0M
160331 21:09:35 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
160331 21:09:35 [ERROR] Plugin 'InnoDB' init function returned error.
160331 21:09:35 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160331 21:09:35 [ERROR] mysqld: unknown variable 'log_slow_verbosity=query_plan'
160331 21:09:35 [ERROR] Aborting

160331 21:09:35 [Note] mysqld: Shutdown complete

有人知道是什么原因造成的吗?我看到已经有很多插件了。但我对 SQL 还是个新手。

答案1

您以前是否能够成功使用 MySQL,或者这是您第一次尝试运行它?您是否已验证其配置文件中列出的所有文件和目录都/etc/my.cnf存在?如果您在该文件中看到对某个文件的引用,log-error请检查该文件中的错误消息。

我在你发布的输出中看到“插件‘InnoDB’初始化函数返回错误。160331 21:09:35 [错误] 插件‘InnoDB’注册为存储引擎失败。”。MySQL 网站上有一篇文章“14.19.1 解决 InnoDB I/O 问题“这表明:

InnoDB如果在尝试初始化其表空间或日志文件时出现问题,请删除由以下人员创建的所有文件InnoDB:所有ibdata文件和所有 ib_logfile文件。如果您已经创建了一些 InnoDB 表,还请从 MySQL 数据库目录中删除这些表的相应 .frm文件以及任何.ibd 文件(如果您使用多个表空间)。然后再次尝试创建 InnoDB 数据库。为了最轻松地进行故障排除,请从命令提示符启动 MySQL 服务器,以便查看正在发生的事情

我看到了mysqld: unknown variable 'log_slow_verbosity=query_plan'显示的最后一个错误。根据5.1.4 服务器系统变量,允许的值log-slow-verbosity是数字 1、2 或 3,其中 1 指定仅记录错误,2 指定记录错误和警告,3 指定记录错误、警告和注释。因此log_slow_verbosity=2,如果您想要控制服务器在将错误、警告和注释消息写入错误日志时的详细程度(请参阅5.4.2 错误日志)。另外,MySQL 站点的页面上还指出:

错误、警告和说明 log_error_verbosity 是在 MySQL 5.7.2 中添加的。它优于旧的 log_warnings 系统变量,应该使用它来代替它。

除了对变量使用了非法值之外,您似乎还在使用引入该变量之前的 MySQL 版本,因为我mysqld 5.5.47-0ubuntu0.14.04.1-log从您发布的输出中看到这一点。从 MySQL 配置文件中删除该行可能不允许 MySQL 启动,但删除该行应该可以消除其中一个错误。

my-default.cnf您也可以在系统上查找。这是安装 MySQL 时安装的模板文件。您可以使用 搜索它find / -name my-default.cnf。如果找到它,您可以备份当前my.cnf文件并将其替换为默认文件,然后尝试重新启动 MySQL 以查看是否有帮助。此外,您可以重命名或移动该my.cnf文件,然后尝试使用该升级中的新文件将 MySQL 更新到最新版本my.cnf

相关内容