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 resets the state as if one had done a new connect.
(See Section 22.9.12, “Controlling Automatic Reconnection Behavior”.) It always performs a
ROLLBACK
of
any active transactions, closes and drops all temporary tables,
and unlocks all locked tables. Session system variables are
reset to the values of the corresponding global system
variables. Prepared statements are released and
HANDLER
variables are closed.
Locks acquired with GET_LOCK()
are released. These effects occur even if the user didn't
change.
Return Values
Zero for success. Nonzero if an error occurred.
Errors
The same that you can get from
mysql_real_connect()
.
Commands were executed in an improper order.
The MySQL server has gone away.
The connection to the server was lost during the query.
An unknown error occurred.
The MySQL server doesn't implement this command (probably an old server).
The user or password was wrong.
The database didn't exist.
The user did not have access rights to the database.
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)); }