Documentation

MySQL

SQLiteMySQL


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

MySQL: La base de données très performante pour TARGET 3001! multiuser

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.



Note : Veuillez utiliser la version 5.1.12 à 5.7 de MySQL. L'utilisation d'outils comme MySQL Workbench peut causer des problèmes.



Télécharger MySQL

http://dev.mysql.com/downloads/mysql/


Installer un serveur MySQL

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

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:

Google: Installer MySQL


Adapter un serveur MySQL et inserer une TARGET 3001! base de données

Vous avez deux options:


NOTE: Les noms d'utilisateurs et mots de passe ne doit pas avoir plus de 16 caractères.


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:

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

-- Créer utilisateur 1, lui donner les droits nécessaires  *** si nécessaire remplacer target3001user1 et target3001user1_password ***
GRANT USAGE ON *.* TO 'target3001user1'@'%' IDENTIFIED BY 'target3001user1_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, EXECUTE, CREATE ROUTINE,
ALTER ROUTINE, TRIGGER ON target3001db.* TO 'target3001user1'@'%';
-- Créer utilisateur 2, lui donner les droits nécessaires  *** si nécessaire remplacer target3001user2 et target3001user2_password ***
GRANT USAGE ON *.* TO 'target3001user2'@'%' IDENTIFIED BY 'target3001user2_password';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, EXECUTE, CREATE ROUTINE,
ALTER ROUTINE, TRIGGER ON target3001db.* TO 'target3001user2'@'%'; -- autre utilisateur
-- creer base de données
CREATE DATABASE target3001db CHARACTER SET utf8 COLLATE utf8_general_ci;
-- modifier variables
-- Pour modifier un variable globale vous avez besoinde la permission SUPER.
SHOW VARIABLES LIKE 'thread_stack';
 -- si inférieure comme 256K, puis:
 SET GLOBAL thread_stack = 256K;
SHOW VARIABLES LIKE 'query_cache_size';
 -- si inférieure comme 32M, puis:
 SET GLOBAL query_cache_size = 32M;
SHOW VARIABLES LIKE 'max_allowed_packet';
 -- si inférieure comme 2M, puis:
 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:

Dumpimport f.png

Téléchargez le Dump ici.

TARGET 3001! Online DB Update: 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.


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:

Mysql1 f.jpg
(Image 1: Gestionnaire composant, migration)

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)


Plusieurs utilisateurs peuvent utiliser le même nom d'utilisateur MySQL.

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