Documentation

« MySQL » : différence entre les versions

 
(11 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
[[image: mysqlight.png|SQLiteMySQL|right]]<br><br>
[[image: mysqlight.png|SQLiteMySQL|right]]<br><br>
Regardez l'article [[Base de données des composants]] aussi.<br>
Regardez aussi l'article [[Base de données des composants]].<br>
== MySQL: La base de données très performante pour TARGET 3001! multiuser ==
== MySQL / MariaDB : la base de données rapide pour plusieurs postes de travail ==


Si vous travaillez en réseau d'ordinateurs avec plusieurs postes de travail et vous voulez utiliser une base de données des composants en TARGET 3001! ensemble, vous devez stocker les composants dans une '''base de données MySQL.''' La base de données SQLite déjà installée avec TARGET 3001! est normalement très lente si vous travaillez avec plusieurs utilisateurs, mais si vous l'utilisez en mode single la base de données SQLite est favourable.
La base de données de composants SQLite préinstallée avec TARGET devient lente avec les taux de transfert réseau habituels en mode multi-utilisateurs. Celui qui veut accéder à une base de données de composants commune TARGET dans un réseau avec plusieurs postes de travail, a besoin des composants dans une base de données '''MySQL''' ou dans une '''MariaDB''. Dans le cadre d'une utilisation individuelle, la base de données SQLite a cependant, selon notre expérience, une longueur d'avance.<br><br>


<br><br><big>''Note : Veuillez utiliser la version 5.1.12 à 5.7 de MySQL. L'utilisation d'outils comme MySQL Workbench peut causer des problèmes.''</big><br><br><br>
== Installer MySQL / MariaDB==


Vous trouverez les installateurs à télécharger ici : [https://dev.mysql.com/downloads/mysql MySQL] et [https://mariadb.org/download MariaDB].<br><br>Vous pouvez effectuer l'installation de la base de données sur un PC ou sur un serveur.<br><br>


== Télécharger MySQL ==
== Configurer / adapter le serveur MySQL / MariaDB et insérer la base de données TARGET ==


[https://dev.mysql.com/downloads/windows/installer/5.7.html https://dev.mysql.com/downloads/windows/installer/5.7.html]
* Créez par exemple une nouvelle base de données vide « target3001db » (avec collation utf8mb3_general_ci) avec phpMyAdmin ou dans la console SQL :
CREATE DATABASE target3001db CHARACTER SET utf8 COLLATE utf8_general_ci ;
* Téléchargez le fichier SQL suivant dans un ZIP et importez-le dans la nouvelle base de données vide : '''[https://office.ibfriedrich.com/target3001db.zip target3001db.zip]''' (60 MB). Toutes les tables, toutes les fonctions et tous les triggers seront ainsi créés automatiquement.
* Saisissez les utilisateurs et les droits pour la nouvelle base de données. Les noms d'utilisateur et les mots de passe ne doivent pas dépasser 16 caractères chacun. Les droits suivants sont nécessaires : SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, EXECUTE, CREATE ROUTINE, ALTER ROUTINE et TRIGGER.
* Dans TARGET, dans le navigateur des composants, dans le menu « Connecté à... », vous devez définir les paramètres de MySQL. Entrez les paramètres pour MySQL. Ceux-ci sont également utilisés pour MariaDB :
Démarrer TARGET avec la base de données MySQL <indiquez ici « Oui »>.
Serveur MySQL <Nom ou IP de votre serveur MySQL/MariaDB>.
MySQL User <votre nom d'utilisateur pour le serveur MySQL/MariaDB>.
MySQL Password <votre mot de passe correspondant>.
MySQL SSH Key <si SSH est utilisé : SSH Key-File>
MySQL SSH Cert <si SSH est utilisé : Cert File>
MySQL SSH CA <si SSH est utilisé : Certificate-Authority-File>.
* Si vous aviez déjà créé vos propres composants utilisateur dans la base de données SQLite, vous pouvez sélectionner l'option de menu « Connecté à... / Migration de SQLite vers MySQL... » une fois et sélectionner la base de données SQLite “target3001.db”. La synchronisation peut prendre un moment. Plus tard, d'autres fichiers *.db peuvent être importés dans le menu « Import / Export ».
* Pour plus de sécurité, vous pouvez appeler à nouveau le point de menu « Mise à jour » dans le navigateur de composants.


== Installer un serveur MySQL ==
=== Particularité pour les serveurs Windows ===


Bien que la base de données SQLite fonctionne bien avec un seul DLL et un fichier de base de données, une base de données MySQL a besoin d'avoir un serveur MySQL. Cela devrait de préférence être installé sur un ordinateur distinct au sein du réseau ou - à défaut - à l'un des postes de travail. La chose importante est que le serveur est toujours sur le pouvoir dès qu'un client du réseau veut utiliser TARGET 3001!.
Nécessaire pour les serveurs Windows (avec la console) :


En règle générale, vous obtiendrez en contact avec votre administrateur système afin de mettre en place un serveur MySQL. Linux ainsi que les ordinateurs Windows sont aptes à fonctionner comme un serveur MySQL. Vous trouverez plusieurs tutoriels sur Internet pour installer MySQL pour les différents systèmes:
$ mysql -u root -p


[http://www.google.fr/#hl=fr&q=tutoriel+mysql+installation Google: Installer MySQL]
ou sans mot de passe : $ mysql -u root


mysql> use mysql
mysql> GRANT ALL ON *.* to root@'%' IDENTIFIED BY '<your-mysql-root-password>';
mysql> FLUSH PRIVILEGES;
Vous pouvez aussi effectuer ce réglage avec phpMyAdmin ou avec le Workbench.<br><br>


== Adapter un serveur MySQL et inserer une TARGET 3001! base de données ==
== Est-ce que MS-SQL fonctionne aussi au lieu de MySQL ou MariaDB ?==
Vous avez deux options:
* Utiliser une console (recommandé)
* Utiliser un application browser, p.ex. phpMyAdmin (pas recommandé. Votre serveur peut être occupé pour jusqu à deux heures)


MS-SQL ne fonctionne malheureusement pas.<br><br>


'''NOTE''': Les noms d'utilisateurs et mots de passe ne doit pas avoir plus de 16 caractères.
== Au secours, MySQL envoie des messages d'erreur ! ==
 
 
=== Utiliser un console ===
 
 
'''Installation, adaptation'''
 
Effectuez les réglages suivants sur le serveur afin que TARGET 3001! pouvez accéder à la base de données correctement:
 
[mysqld]
thread_stack = 256K
query_cache_size = 32M        #query_cache_size est déprécié à partir de MySQL 5.7.20, il n'est donc plus nécessaire
#bind-address = 127.0.0.1
bind-address = 0.0.0.0
max_allowed_packet=2M
[mysql]
max_allowed_packet=2M
 
Le fichier de configuration Linux est nomé "my.cnf", le fichier configuration Windows "my.ini".
 
 
'''Insérer la base données TARGET 3001!'''
 
Afin d'insérer la base de données de composants TARGET 3001! au serveur MySQL, vous avez besoin d'un fichier DUMP de la base de données et un fichier de script brève pour l'importation. Que vous ayez un système Linux ou Windows, des scriptes différents doivent être démarrés. En suivant vous trouverez le lien pour un fichier zip contenant le nécessaire:
 
[http://server.ibfriedrich.com/download/mysql/mysql_target3001db.zip Dump et Scripts]
 
Chaque script doit se adaptée en ce qui concerne le nombre d'utilisateurs qui souhaitent avoir accès aux composants de MySQL. Après l'importation des composants, le serveur MySQL est mis en place suffisamment pour commencer.
 
 
=== Utiliser phpMyAdmin ou similaire ===
 
 
La section prochaine explique comment d'installer le MySQL-DB target3001db avec un application gestionnaire pour  administrer des bases de données MySQLs (p.ex. phpMyAdmin).
 
L'importation du DUMP peut prendre jusqu'à deux heures. Vous devez utiliser la console (v. 4) de ne pas bloquer le serveur pour trop longtemps.
 
Dans votre application vous pouvez entrer les commandes SQL sous forme de texte ou par menus et boîtes de dialogue. En termes de comprehension nous désignons ici les commandes sous forme de texte.
 
 
'''Le base de données target3001db etc.:'''
 
<span style="color: #00AA00;">-- Créer utilisateur 1, lui donner les droits nécessaires  *** si nécessaire remplacer target3001user1 et target3001user1_password ***</span>
GRANT USAGE ON *.* TO '<span style="color: #FF0000;">target3001user1</span>'@'%' IDENTIFIED BY '<span style="color: #FF0000;">target3001user1_password</span>';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, EXECUTE, CREATE ROUTINE,<br> ALTER ROUTINE, TRIGGER ON target3001db.* TO '<span style="color: #FF0000;">target3001user1</span>'@'%';
 
<span style="color: #00AA00;">-- Créer utilisateur 2, lui donner les droits nécessaires  *** si nécessaire remplacer target3001user2 et target3001user2_password ***</span>
GRANT USAGE ON *.* TO '<span style="color: #FF0000;">target3001user2</span>'@'%' IDENTIFIED BY '<span style="color: #FF0000;">target3001user2_password</span>';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, EXECUTE, CREATE ROUTINE,<br> ALTER ROUTINE, TRIGGER ON target3001db.* TO '<span style="color: #FF0000;">target3001user2</span>'@'%';
 
<span style="color: #00AA00;">-- autre utilisateur</span>
 
<span style="color: #00AA00;">-- creer base de données</span>
CREATE DATABASE target3001db CHARACTER SET utf8 COLLATE utf8_general_ci;
 
<span style="color: #00AA00;">-- modifier variables</span>
<span style="color: #00AA00;">-- Pour modifier un variable globale vous avez besoinde la permission SUPER.</span>
SHOW VARIABLES LIKE 'thread_stack';
  <span style="color: #00AA00;">-- si inférieure comme 256K, puis:</span>
  SET GLOBAL thread_stack = 256K;
SHOW VARIABLES LIKE 'query_cache_size';
  <span style="color: #00AA00;">-- si inférieure comme 32M, puis:</span>
  SET GLOBAL query_cache_size = 32M;
SHOW VARIABLES LIKE 'max_allowed_packet';
  <span style="color: #00AA00;">-- si inférieure comme 2M, puis:</span>
  SET GLOBAL max_allowed_packet = 2M;
 
 
'''Maintenant le DB-Dump va être importé sans composants (empty3001db.sql):'''
 
Pas la Dump complète avec des composants à la fois! Rappelez vous la base de données a plus de 60 MO, mais l'importastion de Dump est limité toujours, voir l'image. Exemple phpMyAdmin:
 
[[Image: dumpimport_f.png]]<br><br>
 
[http://server.ibfriedrich.com/download/mysql/mysql_target3001db_empty.zip Téléchargez le Dump ici.]<br><br>
 
'''TARGET 3001! Online DB Update:'''
[[Mise à jour de base de données TARGET 3001!|Téléchargez tous les composants de notre serveur]]. Le téléchargement ne prendque que quelques secondes mais l'import pourrait prendre jusqu'à deux heures. Votre serveur / réseau serait occupé en consequence.<br><br><br>
 
== Configuration d'un client MySQL en TARGET 3001! ==
 
Dans le même répertoire que le logiciel TARGET 3001!, vous trouverez un fichier appelé "libmsql.dll". Il représente le pilote client pour se connecter au serveur MySQL. En TARGET 3001! lui-même, vous devez entrer peu de choses pour obtenir une réponse du serveur MySQL:
 
Ouvrez un nouveau projet et appuyez sur la touche fonctionnelle [F2], pour ouvrir le navigateur composant. À la fin de la ligne supérieure du menu vous vous apercevrez que vous êtes toujours connecté à la base de données SQLite: <br>
 
[[image:mysql1_f.jpg]]<br>(Image 1: Gestionnaire composant, migration)
<br><br>
Maintenant cliquez sur l'entrée du menu "[ connecté à ... ]". Sélectionnez l'option "Réglages" dans le menu ouvrant. Après insérez le suivant:
 
Lancer TARGET 3001! utilisant la base de données MySQL (insérer "Oui")
MySQL Serveur (nom ou IP de votre serveur MySQL)
MySQL Utilisateur (votre nom d'utilisateur pour le serveur MySQL)
MySQL mot de passe (votre mot de passe aussi)
MySQL SSH clé (si SSH est utilisé: fichier clé SSH)
MySQL SSH Cert (si SSH est utilisé: fichier certificat)
MySQL SSH CA (si SSH est utilisé: fichier autorité de certificat)
<br>
Plusieurs utilisateurs peuvent utiliser le même nom d'utilisateur MySQL.<br><br>
 
== Insérer vos propres composants (migration) ==
 
Si vous aviez créé vos propres composants utilisateur dans SQLite (target3001.db), vous pouvez les importer '''une seule fois''' de votre version TARGET 3001! à la base de données nue fournie par IBF. Tous les IDs de composants et les types de composants personnalisés et ainsi de suite restent les mêmes dans la base de données. Cette action nous appelons la migration. Sélectionner la base de données SQLite la plus importante de l'un des postes utilisateurs multiples. Les autres composants provenant d'autres utilisateurs peuvent être ajoutés plus tard.
 
Utilisez le menu "[connecté à ...]" pour passer à la base de données MySQL. Dans ce menu, sélectionnez "Migration de SQLite à MySQL". Ensuite, entrez cette base de données SQLite target3001.db, qui doit être migré vers MySQL. En conséquence une migration vers MySQL est fait le plus facile à commencer par le poste de travail qui a la base de données SQLite la plus importante.
 
Maintenant, tous les clients auront accès à la base de données MySQL.
 
 
== Est-ce que MariaDB fonctionne aussi à la place de MySQL ? ==
 
 
La base de données du composant TARGET fonctionne dans le réseau avec MySQL 5.1.12 à 5.7 si vous n'utilisez pas SQLite localement (par défaut). MariaDB est censée être compatible avec MySQL pour la plupart. Cependant, il y a malheureusement des problèmes lorsqu'on l'utilise avec TARGET. Un client nous a écrit ce qui suit :
 
"J'ai maintenant recréé la base de données chez MariaDB et importé le [https://server.ibfriedrich.com/download/mysql/mysql_target3001db_empty.zip dump avec la base de données vide]. Ensuite, j'ai effectué une mise à jour de la base de données en ligne dans le navigateur du composant directement via TARGET et j'ai ainsi rempli la base de données. Comme décrit, cela a pris beaucoup de temps, mais maintenant la base de données semble fonctionner correctement avec MariaDB".<br><br>


Si TARGET ne peut plus se connecter à la base de données ou s'il affiche d'autres messages d'erreur, cela peut être dû à des utilisateurs supprimés. Le cas échéant, recréer ces utilisateurs dans la base de données MySQL.<br><br>




[[de:MySQL]][[en:MySQL]]
[[de:MySQL]][[en:MySQL]]

Dernière version du 22 janvier 2025 à 16:54

SQLiteMySQL
SQLiteMySQL



Regardez aussi l'article Base de données des composants.

MySQL / MariaDB : la base de données rapide pour plusieurs postes de travail

La base de données de composants SQLite préinstallée avec TARGET devient lente avec les taux de transfert réseau habituels en mode multi-utilisateurs. Celui qui veut accéder à une base de données de composants commune TARGET dans un réseau avec plusieurs postes de travail, a besoin des composants dans une base de données MySQL' ou dans une MariaDB. Dans le cadre d'une utilisation individuelle, la base de données SQLite a cependant, selon notre expérience, une longueur d'avance.

Installer MySQL / MariaDB

Vous trouverez les installateurs à télécharger ici : MySQL et MariaDB.

Vous pouvez effectuer l'installation de la base de données sur un PC ou sur un serveur.

Configurer / adapter le serveur MySQL / MariaDB et insérer la base de données TARGET

  • Créez par exemple une nouvelle base de données vide « target3001db » (avec collation utf8mb3_general_ci) avec phpMyAdmin ou dans la console SQL :
CREATE DATABASE target3001db CHARACTER SET utf8 COLLATE utf8_general_ci ;
  • Téléchargez le fichier SQL suivant dans un ZIP et importez-le dans la nouvelle base de données vide : target3001db.zip (60 MB). Toutes les tables, toutes les fonctions et tous les triggers seront ainsi créés automatiquement.
  • Saisissez les utilisateurs et les droits pour la nouvelle base de données. Les noms d'utilisateur et les mots de passe ne doivent pas dépasser 16 caractères chacun. Les droits suivants sont nécessaires : SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, EXECUTE, CREATE ROUTINE, ALTER ROUTINE et TRIGGER.
  • Dans TARGET, dans le navigateur des composants, dans le menu « Connecté à... », vous devez définir les paramètres de MySQL. Entrez les paramètres pour MySQL. Ceux-ci sont également utilisés pour MariaDB :
Démarrer TARGET avec la base de données MySQL <indiquez ici « Oui »>.
Serveur MySQL <Nom ou IP de votre serveur MySQL/MariaDB>.
MySQL User <votre nom d'utilisateur pour le serveur MySQL/MariaDB>.
MySQL Password <votre mot de passe correspondant>.
MySQL SSH Key <si SSH est utilisé : SSH Key-File>
MySQL SSH Cert <si SSH est utilisé : Cert File>
MySQL SSH CA <si SSH est utilisé : Certificate-Authority-File>.
  • Si vous aviez déjà créé vos propres composants utilisateur dans la base de données SQLite, vous pouvez sélectionner l'option de menu « Connecté à... / Migration de SQLite vers MySQL... » une fois et sélectionner la base de données SQLite “target3001.db”. La synchronisation peut prendre un moment. Plus tard, d'autres fichiers *.db peuvent être importés dans le menu « Import / Export ».
  • Pour plus de sécurité, vous pouvez appeler à nouveau le point de menu « Mise à jour » dans le navigateur de composants.

Particularité pour les serveurs Windows

Nécessaire pour les serveurs Windows (avec la console) :

$ mysql -u root -p
ou sans mot de passe : $ mysql -u root
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'%' IDENTIFIED BY '<your-mysql-root-password>';
mysql> FLUSH PRIVILEGES;

Vous pouvez aussi effectuer ce réglage avec phpMyAdmin ou avec le Workbench.

Est-ce que MS-SQL fonctionne aussi au lieu de MySQL ou MariaDB ?

MS-SQL ne fonctionne malheureusement pas.

Au secours, MySQL envoie des messages d'erreur !

Si TARGET ne peut plus se connecter à la base de données ou s'il affiche d'autres messages d'erreur, cela peut être dû à des utilisateurs supprimés. Le cas échéant, recréer ces utilisateurs dans la base de données MySQL.