C'est la procédure quand je l'ai fait moi-même en utilisant xampp pour étudier le mécanisme du serveur Web et JDBC. Peut-être que peu de gens le font sur Ubuntu, ou peu de gens ont rencontré des erreurs similaires, j'ai donc écrit un article. Puisqu'il est fait pour étude, je n'ose pas utiliser l'environnement de développement intégré Eclipse.
Machine virtuelle: VMware Workstation 15 Player OS invité: Ubuntu 18.04LTS xammp:7.4.5
Pour xampp, téléchargez le programme d'installation à partir du site suivant et installez-le correctement. Il ne devrait y avoir rien de mal à cela. https://ja.osdn.net/projects/xampp/
Lorsque l'installation est terminée, vous devriez avoir un dossier lammp dans / opt. Entrez la commande suivante pour démarrer Apache, MySQL et ProFTPD.
$ sudo /opt/lampp/lampp start
Au fait, quand tu t'arrêtes
$ sudo /opt/lampp/lampp stop
est.
Entrez "localhost" dans l'adresse du navigateur Web et confirmez qu'il peut être entré dans le serveur Web lancé.
Que faire si vous ne pouvez pas entrer Utilisez la commande nmap ci-dessous pour vérifier si le port 80 est ouvert.
$ nmap localhost
S'il n'est pas ouvert, il est susceptible d'être touché par le pare-feu Ubuntu. Utilisez la commande ufw ci-dessous pour ouvrir le port 80 (http), puis utilisez à nouveau la commande nmap pour vérifier s'il est libre.
$ sudo ufw allow 80
À propos, Ubuntu ferme le port 80 par défaut. Veuillez noter que l'ouverture du port 80 augmente le risque de sécurité.
Ensuite, créez une base de données de test.
Accédez à «Ubuntu IP Address» avec un navigateur Web, saisissez phpMyAdmin en haut à droite, puis saisissez Connectez-vous en tant que root.
Ouvrez l'onglet "Comptes d'utilisateurs" et sélectionnez "Ajouter un compte d'utilisateur". Saisissez le "nom d'utilisateur", le "nom d'hôte" et le "mot de passe", Cette fois, je l'ai réglé comme ça. Nom d'utilisateur: piyo Nom d'hôte: localhost Mot de passe: piyopass
Après avoir coché "Créer une base de données avec le même nom et donner tous les privilèges" dans la colonne "Base de données dédiée au compte utilisateur", cliquez sur le bouton "Exécuter" en bas pour créer un compte. Vous venez de créer un compte et une base de données portant le même nom que le compte.
Pour le moment, saisissez les données de test. Nom de la table: livre Colonnes: (id (type int), nom (type VARCHAR), prix (type int), données (type DATE))
Sélectionnez l'onglet Insertion et saisissez les données comme il convient. La commande SQL suivante est la commande à ce moment-là. Comme il peut être inséré à l'aide de l'interface d'un navigateur Web, il n'est pas nécessaire d'entrer directement la commande suivante.
INSERT INTO `book` (`id`, `name`, `price`, `date`) VALUES ('1', '1st_chapter', '777', '2020-05-21');
Ensuite, configurez-le pour pouvoir accéder à MySQL.
Tout d'abord, ouvrez le port 3306 (MySQL) dans les paramètres du pare-feu.
$ sudo ufw allow 3306
Ensuite, désactivez l'option ignorer la mise en réseau de MySQL. Créez un fichier .my.mcnf dans votre répertoire personnel et entrez les deux lignes de texte suivantes.
~/.my.cnf
[mysqld]
skip-networking = off
C'était assez important, mais vous ne pouvez pas y accéder via le port 3306 sans désactiver l'option ignorer la mise en réseau. Au fait, il semble que les paramètres par défaut dans le fichier de paramètres diffèrent selon la version de MySQL, donc j'ai eu beaucoup de problèmes. À propos, comment créer un fichier de paramètres est écrit dans le fichier suivant.
/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/
Redémarrez chaque xampp pour charger les paramètres MySQL.
$ sudo /opt/lampp/lampp restart
Assurez-vous que le port 3306 est ouvert.
$ netstat -lt
Essayez d'entrer avec le compte créé. Connectez-vous à SQL avec la commande suivante. Il vous sera demandé de saisir le mot de passe, alors saisissez-le.
$ /opt/lampp/bin/mysql -u piyo -h localhost -p
Si vous ne parvenez pas à vous connecter correctement, veuillez vérifier les paramètres de votre compte. Une fois connecté, entrez la commande suivante.
SHOW VARIABLES LIKE 'skip_networking';
Si skip_networking est désactivé comme indiqué ci-dessous, le réglage est terminé.
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
Ceci termine la préparation côté SQL.
Ensuite, préparez-vous pour JDBC. Tout d'abord, installez les bibliothèques requises avec la commande apt.
$ sudo apt-get install libmysql-java
Ajoutez-le à votre CLASSPATH pour que mysql.jar soit chargé lorsque vous compilez java.
$ echo "export CLASSPATH=$CLASSPATH:/usr/share/java/mysql.jar" >> ~/.bashrc
Vous pouvez utiliser l'option -cp à chaque fois que vous compilez, mais c'est ennuyeux, alors je l'ai ajoutée à bash. Préparez l'exemple de code suivant.
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";//Nom d'hôte: localhost Nom de la base de données: piyo
final String USER = "piyo";//Nom d'utilisateur
final String PASS = "piyopass";//mot de passe
String SQL = "select * from book;";//Instruction SQL (sélectionnez le livre de base de données)
//Vérifiez si JDBC peut être importé
try{
Class cls = Class.forName("com.mysql.jdbc.Driver");
System.out.println("JDBC sucess");
}catch(ClassNotFoundException e){
e.printStackTrace();
System.exit(1);
}
//Accéder à la base de données à l'aide de JBDC
try(
Connection conn = DriverManager.getConnection(URL, USER, PASS);//Connectez-vous à SQL
PreparedStatement ps = conn.prepareStatement(SQL)){//Exécution de l'instruction SQL
try(ResultSet rs = ps.executeQuery()){//Stocker les informations de la base de données dans rs
while(rs.next()){//Mettre à jour la colonne sélectionnée
System.out.println(//Affichage des colonnes lues
rs.getInt("id") + " " +
rs.getString("name") + " " +
rs.getString("price") +" "+
rs.getDate("date"));
}
}catch(SQLException e){//Erreur d'acquisition des informations de la base de données
e.printStackTrace();
System.exit(1);
}
}catch(SQLException e){//Erreur de connexion ou d'exécution de l'instruction SQL
e.printStackTrace();
System.exit(1);
}finally{
System.out.println("finish");//Courir si rien ne se passe
System.exit(0);
}
}
}
Compilez et exécutez.
$ javac test.java
$ java test
ici, java.sql.SQLException: No suitable driver found Si une erreur se produit, il est possible que /usr/share/java/mysql.jar n'ait pas été chargé. Veuillez revoir votre CLASSPATH. C'est OK si la sortie est la suivante.
JDBC success
1 1st_chapter 777 2020-05-21
finish
J'ai installé xmapp dans l'environnement Ubuntu, j'ai lancé la commande SQL avec JDBC et j'ai pu obtenir le résultat. À l'avenir, j'aimerais utiliser JDBC pour afficher les résultats sur le navigateur.
bld1509 Aide lors de l'installation de JDBC sur Ubuntu https://bld1509.hatenadiary.org/entry/20080624/1214317382
itdevats Merci pour le dépannage de skip-networking. https://qiita.com/itdevat/items/ca5184dc8445380b966e
IT Sakura Cela a été utile pour créer un exemple de code. https://itsakura.com/java-mysql
Recommended Posts