MySQL.RU .:. Одобрено лучшими российскими программистами

Справочное руководство по MySQL

8.4.3.6 mysql_change_user()

8.4.3.6 mysql_change_user()

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

8.4.3.7 Описание

Изменяет пользователя и устанавливает базу данных, указанную в аргументе db в качестве текущей по базы данных для соединения, заданного в аргументе mysql. В последующих запросах эта база данных является текущей по умолчанию для табличных ссылок, которые не содержат явного указателя базы данных.

Эта функция была введена в версию MySQL 3.23.3.

Функция mysql_change_user() не выполняется, если подключенный пользователь не может быть аутентифицирован или если он не имеет разрешения на использование этой базы данных. В таком случае данный пользователь и база данных не изменяются.

Параметр db может быть установлен в NULL, если база данных по умолчанию не нужна.

8.4.3.8 Возвращаемые значения

Нуль при успешном выполнении. Ненулевая величина, если возникла ошибка.

8.4.3.9 Ошибки

Те же, что и для mysql_real_connect().

CR_COMMANDS_OUT_OF_SYNC
Команды были выполнены в ненадлежащем порядке.
CR_SERVER_GONE_ERROR
Сервер MySQL неожиданно завершил работу.
CR_SERVER_LOST
Соединение с сервером прервалось в процессе данного запроса.
CR_UNKNOWN_ERROR
Произошла неизвестная ошибка.
ER_UNKNOWN_COM_ERROR
Сервер MySQL не обеспечивает выполнение этой команды (возможно, старая версия сервера)
ER_ACCESS_DENIED_ERROR
Пользователь или пароль ошибочны.
ER_BAD_DB_ERROR
Данная база данных не существует.
ER_DBACCESS_DENIED_ERROR
Данный пользователь не имеет прав доступа к этой базе данных.
ER_WRONG_DB_NAME
Имя базы данных было слишком длинным.

8.4.3.10 Пример

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