
VisualBasic2008 で外部のサーバーにあるMySQLに接続できません。
Cnn.Open()の所で、こんなエラーがでます。
Unable to connect to any of the specified MySQL hosts.
MysqlTest.vshost.exe Error: 0 : Unable to connect to any of the specified MySQL hosts.
'MySql.Data.MySqlClient.MySqlException' の初回例外が MySql.Data.dll で発生しました。
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004~
~~
PC内にあるMySQLには接続できるんですが。
外部のサーバーのMySQLには接続できないのでしょうか。
-------コード------------------
Dim sqlStr As String = "SELECT * FROM allitem"
Dim CnnStr As String = "server=xxxxxxxxxxx.com:3306;database=PGTESTDB;User Id=pgtestuser;Password=xxxxxx"
Dim Cnn As MySqlConnection = New MySqlConnection
Cnn = New MySqlConnection(CnnStr)
Cnn.Open()
No.5ベストアンサー
- 回答日時:
まず,MySqlConnectionStringBuilderはMySqlConnectionで利用するためのConnectionStringを,
各種プロパティを設定することで作っていくためのクラスです。
そして,PropertyGridは,対話的にインスタンスのプロパティを設定していくことができるコントロールです。
今回のものは,これらを組み合わせて,ConnectionStringを対話的に作成するためのものになります。
Server, User Id, Passwordなどを入力して,対象サーバーに接続できる文字列を作って,
間違いの無いConnectionStringを作れるかどうか確認してみるのが目的です。
ただ,何度も書いていますが,CLI,つまりはmysqlコマンドから接続できていますか。
先にも書きましたが,エラーメッセージが出る状況は,
サーバーが存在しなかったり,ファイアウォールで接続を拒否された時のものです。
MySqlConnectionで接続する前に,mysqlコマンドで接続できることを確認した方がよいですよ。
この回答への補足
失礼しました、WinXPコマンドプロンプトから下記で接続でき、SHOW DATABASES;で中を確認できます。
またWinXP「管理ツール」の「データソース(ODBC)」からも接続に成功します。
サーバー屋さんにも確認し、「何ら規制はかけてないので、VB2008側の問題だ」と言われてます。
VB2008についてはほとんど初心者程度です。
何とかよろしくお願いいたします。
コマンドプロンプトで-----------------
mysql -h xxxxx.com -u yyyyyy -p
Enter password: zzzzz
貴殿の書かれてたことがやっとどうにか理解でき、やってみたところ下記のエラーが出ました。
Authentication with old password no longer supported. use 4.1 style passwords
検索してみたら、ここに詳しくのってました、ターゲットのMySQLはver5.1.73です。
http://d.hatena.ne.jp/hilapon/20131204/1386151837
説明にある通り、下記実行してみたら、接続できるようになりました。
set session old_passwords = 0;
set password for 'xxxxx'@'%' = password('yyyyyyyy');
色々な勉強になり、知識も増えました。
本当にありがとうございました。
感謝感謝!!!
他の皆様もありがとうございました。感謝しております。
No.4
- 回答日時:
ついつい慣れているC#で書いてしまいましたので,VBに直しておきます。
PropertyGridとButtonを配置して,Form1.vbに以下のコードを記述します。
# ついでに,Close()をClone()と間違えていた部分を修正しています。
Private _mscsb As New MySql.Data.MySqlClient.MySqlConnectionStringBuilder
Protected Overrides Sub OnLoad(e As EventArgs)
PropertyGrid1.SelectedObject = _mscsb
MyBase.OnLoad(e)
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim conn As MySql.Data.MySqlClient.MySqlConnection = Nothing
Try
conn = New MySql.Data.MySqlClient.MySqlConnection(_mscsb.ConnectionString)
conn.Open()
If conn.Ping() Then
MessageBox.Show(Me, "Ping 成功")
Else
MessageBox.Show(Me, "Ping 失敗")
End If
Catch ex As Exception
MessageBox.Show(Me, ex.Message, ex.GetType().Name)
Finally
If conn IsNot Nothing Then
Try
conn.Close()
Catch
End Try
Try
Dim disposable As IDisposable = conn
disposable.Dispose()
Catch
End Try
conn = Nothing
End If
End Try
End Sub
ただ,根本的な部分で,CLIで繋げることができるか,というのは重要です。
CLIでなくても,例えばMySql Workbenchで繋げることができていなければ,もっと根本の問題になります。
No.3
- 回答日時:
えーっと,CLIでの接続はできるんですよね。
WinForms アプリケーションを1つ作成し,PropertyGridとButtonを配置し,
NuGetコンソールから Install-Package MySql.Dataして,Form1.csに,
private MySql.Data.MySqlClient.MySqlConnectionStringBuilder _mscsb;
protected override void OnLoad (EventArgs e)
{
_mscsb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder();
propertyGrid1.SelectedObject = _mscsb;
base.OnLoad(e);
}
private void button1_Click (object sender, EventArgs e)
{
MySql.Data.MySqlClient.MySqlConnection conn = null;
try
{
conn = new MySql.Data.MySqlClient.MySqlConnection(_mscsb.ConnectionString);
conn.Open();
if (conn.Ping())
{
MessageBox.Show(this, "Ping 成功");
}
else
{
MessageBox.Show(this, "Ping 失敗");
}
}
catch (Exception ex)
{
MessageBox.Show(this, ex.Message, ex.GetType().Name);
}
finally
{
if (conn != null)
{
try
{
conn.Clone();
}
catch { }
try
{
((IDisposable)conn).Dispose();
}
catch { }
}
}
}
のように書いて,ConnectionStringを色々調整してみるとよいかもしれません。
ちなみに,
Unable to connect to any of the specified MySQL hosts.
は,Server (host) に記述したマシンにMySQLが入っていない等,そもそもの接続ができない状態の場合に発生するようです。
No.2
- 回答日時:
> PC内にあるMySQLには接続できるんですが
Windowsですか。
> 外部のサーバー
linux/unixでしょうか。
ちょっと気になる点は
> database=PGTESTDB
大文字?
Windowsだと多分大文字小文字の区別はしてないと思いますが、linux/unixでは区別する設定になっていると思います。
http://d.hatena.ne.jp/wd3ie/20110309/1299647373
http://b.0218.jp/20121014022533.html
No.1
- 回答日時:
を読むと,ポートの指定はPort=という形で別途指定するようになっています。
なので,
Server=xxxxxxxxxxx.com;database=PGTESTDB;User Id=pgtestuser;Password=xxxxxx
というConnection Stringに変更してみてはどうでしょうか。
この回答への補足
下記どれでも結果は変わらず、つながりません。
困りました。
Dim CnnStr As String = "Server=xxxxxxx.com;database=PGTESTDB;User Id=pgtestuser;Password=xxxxx"
Dim CnnStr As String = "Server=xxxxxxx.com;Port=3306;database=PGTESTDB;User Id=pgtestuser;Password=xxxxx"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
- MySQL MySQLのテーブル作成でハイフン - は使用できないのでしょうか? 2 2022/10/21 16:50
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
- MySQL 何にかが違うから エラーなんでしょうね! 2 2022/09/18 05:28
- Excel(エクセル) エクセル 値をコピペした時に、条件付き書式で塗られた背景色もペーストさせる 2 2023/04/05 17:21
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポリシー等で特定のサイトだけ...
-
VPN接続時のドメイン参加について
-
ソケットインタフェースに関して
-
sshでは接続できるのにsftpは接...
-
VPN接続確立後、Pingが通らない
-
FTPサーバに外部から接続で...
-
LANとダイアルアップの同時接続
-
OPERAでの同時ダウンロード数の...
-
グローバルIPの先のプライベー...
-
リモートデスクトップと動的IP...
-
ポケットWi-Fiに同時に複数端末...
-
macです。サーバに接続できません…
-
Sendmail→qmail移行設定方法
-
外部からの接続
-
LANに接続せずにtcpClientを用...
-
FireFoxを社内で使用する場合の...
-
サーバ移行に伴うメール送受信...
-
VB2008 で外部のMySQLに接続で...
-
インターネット接続制限の解除方法
-
8000番や8080番のポー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポリシー等で特定のサイトだけ...
-
the onion rooter tor接続
-
リモートデスクトップと動的IP...
-
特定のクライアントPCからssh接...
-
VPN接続時のドメイン参加について
-
sshでは接続できるのにsftpは接...
-
サンダーバードメールが送受信...
-
TERATERMだけSSH接続できない
-
VPN接続確立後、Pingが通らない
-
【ソケット通信】TIME_WAITを0...
-
iphoneを遠隔操作したい
-
Win9xのデュアルホームの問題(...
-
SonicWALL DMZではまっています。
-
社内LANからのFTPが繋がりません
-
CiscoルータへのTELNET接続がで...
-
macです。サーバに接続できません…
-
ネットワークの最大接続数
-
FireFoxを社内で使用する場合の...
-
VBからネットワーク接続の制御(...
-
事務所で5台のうち1台だけネ...
おすすめ情報