「MySQL Connector/NET」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
1行目: 1行目:
'''MySQL Connector/NET'''とは、[[.NET Framework]]を用いたアプリから[[MySQL]]データベースサーバーに接続するためのADO.NETプロバイダー(ライブラリ)である。
+
'''MySQL Connector/NET'''とは、.NETアプリからMySQLデータベースサーバーに接続するためのADO.NETプロバイダである。
  
 
== インストール ==
 
== インストール ==
33行目: 33行目:
 
[[ConnectionString]]の設定例を示す。
 
[[ConnectionString]]の設定例を示す。
  
ConnectionStringに設定する項目名は宗教上の理由および政治上の理由により、同じ意味の異なる語句が大量に存在しており非常に紛らわしい。ここに記述してある項目は最新でもなく全てを網羅しているわけでもないのでMySQL公式サイト上のマニュアルを見るのが一番確実である<ref>http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html</ref>。
+
ConnectionStringに設定する項目名は宗教上の理由および政治上の理由により、同じ意味の異なる語句が大量に存在しており非常に紛らわしい。最新でもなく全てを網羅しているわけでもないのでMySQL公式サイト上のマニュアルを見るのが一番確実だが現在は英文しか用意されていないという<ref>http://dev.mysql.com/doc/refman/5.1/en/connector-net-connection-options.html</ref>。
  
 
=== 標準的な設定 ===
 
=== 標準的な設定 ===
42行目: 42行目:
 
</source>
 
</source>
  
=== 接続先サーバーのアドレスを指定する ===
+
=== 接続先サーバーの指定 ===
 
* Host
 
* Host
 
* Server
 
* Server
50行目: 50行目:
 
* Addr
 
* Addr
 
* Network Address
 
* Network Address
デフォルト値:localhost
+
デフォルト値は「localhost」。
  
接続先サーバーを指定する。
+
localhostが指定されており、かつ[[UNIX]]上の[[Mono]]で動いている場合は、[[BSDソケット]]([[TCP/IP]])ではなく[[UNIXソケット]]([[プロセス間通信]])を使おうと試みる。
 
 
接続先サーバーに「localhost」が指定されており、かつ[[UNIX]]上の[[Mono]]で動いている場合は、[[BSDソケット]]([[TCP/IP]])ではなく[[UNIXソケット]]([[プロセス間通信]])を使おうと試みる。
 
 
<source lang="text">
 
<source lang="text">
 
Server=サーバーアドレス;
 
Server=サーバーアドレス;
 
</source>
 
</source>
  
接続先サーバーをアンパサンド(&)で区切りで複数指定すると、すべてをレプリケーションサーバー(スレーブ)として自動的に負荷分散してくれる。なおMySQLはマスター・スレーブな非同期レプリケーションが大前提であり、アンパサンドで繋ぐ書き方は複数のスレーブサーバーを列挙する書き方なので、こいつに対してINSERT/UPDATE/DELETEなどの書き込みに使ってはいけない。あくまでSELECT専用。別途マスターサーバーを指定した[[ConnectionString]]を用意しておくこと。
+
複数のレプリケーションサーバーを指定する場合は、接続先サーバーをアンパサンド(&)で区切りで指定すると自動的に分散してくれる。なおMySQLはマスター・スレーブな非同期レプリケーションが大前提であり、アンパサンドで繋ぐ書き方は複数のスレーブサーバーを列挙する書き方なので、こいつに対してINSERT/UPDATE/DELETEなどの書き込みに使ってはいけない。あくまでSELECT専用。
 
<source lang="text">
 
<source lang="text">
 
Server=サーバーアドレス1 & サーバーアドレス2 & サーバーアドレス3;  
 
Server=サーバーアドレス1 & サーバーアドレス2 & サーバーアドレス3;  
 
</source>
 
</source>
 
=== 接続先サーバーのポート番号を指定する ===
 
* Port
 
デフォルト:3306
 
 
MySQLサーバーが待ち受けているポート番号を指定する。
 
この値は接続先がlocalhostで[[UNIXソケット]]が使える場合は無視されます。
 
 
=== 接続プロトコルを指定する ===
 
* Protocol
 
* Connection Protocol
 
* ConnectionProtocol
 
デフォルト:socket
 
 
接続に使用するプロトコルを指定する。
 
 
設定できる値は以下のとおり。
 
* socket または tcp - BSDソケット(TCP/IP)で接続する。UNIXソケットが使えそうな場合はUNIXソケットで繋ぎに行く。
 
* unix - UNIXソケットで接続する。
 
* pipe - 名前付きパイプで接続する。
 
* memory - MySQL共有メモリで接続する。
 
 
=== 初期データベースを指定する ===
 
* Initial Catalog
 
* Database
 
デフォルト:mysql
 
 
初期状態で使用するデータベース名を指定する。
 
MySQLのデータベース名は大文字小文字を区別するので注意すること。
 
接続後は「use データベース名;」というクエリーを実行することで切り替えれる。
 
 
=== ユーザー名を指定する ===
 
* User Id
 
* UserID
 
* Username
 
* Uid
 
* User name
 
* User
 
デフォルト:なし
 
 
接続に使用するMySQLアカウントを指定する。
 
 
=== パスワードを指定する ===
 
* Password
 
* pwd
 
デフォルト:なし
 
 
接続に使用するMySQLアカウントのパスワードを指定する。
 
 
=== 通信の暗号化の有無を指定する(旧) ===
 
* Encrypt
 
* UseSSL
 
デフォルト:false
 
 
MySQL Connector/NET 5.0.3 以降で使えるようになったオプションで、それより古いバージョンでは無視される。
 
MySQL Connector/NET 6.2.1 以降で廃止されたので、このオプションではなく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と同じであれば、接続数が最大数に達している状態では新規接続ができなくなる。高負荷でサーバーが吹っ飛ぶ(応答すらしなくなる)のを防止するための設定なので大きくすればいいというものではない。
 
 
ソースも見ていないし、実際に試してもいないので、実際のところ本当にそうなのかは不明。
 
  
 
== 備考 ==
 
== 備考 ==
203行目: 66行目:
 
== 関連項目 ==
 
== 関連項目 ==
 
* [[Dapper]]
 
* [[Dapper]]
== 参考文献 ==
 
<references/>
 
  
 
== 外部リンク ==
 
== 外部リンク ==

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: