int mysql_options(MYSQL *mysql, enum mysql_option
        option, const char *arg)
      
説明
それは、余分な接続オプションをセットし、接続のための行動に影響を与えるために 使うことができます。幾つかのオプションをセットするために、この機能を何回でも呼び出すことができます。
        mysql_options()はmysql_init()の後およびmysql_connect()もしくはmysql_real_connect()の前に呼び出されるべきです。
      
        option引数は、セットしたいオプションです。arg引数はそのオプションのための値です。オプションが整数である場合、argはその整数の値を指し示すべきです。
      
可能なオプション値:
| オプション | アーギュメント型 | ファンクション | 
| MYSQL_INIT_COMMAND | char * | サーバに接続する際実行するコマンド。再接続すると、自動的に再実行されます。 | 
| MYSQL_OPT_COMPRESS | 使用しない | 圧縮されたクライアント/サーバプロトコルを使用。 | 
| MYSQL_OPT_CONNECT_TIMEOUT | unsigned int * | 接続タイムアウトまで秒読み。 | 
| MYSQL_OPT_GUESS_CONNECTION | 使用しない | libmysqldに対してリンクされたアプリケーションに対して、これは、ライブラリが埋込サーバを使うべきか、遠隔サーバを使うべきか憶測することを許します。「Guess」は、ホスト名がセットされたが、これがlocalhostでない場合、遠隔サーバを使うことを意味します。この行動はデフォルトです。MYSQL_OPT_USE_EMBEDDED_CONNECTIONおよびMYSQL_OPT_USE_REMOTE_CONNECTIONはそれを無効にするのに使うことができます。このオプションは、libmysqlclientに対してリンクされたアプリケーションの場合、無視されます。 | 
| MYSQL_OPT_LOCAL_INFILE | ユニットに対するオプションポインター | ポインターが附与されない場合もしくは unsigned
                int !=
                0を指さす場合、コマンドLOAD
                LOCAL INFILEは有効です。 | 
| MYSQL_OPT_NAMED_PIPE | 使用しない | NT上のMySQLサーバに接続する指定パイプを使用してください。 | 
| MYSQL_OPT_PROTOCOL | unsigned int * | 使用するプロトコルの種類。 mysql.hで定義されmysql_protocol_typeのEナンバー値のうちの1つであるべきです。 | 
| MYSQL_OPT_READ_TIMEOUT | unsigned int * | サーバからの読み込みタイムアウト(TCP/IPコネクションまたはMySQL
                5.1.12以前のWindowsでのみ使用できます)。このオプションを使用すると、最後の接続を10分のTCP/IP Close_Wait_Timeout値より早期に検出することができます。 | 
| MYSQL_OPT_RECONNECT | my_bool * | は、接続が失われたと判明した場合、は、サーバへの自動再接続を有効か無効にします。再接続は初期設定によってオフになっていますが、このオプションは再接続行動を明確にセットする方法を提供します。 | 
| MYSQL_OPT_SET_CLIENT_IP | char * | libmysqldに対して
                (認証サポートを使って編集されたlibmysqld利用して)リンクされたアプリケーションの場合、これは、ユーザーは認証を目的に、(ストリングとして規定された)規定IPアドレスから接続したと思われることを意味します。このオプションは、libmysqlclientに対してリンクされたアプリケーションの場合、無視されます。 | 
