[JAVA] Bestätigung des JDBC-Betriebs von der xampp-Installation unter Ubuntu

Einführung

Dies ist das Verfahren, als ich es selbst mit xampp gemacht habe, um den Mechanismus von Webserver und JDBC zu untersuchen. Vielleicht machen es nicht viele Leute unter Ubuntu oder nur wenige haben ähnliche Fehler festgestellt, also habe ich einen Artikel geschrieben. Da es für das Studium gemacht ist, traue ich mich nicht, die integrierte Entwicklungsumgebung Eclipse zu verwenden.

Informationen wie Version

Virtuelle Maschine: VMware Workstation 15 Player Gastbetriebssystem: Ubuntu 18.04LTS xammp:7.4.5

xampp Installation

Laden Sie für xampp das Installationsprogramm von der folgenden Site herunter und installieren Sie es entsprechend. Daran sollte nichts auszusetzen sein. https://ja.osdn.net/projects/xampp/

Wenn die Installation abgeschlossen ist, sollte sich in / opt ein Lammp-Ordner befinden. Geben Sie den folgenden Befehl ein, um Apache, MySQL und ProFTPD zu starten.

$ sudo /opt/lampp/lampp start

Übrigens, wenn Sie aufhören

$ sudo /opt/lampp/lampp stop

ist.

Geben Sie "localhost" in die Adresse des Webbrowsers ein und bestätigen Sie, dass es auf dem gestarteten Webserver eingegeben werden kann.

Was tun, wenn Sie nicht eintreten können? Verwenden Sie den folgenden Befehl nmap, um zu überprüfen, ob Port 80 geöffnet ist.

$ nmap localhost

Wenn es nicht geöffnet ist, wird es wahrscheinlich von der Ubuntu-Firewall gespiegelt. Verwenden Sie den folgenden Befehl ufw, um Port 80 (http) zu öffnen, und verwenden Sie dann den Befehl nmap erneut, um zu überprüfen, ob er frei ist.

$ sudo ufw allow 80

Übrigens schließt Ubuntu Port 80 standardmäßig. Bitte beachten Sie, dass das Öffnen von Port 80 das Sicherheitsrisiko erhöht.

Datenbank erstellen

Erstellen Sie als Nächstes eine Testdatenbank.

Greifen Sie mit einem Webbrowser auf "Ubuntu IP Address" zu, geben Sie oben rechts phpMyAdmin ein und geben Sie ein Melden Sie sich als root an.

Öffnen Sie die Registerkarte "Benutzerkonten" und wählen Sie "Benutzerkonto hinzufügen". Geben Sie den "Benutzernamen", den "Hostnamen" und das "Passwort" ein. Dieses Mal habe ich es so eingestellt. Benutzername: piyo Hostname: localhost Passwort: piyopass

Nachdem Sie in der Spalte "Benutzerkonto dedizierte Datenbank" die Option "Datenbank mit demselben Namen erstellen und alle Berechtigungen erteilen" aktiviert haben, klicken Sie unten auf die Schaltfläche "Ausführen", um ein Konto zu erstellen. Sie haben jetzt ein Konto und eine Datenbank mit demselben Namen wie das Konto erstellt.

Geben Sie vorerst die Testdaten ein. Tabellenname: Buch Spalten: (ID (Int-Typ), Name (VARCHAR-Typ), Preis (Int-Typ), Daten (DATE-Typ))

Wählen Sie die Registerkarte Einfügen und geben Sie die entsprechenden Daten ein. Der folgende SQL-Befehl ist der Befehl zu diesem Zeitpunkt. Da es über die Oberfläche eines Webbrowsers eingefügt werden kann, muss der folgende Befehl nicht direkt eingegeben werden.

INSERT INTO `book` (`id`, `name`, `price`, `date`) VALUES ('1', '1st_chapter', '777', '2020-05-21');

MySQL-Einstellungen

Richten Sie als Nächstes ein, um auf MySQL zugreifen zu können.

Öffnen Sie zunächst Port 3306 (MySQL) in den Firewall-Einstellungen.

$ sudo ufw allow 3306

Deaktivieren Sie als Nächstes die Option zum Überspringen von Netzwerken in MySQL. Erstellen Sie eine .my.mcnf-Datei in Ihrem Home-Verzeichnis und geben Sie die folgenden zwei Textzeilen ein.

~/.my.cnf


[mysqld]
skip-networking = off

Dies war ziemlich wichtig, aber Sie können nicht über Port 3306 darauf zugreifen, ohne die Option zum Überspringen von Netzwerken zu deaktivieren. Übrigens scheinen sich die Standardeinstellungen in der Einstellungsdatei je nach Version von MySQL zu unterscheiden, daher hatte ich große Probleme. Übrigens wird in der folgenden Datei beschrieben, wie eine Einstellungsdatei erstellt wird.

/etc/mysql/my.cnf


#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.

# Here is entries for some specific programs
# The following values assume you have at least 32M ram
!includedir /etc/mysql/conf.d/

Starten Sie jede xampp neu, um die MySQL-Einstellungen zu laden.

$ sudo /opt/lampp/lampp restart

Stellen Sie sicher, dass Port 3306 geöffnet ist.

$ netstat -lt

