C# .NET でMySQLデータベースへの接続エラー;System.Net.Sockets.SocketException 対象のコンピューターによって拒否されたため、接続できませんでした。
初めてVisualStudio2017, C# .NET Frameworkを使用します。
一度似たような内容で質問しているのですが、
別のエラーがでてしまい、いろいろ自分で調べやってみたのですが、
解決できなかったので今回もアドバイス頂ければ幸いです。
C#.NETでMySQL Connector/Netを用いてデータベースに接続し、
テーブル内のデータを表示させてたいと考えています。
他の方のやり方を参考にやってみているのですが、
サーバーとの接続にエラーがでてしまい困っております。
まず、ローカルサーバーの場合Hostはlocalhostであっています?
念のためIPアドレスでも試してみたのですが、
そちらでもサーバーへのアクセス出来ないとエラーが出てしまいまいました。
同じ様なエラーが出た方を参考に、
開発側のPCのウイルスソフトを切り、
サーバーのfirewallも切りました。
環境
アプリケーション開発:windows,visual studio 2017, C# .net frameworkを使用
サーバー:上記のwindows上でVirtualBox,vegrantを用いたローカールサーバー(CentOS)を立ち上げMySQLをインストール
仮想サーバーの立ち上げ流れ:
1. VirtualBox, Vagrantをインストール
2. Windows PowerShellを用いてVagrantを起動
※その際の振り当てたIPアドレスでもC#.NETへの接続を試しましたがエラーが出てしまいました。
3. Puttyで仮想サーバーにアクセス
4. MySQLをインストール
5. 作業ユーザー、テーブルを制作
ここまで行ったこと:
基本的に以下のサイトをトレースしました。
http://web.sfc.wide.ad.jp/~tinaba/tutorials/mysql-net/
MySQL Connector/NetはPCに落としただけで
セットアップなどはとくになにも行っておりません。
(他にセットアップが必要な場合は教えて頂けると幸いです。)
VSでFormプロジェクトを作成しMySQL.Dataを参照から追加し、
ボタンの動作を以下で定義しました。
コード:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//サーバー接続
string connstr = "userid=***; password=***; database=***; Host=localhost";
MySqlConnection conn = new MySqlConnection(connstr);
conn.Open();
// データを格納するテーブル作成
DataTable dt = new DataTable();
// SQL文と接続情報を指定し、データアダプタを作成
MySqlDataAdapter da = new MySqlDataAdapter("select * from test1", conn);
// データ取得
da.Fill(dt);
// データ表示
dataGridView1.DataSource = dt;
// 接続の解除
conn.Close();
}
}
}
Error;
SocketException: 対象のコンピューターによって拒否されたため、接続できませんでした。 127.0.0.1:3306