2

私の接続文字列は次のとおりです。

conn.ConnectionString = "Server=192.248.***.***; Port=3036; User id=admin; password=***; Database=abc; Connect Timeout=60;"

しかし、「データベースへの接続エラー: 指定された MySQL ホストのいずれにも接続できません」というエラーが返されます。

しかし、PHPMyAdmin を使用して同じものにログインできます。

//192.248.***.***/phpmyadmin

また、次を使用してローカル MySQL データベースにログインできます。

    conn.ConnectionString = "server=" & "localhost" & ";" & "user id=" & "admin" & ";" & "password=" & "" & ";" & "database=abc"

このコードで間違っているのは何ですか。システムの要件であるため、リモート データベースに接続したいと考えています。助けてください。

更新: 即時ウィンドウに次のように表示されます:

    PassbookPrinter.vshost.exe Error: 0 : Unable to connect to any of the specified MySQL hosts.
A first chance exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll
4

5 に答える 5

4

VB.Net を使用してリモートの MySQL データベースに接続する

vb.net をリモートの MySql データベースに接続するには; 使用している VB.Net のバージョンに関係なく、次の手順を実行してください。

1) URL から Mysql Connector/Net をダウンロードします ( https://dev.mysql.com/downloads/connector/net/ )

2) コネクタを取り付けます。デフォルトでは、コネクタは、私がインストールしたバージョンのパス (C:\Program Files\MySQL\Connector Net 6.9.6) にインストールされます。

3) VB.Net IDE を開き、新しいプロジェクトを開始します。

4) プロジェクトへの参照として「Mysql.Data.dll」を追加します。これは、パス (C:\Program Files\MySQL\Connector Net 6.9.6\Assemblies\v4.5) にあります。

5) この画像に示すように接続フォームを準備します。 ここに画像の説明を入力

6) 「Database」という名前のクラスを作成し、次のコードを記述します。

データベース クラス コード

MySql.Data.MySqlClient をインポートします

公開授業データベース

Private _connection As New MySqlConnection
Private _errormessge As String
Private _servername As String
Private _databasename As String
Private _userid As String
Private _password As String

Public WriteOnly Property ServerName() As String
    Set(ByVal value As String)
        _servername = value
    End Set
End Property

Public WriteOnly Property DatabaseName() As String
    Set(ByVal value As String)
        _databasename = value
    End Set
End Property

Public WriteOnly Property UserID() As String
    Set(ByVal value As String)
        _userid = value
    End Set
End Property

Public WriteOnly Property Password() As String
    Set(ByVal value As String)
        _password = value
    End Set
End Property

Public ReadOnly Property ErrorMessage() As String
    Get
        Return _errormessge
    End Get
End Property

Public Function Connection() As Boolean
    Try
        _connection.ConnectionString = "Server=" & _servername & ";Port=3306;Database=" & _databasename & ";User ID=" & _userid & ";Password=" & _password & ""
        _connection.Open()
        If _connection.State = ConnectionState.Open Then
            _connection.Close()
            Return True
        End If
    Catch ex As Exception
        _errormessge = ex.Message
        Return False
    End Try
End Function

クラス終了

フォーム クラス コード

パブリック クラス Frm_Main プライベート サブ btn_connect_Click (System.Object としての ByVal 送信者、System.EventArgs としての ByVal e) btn_connect.Click を処理します

'オブジェクトの宣言とインスタンス化

新しいデータベースとして薄暗いデータ

    With data
        'Assing the object property values
        .ServerName = txt_server.Text
        .DatabaseName = txt_database.Text
        .UserID = txt_uid.Text
        .Password = txt_pwd.Text

        'Connection testing
        If .Connection Then
            MessageBox.Show("Database Conneted.")
        Else
            MessageBox.Show(.ErrorMessage)
        End If
    End With
End Sub

Private Sub btn_exit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_exit.Click
    Close()
End Sub

クラス終了

7) プロジェクトを実行し、接続を試みます。接続が成功した場合は運がいいです。また、次のエラー メッセージが表示されて接続がうまくいかない場合は、続きを読み続けるだけでなく、心配する必要はありません。 ここに画像の説明を入力

8) @ の後のエラー メッセージの IP アドレス (それがあなたの IP) に注意し、それをドメインの cpanel "remote mysql access" に追加します); 「ホストの追加」ボタンを押すことを忘れないでください。この設定は、静的 IP にいる人にとっては毎日機能します。 ここに画像の説明を入力

上記の手順の後、成功のメッセージを参照してください。

ここに画像の説明を入力

ただし、エラー メッセージが引き続き表示される場合は、パスワード テキストを空白のままにして、リモート データベースにパスワードがない場合は再度接続してみてください。YES が NO に変更された場合を除いてエラーが再び発生する場合は、DHCP にいるかどうかを確認する必要があります。

9) DHCP を使用している場合は、新しいインターネット接続ごとに IP が変更されていることを意味します。モデムを使用している場合は、おそらく DHCP を使用しています。動的 IP の場合は、IP の 4 つのブロックで何が変更されているかを確認してください。最初の接続で最初の IP が 197.250.3.201 で、次の IP が 197.250.60.70 で、次の次の IP が 197.250.80.24 の場合。接続を安定させるには、cpanel アクセス ホストに 197.250.% を追加する必要があります。 ここに画像の説明を入力

10) 注: パーセント記号 (ワイルドカード) が IP アドレスの左側に流れるほど、セキュリティの扉が開かれます。新しいエラーが発生した場合は、ドメイン プロバイダーに連絡してください。ドメインに他のセキュリティ上の問題がある可能性があります。ありがとう!

于 2015-06-04T14:22:17.780 に答える
1

これを試してみてください、うまくいきます

con.ConnectionString ="Persist Security Info=False;datasource=site.com;port=3306;username=username;password=password;database=database name"

追加する必要があります

セキュリティの持続

あなたのコードで。サイトのサーバーの mysql データベースにアクセスします。cpanel > Remote MySQL に移動し、IP アドレスを追加します

この画像を見る >>> https://www.dropbox.com/s/ytsz57spanwdpkz/cpanel.PNG

今楽しんでください:p

于 2014-08-05T09:31:31.583 に答える
0

以前は同じ問題が発生していました。別のサーバーで実行していたのと同じでした。

アプリケーションが実行されている場所からサーバーにpingを実行して、接続できるかどうかを確認してください。それが私がファイアウォールの変更を見つけて必要とした方法です。

于 2012-12-10T10:13:32.290 に答える
0

MySQL のデフォルト ポートは 3306 です。デフォルト設定を使用して phpmyadmin から接続できる場合は、タイプミスのように聞こえます。

conn.ConnectionString = "Server=192.248.***.***; Port=3306; User id=admin; password=***; Database=abc; Connect Timeout=60;"

さらに、MySQL Server へのリモート アクセスはデフォルトで無効になっています。たとえば、Debian Linux ディストリビューションで MySQL を実行している場合、別のマシンからのアクセスを許可するには、次のような追加の手順を実行する必要がある場合があります。

http://www.debianhelp.co.uk/remotemysql.htm

Windows ホストの場合、以下が役立つ場合があります。

http://techmided.net/blog/allow-remote-connections-for-mysql-on-windows.html

于 2012-12-10T09:37:28.713 に答える
-1

mysqlの.ini構成でポートを3307に変更してから、mysqlの.ini構成でバインドアドレス=サーバーのIPまたはホスト名も変更してみてください

于 2016-06-16T01:25:24.707 に答える