Documentation Home

5.4.3 mysql_change_user()

my_bool
mysql_change_user(MYSQL *mysql,
                  const char *user,
                  const char *password,
                  const char *db)

描述

更改用户并使 指定的数据库 db成为 指定的连接上的默认(当前)数据库mysql。在后续查询中,此数据库是不包含显式数据库说明符的表引用的默认值。

mysql_change_user()如果连接的用户无法通过身份验证或没有使用数据库的权限,则失败。在这种情况下,用户和数据库不会更改。

如果您不想拥有默认数据库,请 传递一个db参数 。NULL

此函数重置会话状态,就好像已经完成了新的连接并重新验证一样。(请参阅 第 3.6.6 节,“自动重新连接控制”。)它始终执行 ROLLBACK任何活动事务,关闭并删除所有临时表,并解锁所有锁定的表。它将会话系统变量重置为相应的全局系统变量的值,释放准备好的语句,关闭 HANDLER变量,并释放使用获得的锁GET_LOCK()。即使用户没有改变,这些影响也会发生。

要在不更改用户的情况下以更轻量级的方式重置连接状态,请使用 mysql_reset_connection().

返回值

零成功。如果发生错误,则非零。

错误

与您可以从 获得的相同 mysql_real_connect(),加上:

例子

if (mysql_change_user(&mysql, "user", "password", "new_database"))
{
   fprintf(stderr, "Failed to change user.  Error: %s\n",
           mysql_error(&mysql));
}