PowerShell から Connector/NET で MySQL を操作する

by kusakari 29. 1月 2010 20:40

前回、PowerShell から ODBC 経由で MySQL に接続しました。今回は Connector/NET を使用して PowerShell から MySQL に接続してみたいと思います。

 

環境は下記の通りです。

  • PowerShell 2.0
  • MySQL 5.1.42 x64
  • Connector/NET 6.2.2

 

Connector/NET のダウンロードは下記のURLから行えます。
http://dev.mysql.com/downloads/connector/net/

 

今回ダウンロードしたのは、下記の内容等になります。

  • Connector/NET 6.2.2   Windows (x86, 32-bit), ZIP Archive

 

 

ダウンロードしたZIPを解凍して出来た、mysql.data.msiファイルを実行してインストーラーを下図のような流れで走らせます。
※今回はデフォルト設定でインストールしています。
2010129_19618_754 2010129_19631_755 2010129_19652_756 2010129_19728_757

 

 

インストール終了後、下記のパスに「MySql.Data.dll」のdllファイルが存在することを確認します。
C:\Program Files (x86)\MySQL\MySQL Connector Net 6.2.2\Assemblies
2010129_20137_759 
※今回は、「MySql.Data.dll」ファイルを「C:\Temp」フォルダにコピーして利用しています。

 

 

 

■DLLのロード
DLLをロードするには下記のような感じでコマンドを入力します。

[void][System.Reflection.Assembly]::LoadFile("C:\Temp\MySql.Data.dll")

 

■MySqlConnection の作成
MySql.Data.MysqlClient.MySqlConnection を作成します。

$conn = New-Object MySql.Data.MysqlClient.MySqlConnection("userid=<MySQLに接続するユーザー名>;password=<パスワード>;Host=<MySQLをインストールしてあるPC名>;database=<接続するデータベース名>")

 

■MySqlCommand の作成
MySql.Data.MySqlClient.MySqlCommand を作成してSQL文を設定します。

 

 

 

 

■サンプル1
下記のサンプルでは、ローカルのMySQLに存在するDBの一覧を表示しています。

[void][System.Reflection.Assembly]::LoadFile("C:\Temp\MySql.Data.dll")
$connStr = "("userid=<MySQLに接続するユーザー名>;password=<パスワード>;host=localhost";
$cmd = "SHOW DATABASES"

$conn = New-Object MySql.Data.MysqlClient.MySqlConnection($connStr)
$sqlCmd = New-Object MySql.Data.MySqlClient.MySqlCommand($cmd, $conn)
$conn.Open()
$reader = $sqlCmd.ExecuteReader();

while($reader.Read()) {
    write ("{0}" -f $reader[0])
}

$sqlCmd.Dispose()
$conn.Close()
$conn.Dispose()

 

■サンプル2
下記のサンプルでは、ローカルのMySQLにhogehogeという名前のDBを作成しています。

[void][System.Reflection.Assembly]::LoadFile("C:\Temp\MySql.Data.dll")
$connStr = "userid=<MySQLに接続するユーザー名>;password=<パスワード>;host=localhost";
$cmd = "CREATE DATABASE hogehoge"

$conn = New-Object MySql.Data.MysqlClient.MySqlConnection($connStr)
$sqlCmd = New-Object MySql.Data.MySqlClient.MySqlCommand($cmd, $conn)
$conn.Open()
$sqlCmd.ExecuteNonQuery() | Out-Null

$sqlCmd.Dispose()
$conn.Close()
$conn.Dispose()

 

サンプルについては例外処理を省略してあります。

コメント

2010/06/19 17:19:49 #

Junichi Anno

素晴らしい記事をありがとうございます!参考になりました!

Junichi Anno 日本 | 返信

コメントを書く


(アイコンを表示しますか Gravatar )

  Country flag

biuquote
  • コメント
  • プレビュー
Loading



Calendar

<<  7月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

View posts in large calendar

RecentComments

Comment RSS