1

我正在创建一个使用 MySQL 数据库的 C++ 应用程序。如果可能,我希望应用程序为自己创建一个帐户。我还没有找到这样做的方法。

每次我移植我的应用程序时,我都会忘记设置顺序。当前的设置顺序需要在 MySQL 中创建一个帐户供应用程序使用。一旦应用程序拥有帐户和权限,它就可以创建数据库并设置表。

此外,这对我的最终用户来说有点烦人。如果应用程序可以执行所有设置,我的应用程序将更易于使用。

在运行应用程序之前,我发现所有示例都首先在 MySQL 中创建用户帐户。说明通常会告诉如何使用 MySQL 命令行应用程序创建帐户。但我希望我的应用程序在 MySQL 中创建自己的帐户。

我正在使用 Visual Studio 2008、C++ 语言和 MySQL 连接器 C++ 1.0.5。平台是 Windows XP 或 Vista。连接器使用与 Java JDBC API 类似的 API。我将接受 Java 或 C++ 中的示例。

顺便说一句,我在使用 ODBC 时遇到了问题,所以这是不可能的。

谢谢。

4

3 回答 3

1

你这里有鸡或蛋的问题。如果没有登录服务器所需的帐户凭据并为您的应用程序创建另一个帐户,则无法创建数据库帐户。

此外,用户在安装/设置期间必须提供数据库帐户凭据是很常见的,即使这很“烦人”。如果您的应用程序依赖于数据库,则应该期望用户必须自己处理数据库服务器和凭据参数。

不幸的是,数据库客户端 (JDBC/ODBC) 和语言 (Java/C++) 与您的困境无关。

如果您的应用程序只需要一个轻量级的内部数据库,也许您应该研究SQLite 嵌入式数据库而不是 MySQL。这将允许您的应用程序数据库自主存在,无需任何用户设置。

于 2009-12-11T21:08:24.673 回答
1

也许您可以将其包含在您的设置中,而不是在您的应用程序中包含帐户创建。当您的设置运行时,它还可以运行所描述的过程来创建或使用帐户。

如果这看起来不令人满意,也许您的设置说明可以详细说明帐户创建过程。

于 2009-12-11T21:14:10.183 回答
1

您可以通过 SQL 查询创建帐户和表以及...一切。

首先,创建一个默认帐户,该帐户具有足够的权限来创建新的用户/表/数据库,但没有足够的权限来烧毁这个地方。

其次,当用户第一次启动您的应用程序时,您的程序在后端登录 MySQL 数据库,并向 MySQL 数据库发送 SQL 查询,为用户生成一个新的用户/表/数据库。

第三,您的应用程序退出默认帐户,并进入新创建的帐户。

如果您执行类似的操作,请务必考虑可能的安全问题。

于 2009-12-11T21:14:50.077 回答