メインメニューを開く

差分

MySQL Connector/NET

5,419 バイト追加, 2012年4月19日 (木) 04:15
[[ConnectionString]]の設定例を示す。
ConnectionStringに設定する項目名は宗教上の理由および政治上の理由により、同じ意味の異なる語句が大量に存在しており非常に紛らわしい。最新でもなく全てを網羅しているわけでもないのでMySQL公式サイト上のマニュアルを見るのが一番確実だが現在は英文しか用意されていないというConnectionStringに設定する項目名は宗教上の理由および政治上の理由により、同じ意味の異なる語句が大量に存在しており非常に紛らわしい。ここに記述してある項目は最新でもなく全てを網羅しているわけでもないのでMySQL公式サイト上のマニュアルを見るのが一番確実である<ref>http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html</ref>。
=== 標準的な設定 ===
</source>
=== 接続先サーバーの指定 接続先サーバーのアドレスを指定する ===
* Host
* Server
</source>
=== 接続先サーバーのポート番号の指定 接続先サーバーのポート番号を指定する ===
* Port
デフォルト:3306
この値は接続先がlocalhostで[[UNIXソケット]]が使える場合は無視されます。
=== データベースの指定 接続プロトコルを指定する ===* Protocol* Connection Protocol* ConnectionProtocolデフォルト:socket 接続に使用するプロトコルを指定する。 設定できる値は以下のとおり。* socket または tcp - BSDソケット(TCP/IP)で接続する。UNIXソケットが使えそうな場合はUNIXソケットで繋ぎに行く。* unix - UNIXソケットで接続する。* pipe - 名前付きパイプで接続する。* memory - MySQL共有メモリで接続する。 === 初期データベースを指定する ===
* Initial Catalog
* Database
接続後は「use データベース名;」というクエリーを実行することで切り替えれる。
=== ユーザー名の指定 ユーザー名を指定する ===
* User Id
* UserID
接続に使用するMySQLアカウントを指定する。
=== パスワードの指定 パスワードを指定する ===
* Password
* pwd
接続に使用するMySQLアカウントのパスワードを指定する。
=== 通信の暗号化 通信の暗号化の有無を指定する(旧) ===
* Encrypt
* UseSSL
MySQL Connector/NET 5.0.3 以降で使えるようになったオプションで、それより古いバージョンでは無視される。
MySQL Connector/NET 6.2.1 以降ではEncrypt ではなく UseSSL を使えとのこと。以降で廃止されたので、このオプションではなくSSL Modeオプションを使えとのこと。 === 通信の暗号化の有無を指定する(新) ===* SSL Mode* SslModeデフォルト:None MySQL Connector/NET 6.2.1 以降で新設された暗号化設定。 設定できる値は以下のとおり。* None - SSLを使用しない。* Preferred - SSLを優先する。接続先MySQLサーバーがSSLをサポートしていない場合は自動的にSSLを使用しないで接続する。* Required - SSLを使用する。接続先MySQLサーバーがSSLをサポートしていない場合は接続エラーとなる。[[オレオレ証明書]]を使う場合に使うのか?。* VerifyCA - SSLを使用し、かつ認証局(CA)での検証を行う。ただし証明書の有効性のみを検証し、ホスト名の不一致を許容する。* VerifyFull - SSLを使用し、かつ認証局(CA)での検証を行う。ホストが一致しない場合は接続エラーとなる。 === 接続がタイムアウトするまでの時間を指定する ===* Connect Timeout* Connection Timeout* ConnectionTimeoutデフォルト:15 MySQLサーバーへの接続を試み、タイムアウトするまでの時間(秒数)を設定する。 === コマンドがタイムアウトするまでの時間を指定する ===* Default Command Timeout* DefaultCommandTimeoutデフォルト:30 MySQL Connector/NET 5.1.4 で追加されたオプション。MySQLサーバーとの接続が完了し、コマンド(クエリー)を発行してからここで設定した時間(秒数)が経っても応答がない場合はエラーを発生させる。あくまでデフォルト値なのでコマンド(クエリー)発行時にコマンドタイムアウト時間を明示した場合はそちらが優先される。 === プリペアド・ステートメントの実行場所を指定する ===* Ignore Prepare* IgnorePrepareデフォルト:true プリペアド・ステートメントの構文解析をサーバー側(MySQLサーバー)で行うか、クライアント側(MySQL Connecter/NET)で行うかを設定します。falseの場合はサーバー側で行い、trueの場合はクライアント側で行います。デフォルトはtrue(クライアント側)です。 === 文字コードを指定する ===* CharSet* Character Set* CharacterSetデフォルト:なし MySQLサーバーに送信する全てのクエリーに使用する文字コードを指定する。結果はデータベース内の文字コード(テーブルごとに設定された文字コード)で帰ってくるので注意。<source lang="text">CharSet=UTF8;</source> MySQLを何も考えないでインストール直後の設定で運用し、デフォルトでlatin1が設定され、後々大変なことになる現場を大量に見てきたので文字コードには注意すること。MySQLで一番確実な文字コードは「Binary」(MediaWikiのデフォルト値)だが、[[Dapper]]などから使う場合によろしくないので普通はUTF8くらいが良いかもしれない。 === コネクション・プールの有無を指定する ===* Poolingデフォルト:true コネクションプールはデフォルトで有効となっている。 コネクションプールが有効な場合は、MySqlConnectionオブジェクトを生成する際に、プールしている接続の中から適切なものが引き出され、使えそうな接続が無ければ新規に作られる。 === コネクション・プールの最小値を指定する ===* Minimum Pool Size* Min Pool Size* MinimumPoolSizeデフォルト:0 以下、[[Oracle]]と同じであれば、負荷が低いときはこの値に向かい接続を切り、無駄な接続維持をしない。また、アプリ起動直後などでこの値よりプールしている接続少ないは特に何もしないで増えるのを待つ。たとえばこの値が10に設定されていると10になるまで極力切断せずにプールし続けようとする。 ソースも見ていないし、実際に試してもいないので、実際のところ本当にそうなのかは不明。 === コネクション・プールの最大数を指定する ===* Maximum Pool Size* Max Pool Size* maximumpoolsizeデフォルト:100 Oracleと同じであれば、接続数が最大数に達している状態では新規接続ができなくなる。高負荷でサーバーが吹っ飛ぶ(応答すらしなくなる)のを防止するための設定なので大きくすればいいというものではない。 ソースも見ていないし、実際に試してもいないので、実際のところ本当にそうなのかは不明。
== 備考 ==
== 関連項目 ==
* [[Dapper]]
== 参考文献 ==
<references/>
== 外部リンク ==
匿名利用者