当我启动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
。
我尝试了所有的解决方案,这就是对我有效的解决方案:
- 右键单击WAMP图标
- 选择MySQL,在菜单中选择"使用3306以外的端口"
- 将端口号更改为"3307"
它应该变成绿色。