my_bool mysql_change_user(MYSQL *mysql, const char
*user, const char *password, const char *db)
説明
ユーザを変更し、db
で指定されたデータベースを
mysql
で指定された接続のデフォルト(カレント)データベースにします。このデータベースは、その後実行されるクエリで明示的なデータベース指定子のないテーブル参照が行われる際のデフォルトになります。
この関数は、MySQL 3.23.3 で導入されました。
mysql_change_user()
は、指定したユーザが認証されない場合、またはそのユーザがデータベースを使用する権限を持たない場合に、失敗します。この場合、ユーザおよびデータベースは変更されません。
デフォルトデータベースを使用しない場合、db
パラメータを NULL
に設定します。
MySQL 4.0.6
以降、このコマンドは、新しい接続が確立した場合は常に、任意のアクティブなトランザクションの
ROLLBACK
の実行、すべてのテンポラリテーブルのクローズ、ロックされたすべてのテーブルのアンロック、および状態のリセットを行います。この処理は、ユーザが変更されなかった場合も必ず行われます。
戻り値
正常終了した場合は 0。エラーが発生した場合は 0 以外。
エラー
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
データベース名が長すぎる。
例
if (mysql_change_user(&mysql, "user", "password", "new_database")) { fprintf(stderr, "Failed to change user. Error: %s\n", mysql_error(&mysql)); }
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.