Versuchen Sie, mit dem erstellten Konto einzutreten. Melden Sie sich mit dem folgenden Befehl bei SQL an. Sie werden aufgefordert, das Passwort einzugeben. Geben Sie es also ein.

$ /opt/lampp/bin/mysql -u piyo -h localhost -p

Wenn Sie sich nicht richtig anmelden können, überprüfen Sie bitte Ihre Kontoeinstellungen. Geben Sie während der Anmeldung den folgenden Befehl ein.

SHOW VARIABLES LIKE 'skip_networking';

Wenn skip_networking wie unten gezeigt deaktiviert ist, ist die Einstellung abgeschlossen.

+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| skip_networking | OFF   |
+-----------------+-------+

Damit ist die Vorbereitung auf der SQL-Seite abgeschlossen.

JDBC-Einstellungen

Bereiten Sie sich als Nächstes auf JDBC vor. Installieren Sie zunächst die erforderlichen Bibliotheken mit dem Befehl apt.

$ sudo apt-get install libmysql-java

Fügen Sie es Ihrem CLASSPATH hinzu, damit mysql.jar beim Kompilieren von Java geladen wird.

$ echo "export CLASSPATH=$CLASSPATH:/usr/share/java/mysql.jar" >> ~/.bashrc

Sie können die Option -cp jedes Mal verwenden, wenn Sie kompilieren, aber es ist ärgerlich, deshalb habe ich sie zu bash hinzugefügt. Bereiten Sie den folgenden Beispielcode vor.

test.java


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class test{
    public static void main(String[] args){

        final String URL = "jdbc:mysql://localhost:3306/piyo";//Hostname: localhost Datenbankname: piyo
        final String USER = "piyo";//Nutzername
        final String PASS = "piyopass";//Passwort
        String SQL = "select * from book;";//SQL-Anweisung (Datenbankbuch auswählen)

        //Überprüfen Sie, ob JDBC importiert werden kann
        try{
                Class cls = Class.forName("com.mysql.jdbc.Driver");
                System.out.println("JDBC sucess");
        }catch(ClassNotFoundException e){
                e.printStackTrace();
                System.exit(1);
        }

        //Greifen Sie mit JBDC auf die Datenbank zu
        try(
            Connection conn = DriverManager.getConnection(URL, USER, PASS);//Melden Sie sich bei SQL an
            PreparedStatement ps = conn.prepareStatement(SQL)){//Ausführung der SQL-Anweisung
            try(ResultSet rs = ps.executeQuery()){//Speichern Sie Datenbankinformationen in rs
                while(rs.next()){//Aktualisieren Sie die ausgewählte Spalte
                    System.out.println(//Anzeige der gelesenen Spalten
                    	rs.getInt("id") + " " +
                    	rs.getString("name") + " " +
                        rs.getString("price") +" "+
			rs.getDate("date"));
                }           
            }catch(SQLException e){//Fehler beim Erfassen von Datenbankinformationen
                e.printStackTrace();
                System.exit(1);
            }
        }catch(SQLException e){//Fehler bei der Ausführung der Anmeldung oder der SQL-Anweisung
            e.printStackTrace();
            System.exit(1);
        }finally{
            System.out.println("finish");//Führen Sie aus, wenn nichts passiert
            System.exit(0);
        }
    }
}

Kompilieren und ausführen.

$ javac test.java
$ java test

Hier, java.sql.SQLException: No suitable driver found Wenn ein Fehler auftritt, wurde möglicherweise /usr/share/java/mysql.jar nicht geladen. Bitte überprüfen Sie Ihren KLASSENPFAD erneut. Es ist in Ordnung, wenn die Ausgabe wie folgt ist.

JDBC success
1 1st_chapter 777 2020-05-21
finish

Zusammenfassung

Ich habe xmapp in der Ubuntu-Umgebung installiert, den SQL-Befehl mit JDBC ausgeführt und konnte das Ergebnis abrufen. In Zukunft möchte ich JDBC verwenden, um die Ergebnisse im Browser anzuzeigen.

Vielen Dank

bld1509 Hilft bei der Installation von JDBC unter Ubuntu https://bld1509.hatenadiary.org/entry/20080624/1214317382

itdevats Vielen Dank für die Fehlerbehebung beim Überspringen von Netzwerken. https://qiita.com/itdevat/items/ca5184dc8445380b966e

IT Sakura Es war hilfreich beim Erstellen von Beispielcode. https://itsakura.com/java-mysql

Recommended Posts

Bestätigung des JDBC-Betriebs von der xampp-Installation unter Ubuntu
Erstellen Sie eine XAMPP-Umgebung unter Ubuntu
Elmer / Ice Installation (Ubuntu auf WSL)
Verwenden von JUnit über die Befehlszeile unter Ubuntu
[Java] Erstellen Sie eine Java-Entwicklungsumgebung unter Ubuntu und überprüfen Sie die Ausführung
Installationsanweisungen für Docker unter Ubuntu18.04 unter WSL2 und VSCode
Hinweise zum Aktualisieren von Ubuntu über die Befehlszeile (16.04 → 18.04, 18.04 → 20.04 beide)
[Ubuntu20.04] Von der ROS-noetischen Installation zur SLAM-Simulation von turtlebot3