Powershell からの MySQL データ連携タスクを自動化

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

MySQL ADO.NET Provider

MySQL 互換データベースエンジンを組み込んだパワフルな.NET アプリケーションを短時間・低コストで作成して配布できます。



PowerShell から MySQL に簡単に接続する方法をお探しですか? CData ADO.NET Provider for MySQL は、PowerShell スクリプトの優位性を使い、シンプルで簡単に使えるADO.NET インターフェース を提供します。PowerShell スクリプトで、ADO.NET オブジェクトを使って簡単にMySQL に接続して、同期、自動化、ダウンロードなどが可能!



CData ADO.NET Provider for MySQL は、ADO.NET 標準インターフェースへ統合し、PowerShell のような. NET アプリケーションからMySQL API へのデータ連携を可能にします。このプロバイダーは、MySQL の認証および相互作用を簡単にします。このチュートリアルでは、PowerShell から直接SQL クエリを実行するための、いくつかの一般的なADO.NET オブジェクトの使い方を説明します。

クエリの実行

次の3つのステップに従って create、read、update、およびdelete (CRUD) のデータ連携コマンドを PowerShell からリアルタイムMySQL に実行:

  1. プロバイダーのアセンブリをロード:

    [Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData ADO.NET Provider for MySQL\lib\System.Data.CData.MySQL.dll")
  2. MySQL に接続:

    Server およびPort プロパティがMySQL への接続には必須です。IntegratedSecurity をFALSE に設定した場合、User、Password も必須になります。 オプションで、Database を設定することもできます。Database は設定がない場合すべてのデータベースを使えるようになります。

    パスワード方式によるSSH 接続

    パスワード方式によるSSH接続時に必要なプロパティ一覧を以下に示します。

    • User: MySQL のユーザ
    • Password: MySQL のパスワード
    • Database: MySQL の接続先データベース
    • Server: MySQL のサーバー
    • Port: MySQL のポート
    • UserSSH: "true"
    • SSHAuthMode: "Password"
    • SSHPort: SSH のポート
    • SSHServer: SSH サーバー
    • SSHUser: SSH ユーザー
    • SSHPassword: SSH パスワード

    接続文字列形式では以下のようになります。User=admin;Password=adminpassword;Database=test;Server=mysql-server;Port=3306;UseSSH=true;SSHAuthMode=Password;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHPassword=sshpasswd;

    公開鍵認証方式方式によるSSH 接続

    公開鍵認証によるSSH接続時に必要なプロパティ一覧を以下に示します。

    • User: MySQL のユーザ
    • Password: MySQL のパスワード
    • Database: MySQL の接続先データベース
    • Server: MySQL のサーバー
    • Port: MySQL のポート
    • UserSSH: "true"
    • SSHAuthMode: "Public_Key"
    • SSHClientCertType: キーストアの種類
    • SSHPort: SSH のポート
    • SSHServer: SSH サーバー
    • SSHUser: SSH ユーザー
    • SSHClientCert: 秘密鍵ファイルのパス

    接続文字列形式では以下のようになります。User=admin;Password=adminpassword;Database=test;Server=mysql-server;Port=3306;UseSSH=true;SSHAuthMode=Public_Key;SSHClientCertType=PUBLIC_KEY_FILE;SSHPort=22;SSHServer=ssh-server;SSHUser=root;SSHClientCert=C:\Keys\key.pem;

    $constr = "User=myUser;Password=myPassword;Database=NorthWind;Server=myServer;Port=3306;" $conn= New-Object System.Data.CData.MySQL.MySQLConnection($constr) $conn.Open()
  3. MySQLDataAdapter のインスタンスを生成してSQL クエリを実行し、結果を出力:

    $sql="SELECT ShipName, Freight from Orders" $da= New-Object System.Data.CData.MySQL.MySQLDataAdapter($sql, $conn) $dt= New-Object System.Data.DataTable $da.Fill($dt) $dt.Rows | foreach { Write-Host $_.shipname $_.freight }

MySQL データの更新

$cmd = New-Object System.Data.CData.MySQLCommand("UPDATE Orders SET ShipCountry='USA' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.MySQLParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()

MySQL へのデータの挿入

$cmd = New-Object System.Data.CData.MySQLCommand("UPDATE Orders SET ShipCountry='USA' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.MySQLParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()

MySQL データの削除

$cmd = New-Object System.Data.CData.MySQLCommand("UPDATE Orders SET ShipCountry='USA' WHERE Id = @myId", $conn) $cmd.Parameters.Add(new System.Data.CData.MySQLParameter("myId","10456255-0015501366")) $cmd.ExecuteNonQuery()