WampServer 2.4 MySQL实例未启动,图标仍为橙色


WampServer 2.4 MySQL instance not starting, icon remains orange

当我启动WampServer 2.4时,MySQL实例不会启动。

前一天它运行良好,第二天就出现了这个问题。

我已经尝试重新启动所有服务,包括my.ini中的"innodb_force_recovery=1",并在my.ini中删除了跳过innodb。

我得到以下错误:

2014-04-28 16:06:51 4408 [Note] Plugin 'FEDERATED' is disabled.
2014-04-28 16:06:51 13dc InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB's internal memory allocator.
2014-04-28 16:06:51 4408 [Note] InnoDB: The InnoDB memory heap is disabled
2014-04-28 16:06:51 4408 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2014-04-28 16:06:51 4408 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-04-28 16:06:51 4408 [Note] InnoDB: Not using CPU crc32 instructions
2014-04-28 16:06:51 4408 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2014-04-28 16:06:51 4408 [Note] InnoDB: Completed initialization of buffer pool
2014-04-28 16:06:51 13dc  InnoDB: Operating system error number 3 in a file operation.
InnoDB: The error means the system cannot find the path specified.
InnoDB: If you are installing InnoDB, remember that you must create
InnoDB: directories yourself, InnoDB does not create them.
2014-04-28 16:06:51 13dc  InnoDB: File name C:'mysql'data'ibdata1
2014-04-28 16:06:51 13dc  InnoDB: File operation call: 'create' returned OS error 103.
2014-04-28 16:06:51 13dc  InnoDB: Cannot continue operation.

我已经搜索了操作系统错误编号3和操作系统错误103,但找不到问题的答案。

我得到了ibdata1文件,但由于我的数据库中有数据,我不想删除它,让WampServer重新创建它。

不可能登录到phpMyAdmin,但我可以访问Localhost。

此外,我确信我没有更改文件夹结构中的任何内容。

MySQL服务器默认接受来自tpc端口3306的连接。

因此,您的两个MySQL服务器都试图使用相同的端口THATS NOT ALLOWED,因此哪一个MySQL服务器第二次启动将失败,因为它无法访问端口3306。

由于WAMPServers MySQL Server被配置为仅在手动请求时启动,而另一台MySQL服务器可能被设置为"启动时自动启动"。

选项1

您只需要ONE MySQL服务器即可运行数百个独立的数据库,因此在备份任何数据库后卸载其他MySQL服务器。然后将数据库恢复到WAMPServer附带的MySQL Server。

选项2

将其中一个MySQL服务器使用的端口从3306更改为3307。然后您可以在同一台机器上运行2台MySQL服务器当然还有两倍的内存开销

如果您更改WAMPServer MySQL Server配置,则必须执行以下操作:

编辑'wamp'bin'mysql'mysqlx.y.z'my.ini文件将每个对端口3306的引用都更改为3307。

编辑PHP.INI文件(使用WAMPManager菜单确保您正在编辑正确的文件)。

更改此行,使PHP知道您已将MySQL移动到另一个端口

mysqli.default_port = 3306

mysqli.default_port = 3307

您可能遇到的问题手动安装MySQL服务器时,通常会将其my.ini或my.cnf放入C'WINDOWS'文件夹结构中。这是一个痛苦的问题,因为根据MySQL查找其ini文件的搜索顺序,my.ini将被您机器上运行的任何MySQL服务器拾取并使用。

如果您的系统是这种情况,您将不得不将该文件移回另一个(非WAMPServer)MySQL Server安装的文件夹结构中。

简而言之在您的系统上只安装一个MySQL Server要简单得多,至少在您对MySQL Server及其操作更加熟悉和经验之前是这样。

您的第二期

2.MySQL发出警告,事件Id 100-"不推荐使用隐式DEFAULT值的TIMESTAMP。请使用--explicit_defaults_for_TIMESTAMP服务器选项

编辑my.ini,并在[wampmysqld]部分中添加此行。

[wampmysqld]
explicit_defaults_for_timestamp

我告诉你一个非常简单但很好的技巧。转到您的数据文件夹(在wamp:wamp->bin->mysql->mysqlx.x.x->data中)。将三个默认文件(performance_schema、test、mysql)保留在该文件夹中,并将所有其他文件移到另一个文件夹中。然后重新启动所有服务。这一次,您注意到图标将变绿。现在,将所有文件夹(而不是文件)移回数据文件夹,注意不要移动文件,只移动文件夹。再次重新启动mysql服务,文件将自动创建,一切都将按预期进行。

已解决

我只是想让大家知道,我不再有这个问题了。

问题是由启用InnoDB引起的。

当我重新安装WampServer时,这个问题就消失了,之后我可以毫无问题地启用InnoDB

我尝试了所有的解决方案,这就是对我有效的解决方案:

  1. 右键单击WAMP图标
  2. 选择MySQL,在菜单中选择"使用3306以外的端口"
  3. 将端口号更改为"3307"

它应该变成绿色。