「MySQL Connector/NET」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Administrator
119行目: 119行目:
 
* VerifyCA - SSLを使用し、かつ認証局(CA)での検証を行う。ただし証明書の有効性のみを検証し、ホスト名の不一致を許容する。
 
* VerifyCA - SSLを使用し、かつ認証局(CA)での検証を行う。ただし証明書の有効性のみを検証し、ホスト名の不一致を許容する。
 
* VerifyFull - 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(クライアント側)です。
  
 
== 備考 ==
 
== 備考 ==

2012年3月29日 (木) 08:26時点における版

MySQL Connector/NETとは、.NET Frameworkを用いたアプリからMySQLデータベースサーバーに接続するためのADO.NETプロバイダー(ライブラリ)である。

インストール

通常

  • mysql-connector-net-version-noinstall.zip をダウンロードする。
http://www.mysql.com/downloads/connector/net/#downloads


  • ダウンロードしたファイルを展開する。
$ unzip mysql-connector-net-version-noinstall.zip -d mysql-connector-net-version-noinstall


  • 展開したディレクトリの中からmysql.data.dllファイルを探し出し、Monoで作ったアプリのインストールフォルダにコピーする。
$ find . -name mysql.data.dll
./v4/mysql.data.dll
./v2/mysql.data.dll

2012年3月5日時点で最新バージョンとなっていたmysql-connector-net-6.4.4-noinstall.zipの中には、v2/mysql.data.dllとv4/mysql.data.dllの2個あったが、名前から推測するに、たぶん.NET Framework 2.0と4.0用だと思うので、とりあえずv4/mysql.data.dllを入れてみた。

GACに登録しておく場合

Connector/NET コンポーネントを、gacutil コマンドで Global Assembly Cache に登録する :

$ gacutil /i MySql.Data.dll
Installed mysql.data.dll into the gac (/opt/novell/mono/lib/mono/gac)

インストールが完了すれば、Connector/NET コンポーネントとコンパイルされたアプリケーションは以後変更する必要はありません。しかし、アプリケーションをコンパイルする際、-r:MySqlData.dll コマンドライン オプションを使用して Connector/NET コンポーネントを確実に含むようにしてください。

ConnectionString

ConnectionStringの設定例を示す。

ConnectionStringに設定する項目名は宗教上の理由および政治上の理由により、同じ意味の異なる語句が大量に存在しており非常に紛らわしい。最新でもなく全てを網羅しているわけでもないのでMySQL公式サイト上のマニュアルを見るのが一番確実だが現在は英文しか用意されていないという[1]

標準的な設定

MySQLサーバーの設定をいじってポート番号を変えてある場合はポート番号を明示する。 Portを省略するとMySQLデフォルトの3306番ポートが使用される。

Server=サーバーアドレス;Database=データベース名;Uid=ユーザー名;Pwd=パスワード;Port=ポート番号;

接続先サーバーの指定

  • Host
  • Server
  • Data Source
  • DataSource
  • Address
  • Addr
  • Network Address

デフォルト値:localhost

接続先サーバーを指定する。

接続先サーバーに「localhost」が指定されており、かつUNIX上のMonoで動いている場合は、BSDソケットTCP/IP)ではなくUNIXソケットプロセス間通信)を使おうと試みる。

Server=サーバーアドレス;

接続先サーバーをアンパサンド(&)で区切りで複数指定すると、すべてをレプリケーションサーバー(スレーブ)として自動的に負荷分散してくれる。なおMySQLはマスター・スレーブな非同期レプリケーションが大前提であり、アンパサンドで繋ぐ書き方は複数のスレーブサーバーを列挙する書き方なので、こいつに対してINSERT/UPDATE/DELETEなどの書き込みに使ってはいけない。あくまでSELECT専用。別途マスターサーバーを指定したConnectionStringを用意しておくこと。

Server=サーバーアドレス1 & サーバーアドレス2 & サーバーアドレス3;

接続先サーバーのポート番号の指定

  • Port

デフォルト:3306

MySQLサーバーが待ち受けているポート番号を指定する。 この値は接続先がlocalhostでUNIXソケットが使える場合は無視されます。

データベースの指定

  • 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(クライアント側)です。

備考

関連項目

外部リンク