| MYSQL_OPT_SSL_VERIFY_SERVER_CERT | my_bool * | は、サーバに接続するとき使用したホスト名に対する証明の中に登録されたサーバの固有名の認証を有効化したり、無効化したりします。ミスマッチがあった場合、接続は拒絶されます。この機能は、man-in-the-middleアタックを防止するために使用することができます。認証は初期設定では無効になっています。MySQL 5.1.11に追加。 | 
| MYSQL_OPT_USE_EMBEDDED_CONNECTION | 使用しない | libmysqldに対してリンクされたアプリケーションの場合、これは、接続に埋込サーバを使用することを強要します。このオプションは、libmysqlclientに対してリンクされたアプリケーションの場合、無視されます。 | 
| MYSQL_OPT_USE_EMBEDDED_CONNECTION | 使用しない | libmysqldに対してリンクされたアプリケーションの場合、これは、接続に遠隔サーバを使用することを強要します。このオプションは、libmysqlclientに対してリンクされたアプリケーションの場合、無視されます。 | 
| MYSQL_OPT_USE_RESULT | 使用しない | このオプションは使用されません。 | 
| MYSQL_OPT_WRITE_TIMEOUT | unsigned int * | (現在、TCP/IP接続上のWindowsでのみ有効な)サーバへの書き込みに対するタイムアウト。 | 
| MYSQL_READ_DEFAULT_FILE | char * | my.cnfから行う代わりに、指定オプションファイルからオプションを読み取ってくさださい。 | 
| MYSQL_READ_DEFAULT_GROUP | char * | 指定グループ、 my.cnfまたはMYSQL_READ_DEFAULT_FILEを使って規定したファイルからオプションを読み取ってください。 | 
| MYSQL_REPORT_DATA_TRUNCATION | my_bool * | MYSQL_BIND.errorを経由して行う準備されたステートメントに対するデータ・トランランケーションエラーの報告を有効かしたり、無効化します。初期設定:無効化。) | 
| MYSQL_SECURE_AUTH | my_bool* | MySQL 4.1.1およびそれより新しいバージョンのMySQLに使用されているパスワードバッシングをサポートしていないサーバへの接続の可否。 | 
| MYSQL_SET_CHARSET_DIR | char* | 文字セットの定義ファイルを含むダイレクトリーに対するパスネーム。 | 
| MYSQL_SET_CHARSET_NAME | char* | デフォルト文字セットとして使用すべき文字セットの名称。 | 
| MYSQL_SHARED_MEMORY_BASE_NAME | char* | サーバとのコミュニケーションに使用すべ共有メモリオブジェクトの名称。接続したい mysqldサーバのために使用したオプション--shared-memory-base-nameと同じにすべきです。 | 
        clientグループは、MYSQL_READ_DEFAULT_FILEまたはMYSQL_READ_DEFAULT_GROUPを使う場合、常に読み込まれることにご注目ください。
      
オプションファイル内の規定れたグループには、以下のオプションを含めることができます:
| オプション | 摘要 | 
| connect-timeout | 接続タイムアウト(秒)。Linux上で、このタイムアウトはサーバから最初の答えを待つためにも使います。 | 
| compress | 圧縮したクライアント/サーバプロトコルを使ってください。 | 
| database | 接続コマンドの中に規定されなかった場合、このデータベースに接続してください。 | 
| debug | デバッグオプション。 | 
| disable-local-infile | LOAD DATA LOCALの使用が無効。 | 
| host | デフォルトホストネーム。 | 
| init-command | MySQLサーバに接続する時実行すべきコマンド。再接続するとき、自動的に再実行されます。 | 
| interactive-timeout | CLIENT_INTERACTIVEをmysql_real_connect()に規定すると同じように。項23.2.3.52. 「mysql_real_connect()」参照。 | 
| local-infile[=(0|1)] | 引数がないか、引数!= 0の場合、 LOAD DATA
                LOCALの使用を有効にする。 | 
| max_allowed_packet | サーバから読み取ることができるパケットの最大サイズ。 | 
| multi-results | マルチステートメントまたは記憶された手順の実行からマルチ結果セットを取得することを許す。 | 
| multi-statements | クライアントが、マルチステートメントを(‘ ;’によって仕切られた)シングルストリングの中に送ることを許す。 | 
| password | デフォルトパスワード。 | 
| pipe | NT上のMySQLサーバに接続するため、指定パイプを使ってください。 | 
| protocol={TCP|SOCKET|PIPE|MEMORY} | サーバに接続するとき使用すべきプロトコル。 | 
| port | デフォルトポートナンバー。 | 
| return-found-rows | UPDATEを使うとき、更新された列の代わりに見つかった列を戻すようmysql_info()に告げてください。 | 
| shared-memory-base-name= | サーバに接続するとき使用すべき共有メモリー(デフォルトは"MYSQL")。 | 
| socket | デフォルトソケットファイル。 | 
| user | デフォルトユーザー。 | 
        timeoutはconnect-timeoutに置き換えられましたが、timeoutは、下位互換性について、まだMySQL
        5.1.15-betaによってサポートされている点にご注目ください。
      
オプションファイルの明細については、項3.3.2. 「オプションファイルの使用」をご参照ください。
戻り値
成功のためのゼロ。未知のオプションを使う場合、非ゼロ。
例
MYSQL mysql;
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_OPT_COMPRESS,0);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"odbc");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\n",
          mysql_error(&mysql));
}
        このコードは、クライアントに圧縮されたクライアント/サーバプロトコルを使い、my.cnfファイル中にあるodbcセクションから追加オプションを読み取ることを求めるものです。
      

