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.
Virtuelle Maschine: VMware Workstation 15 Player Gastbetriebssystem: Ubuntu 18.04LTS xammp:7.4.5
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.
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');
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.
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
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.
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