wake-up-neo.com

Wie kann ich mit Java eine Remote-MySQL-Datenbank herstellen?

Ich versuche, eine JSF-Anwendung mit der Eclipse-IDE zu erstellen. Ich verwende einen entfernten mySQL-Server als meine Datenbank. Wie verbinde ich mich mit dieser entfernten Datenbank, um Tabellen zu erstellen und auf sie zuzugreifen?

25
Angeline

Geben Sie einfach die IP-Adresse/den Hostnamen der Remote-Maschine in Ihrer Datenbankverbindungszeichenfolge anstelle von localhost an. Zum Beispiel:

jdbc:mysql://192.168.15.25:3306/yourdatabase

Stellen Sie sicher, dass keine Firewall den Zugriff auf Port 3306 blockiert.

Stellen Sie außerdem sicher, dass der Benutzer, mit dem Sie sich verbinden, von diesem bestimmten Hostnamen aus eine Verbindung herstellen darf. Für Entwicklungsumgebungen ist dies mit 'username'@'%' sicher. Überprüfen Sie das Benutzererstellungshandbuch und das GRANT-Handbuch .

38
Bozho

In der Verbindungszeichenfolge müssen Sie IP/Hostname der Rempote-Maschine übergeben. 

import Java.sql.*;
import javax.sql.*;

public class Connect
{
   public static void main (String[] args)
   {
       Connection conn = null;

       try
       {

           String url = "jdbc:mysql://localhost:3306/mydb";
           Class.forName ("com.mysql.jdbc.Driver");
           conn = DriverManager.getConnection (url,"root"," ");
           System.out.println ("Database connection established");
       }
       catch (Exception e)
       {
           e.printStackTrace();

       }
       finally
       {
           if (conn != null)
           {
               try
               {
                   conn.close ();
                   System.out.println ("Database connection terminated");
               }
               catch (Exception e) { /* ignore close errors */ }
           }
       }
   }
}
8
giri

um von einem entfernten Computer auf die Datenbank zuzugreifen, müssen Sie Ihrer Datenbank alle Berechtigungen erteilen. 

führen Sie das folgende Skript aus, um Berechtigungen zu erteilen: GRANT ALL PRIVILEGES ON. TO Benutzer @ '%' IDENTIFIED BY 'Passwort';

4
Puran Singh

Außerdem sollten Sie sicherstellen, dass in der Konfiguration des MySQL-Servers (/etc/mysql/my.cnf,/etc/default/mysql unter Debian) "Skip-Networking" nicht aktiviert ist und nicht ausschließlich an die Loopback-Schnittstelle (127.0) gebunden ist .0.1), aber auch zu der Schnittstelle/IP-Adresse, zu der Sie eine Verbindung herstellen möchten. 

2
tmr
  1. Erstellen Sie einen neuen Benutzer im Schema "mysql" (mysql.user) Führen Sie diesen Code in Ihrem mysql-Arbeitsbereich aus “GRANT ALL ON . to [email protected]'%'IDENTIFIED BY '';

  2. Öffnen Sie den '3306'-Port an der Maschine, auf der sich die Datenbank befindet Control Panel -> Windows Firewall -> Advance Settings -> Inbound Rules -> New Rule -> Port -> Next -> TCP & set port as 3306 -> Next -> Next -> Next -> Fill Name and Description -> Finish ->

  3. Versuchen Sie es mit einer Telnet-Nachricht in cmd, einschließlich der IP-Adresse des DB-Servers

1
JeewanaSL

Schließen Sie alle Verbindungen, die geöffnet und mit dem Server-Überwachungsport verbunden sind, unabhängig davon, ob es sich um ein anwendungs- oder clientseitiges Tool (navicat) oder einen laufenden Server (Apache oder Weblogic) handelt. Schließen Sie zuerst alle Verbindungen und starten Sie dann alle Tools MySQL, Apache usw. neu. 

1
vishakha sharma

Nach der Erstellung von localhost- und% -Versionen des Benutzers und dem entsprechenden Zugriff auf database.tables musste ich unter Ubuntu die 'bind-address' in /etc/mysql/mysql.conf.d/mysql auskommentieren .cnf und starten Sie mysql als Sudo neu.

bindungsadresse = 127.0.0.1

0
Jack Mason

Ändern Sie in my.cnf die folgenden Angaben 

## Anstelle von "Skip-Networking" wird jetzt standardmäßig nur auf .__ gehört. ## localhost, der besser kompatibel und nicht weniger sicher ist . ## bind-address = 127.0.0.1

0
Buminda