C++ 二进制日志类型。h:没有这样的文件或目录

C++ 二进制日志类型。h:没有这样的文件或目录,c++,mysql,c,C++,Mysql,C,我当时正在编译一个小的mysql C项目 遇到以下错误: C:\Program Files (x86)\MySQL\MySQL Server 5.7\include/mysql_com.h:22:30: fatal error: binary_log_types.h: No such file or directory. 我在C:驱动器上做了一个dir binary\u log\u types.h/b/s,但没有找到任何这样的binary\u log\u types.h文件 什么是可能的解决

我当时正在编译一个小的mysql C项目 遇到以下错误:

 C:\Program Files (x86)\MySQL\MySQL Server 5.7\include/mysql_com.h:22:30: fatal error: binary_log_types.h: No such file or directory.
我在
C:
驱动器上做了一个
dir binary\u log\u types.h/b/s
,但没有找到任何这样的binary\u log\u types.h文件


什么是可能的解决方法?

以下语句来自:

指示必须使用正确的参数启动mysql服务器

让日志存在

要启用二进制日志,请使用--log bin[=base\u name]选项启动服务器。如果没有给定base\u name值,则默认名称是pid file选项的值(默认情况下是主机的名称)后跟-bin。如果给定了basename,则服务器会将文件写入数据目录,除非为basename指定了前导绝对路径名以指定其他目录。建议您显式指定basename,而不是使用默认主机名;请参阅第B.5.8节“MySQL中的已知问题”“因为这个原因。”


同一个网页上有很多相关信息。

经过一番研究,我发现出于某种原因,mysql 5.7社区安装程序中缺少了两个文件
binary\u log\u funcs.h
binary\u log\u types.h

修复:

1) 从下载MySQL服务器源代码。

2) 从tar档案中提取数据。(我为此使用了Winrar)

3) 转到您的\Download\Location\Here\mysql-5.7.7-rc\mysql-5.7.7-rc\libbinlogevents\export\

4) 从该文件夹复制
二进制日志函数.h
二进制日志类型.h
,然后 将它们粘贴到Path\to\your\mysql\server\include中。

5) 重新生成代码::阻止应用程序。


注意:确保Code::Blocks具有访问C:目录中的文件和文件夹的权限。此外,这可能是一个临时修复,因为我强烈感觉我没有完成一个完整的mysql安装,它应该自动包含这些文件。无论如何,我暂时很高兴:)

刚刚确认MySQL 5.7.9(64位)中也存在此漏洞:

我在Visual Studio 2013 Update 5中编译代码时收到此错误消息,该代码基于与MySQL的通信来将数据存储在数据库中

我的解决方案是sjsam自己答案的变体。转到GitHub MySQL存储库并打开此文件夹/目录:

:

该文件夹中有2个文件:

  • 二进制函数
  • 二进制日志类型
使用文件链接将这两个文件保存到您自己的计算机上(或从文件内容中复制文本,然后将文本保存到与原始文件同名的纯文本文件中),然后将这两个文件放在MySQL Server 5.7\include\文件夹中。根据您的配置,这可以是以下两种情况之一:

C:\ProgramFiles\MySQL\MySQL Server 5.7\include\

C:\ProgramFiles(x86)\MySQL\MySQL Server 5.7\include\


恭喜你,你现在已经解决了你的问题。但是我想知道为什么mysql.com的开发人员没有将这两个文件添加到mysql Community Server 5.7.9安装程序包中…

谢谢您抽出时间。我已经启用了二进制日志记录,但仍然没有解决这个问题。你知道在哪里可以得到
binary\u log\u types.h
文件的副本吗?
C:\Program Files\MySQL\MySQL Server 5.7\include\mysql_com.h(22): fatal error C1083: Cannot open include file: 'binary_log_types.h': No such file or directory`