[JAVA] Confirmation de l'opération JDBC à partir de l'installation de xampp sur Ubuntu

introduction

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.

Informations telles que la version

Machine virtuelle: VMware Workstation 15 Player OS invité: Ubuntu 18.04LTS xammp:7.4.5

installation de xampp

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é.

Créer une base de données

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');

Paramètres MySQL

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.

Paramètres JDBC

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

Résumé

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.

Merci

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

Confirmation de l'opération JDBC à partir de l'installation de xampp sur Ubuntu
Créer un environnement XAMPP sur Ubuntu
Installation d'Elmer / Ice (Ubuntu sur WSL)
Utilisation de JUnit à partir de la ligne de commande sur Ubuntu
[Java] Créer un environnement de développement Java sur Ubuntu et vérifier l'exécution
Docker sur Ubuntu18.04 sur WSL2 et instructions d'installation de VSCode
Notes sur la mise à jour d'Ubuntu à partir de la ligne de commande (16.04 → 18.04, 18.04 → 20.04 les deux)
[Ubuntu20.04] De l'installation ROS-noetic à la simulation SLAM de turtlebot3