Documentation Home
MySQL 8.0 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 46.9Mb
PDF (A4) - 47.0Mb
PDF (RPM) - 42.3Mb
HTML Download (TGZ) - 10.8Mb
HTML Download (Zip) - 10.9Mb
HTML Download (RPM) - 9.3Mb
Man Pages (TGZ) - 226.1Kb
Man Pages (Zip) - 331.6Kb
Info (Gzip) - 4.2Mb
Info (Zip) - 4.2Mb
Excerpts from this Manual mysql_change_user()

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


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 include no explicit database specifier.

mysql_change_user() fails if the connected user cannot be authenticated or does not have permission to use the database. In this case, the user and database are not changed.

Pass a db parameter of NULL if you do not want to have a default database.

This function resets the session state as if one had done a new connect and reauthenticated. (See Section 28.7.28, “C API Automatic Reconnection Control”.) 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 did not change.

To reset the connection state in a more lightweight manner without changing the user, use mysql_reset_connection().

Return Values

Zero for success. Nonzero if an error occurred.


The same that you can get from mysql_real_connect(), plus:

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