C# + さくらのレンタルサーバー + MySQLをつなぐ
参考画像
とりあえずコード
public static string getDB()
{
// さくらのホスト名
string host = "iiiiii.sakura.ne.jp";
// さくらユーザー名
string user = "iiiiii";
// パスワード
string Spassword = "password";
// SSH接続
var sshClient = new SshClient(host, 22, user, Spassword);
sshClient.Connect();
uint dbPort = 3306;
uint localPort = 3306;
//データベースのデータベースの名前とユーザー名
string dbname = "DBname";
string dbuser = "DBuser";
string dbpassword = "Dpassword" ;
//mysql0000.dbのやつ
string serverName = "mysql1018.db.sakura.ne.jp";
//サーバーフォワーディング
var sshForward = new ForwardedPortLocal("127.0.0.1", localPort, serverName, dbPort);
sshClient.AddForwardedPort(sshForward);
sshForward.Start();
var connectStr = "server=" + "127.0.0.1" + ";";
connectStr += "port=" + dbport + ";";
connectStr += "user=" + DBuser + ";";
connectStr += "password=" + Dpassword + ";";
connectStr += "database=" + dbname + ";";
connectStr += "Pooling = False";
string table = "testtb";
//ここにSQL文を書く
var sql = "SELECT * FROM " + table;
string res = null;
//MySQLサーバー接続
using (var connection = new MySqlConnection(connectStr))
using (var com = new MySqlCommand(sql, connection))
{
connection.Open();
var selectCmd = new MySqlCommand(sql, connection);
// 実行
MySqlDataReader selectResult = selectCmd.ExecuteReader();
// MySqlDataReaderというクラスに結果が入っている
// Read()を呼ぶことで次の行にアクセスする
while (selectResult.Read())
{
var name = selectResult.GetString("name"); // フィールド名でのアクセス
string data = selectResult.GetString(1); // カラムインデックスでのアクセス
if(name != "")
{
//ここでいい感じに処理
res += String.Format("{0}${1}\n", name, data);
}
}
// 結果を閉じる
selectResult.Close();
connection.Close();
sshForward.Stop();
sshClient.Disconnect();
return res;
}
}
となる。頑張ろう
参考URL
ほぼこちらの内容です
https://qiita.com/skuromaku/items/67e46962228fe3cc6d7c
まずはこちらを参考にTeratermで接続したほうがよいかも
https://www.out48.com/archives/2495/