25.2.3.3. mysql_change_user()
my_bool mysql_change_user(MYSQL *mysql, const char
*user, const char *password, const char *db)
Description
Changes the user and causes the database specified by
db
to become the default (current) database
on the connection specified by mysql
. In
subsequent queries, this database is the default for table
references that do not include an explicit database specifier.
mysql_change_user()
fails if the connected
user cannot be authenticated or doesn't have permission to use
the database. In this case, the user and database are not
changed
The db
parameter may be set to
NULL
if you don't want to have a default
database.
This command always performs a ROLLBACK
of
any active transactions, closes all temporary tables, unlocks
all locked tables and resets the state as if one had done a
new connect. This happens even if the user didn't change.
Return Values
Zero for success. Non-zero if an error occurred.
Errors
The same that you can get from
mysql_real_connect()
.
-
CR_COMMANDS_OUT_OF_SYNC
Commands were executed in an improper order.
-
CR_SERVER_GONE_ERROR
The MySQL server has gone away.
-
CR_SERVER_LOST
The connection to the server was lost during the query.
-
CR_UNKNOWN_ERROR
An unknown error occurred.
-
ER_UNKNOWN_COM_ERROR
The MySQL server doesn't implement this command (probably
an old server).
-
ER_ACCESS_DENIED_ERROR
The user or password was wrong.
-
ER_BAD_DB_ERROR
The database didn't exist.
-
ER_DBACCESS_DENIED_ERROR
The user did not have access rights to the database.
-
ER_WRONG_DB_NAME
The database name was too long.
Example
if (mysql_change_user(&mysql, "user", "password", "new_database"))
{
fprintf(stderr, "Failed to change user. Error: %s\n",
mysql_error(&mysql));
}