Base de données Mise en place des outils Installer MySqlWorkbench sur Windows depuis le NAS mtic-wifi Installer SQLiteStudio sur Windows depuis le NAS ou depuis sa page d’accueil Installer SQLite et driver Qt associé sur LUbuntu/Raspberry Pi: sudo apt install sqlite3 sqlite3-doc libqt5sql5-sqlite mtic-lora Installer MySQL Server sur LUbuntu/Raspberry Pi: sudo apt install mysql-server Configurer MYSQL configurer mot de passe root $ sudo mysql mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqladmin'; Query OK, 0 rows affected (0,02 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0,01 sec) mysql> SELECT user, plugin FROM mysql.user; +------------------+-----------------------+ | user | plugin | +------------------+-----------------------+ | debian-sys-maint | caching_sha2_password | | mysql.infoschema | caching_sha2_password | | mysql.session | caching_sha2_password | | mysql.sys | caching_sha2_password | | root | mysql_native_password | +------------------+-----------------------+ 5 rows in set (0,00 sec) mysql> exit Créer un nouvel utilisateur MySQL $ mysql -u root -p mysql> SHOW VARIABLES LIKE 'validate_password%'; (1) +-------------------------------------------------+--------+ | Variable_name | Value | +-------------------------------------------------+--------+ | validate_password.changed_characters_percentage | 0 | | validate_password.check_user_name | ON | | validate_password.dictionary_file | | | validate_password.length | 8 | | validate_password.mixed_case_count | 1 | | validate_password.number_count | 1 | | validate_password.policy | MEDIUM | | validate_password.special_char_count | 1 | +-------------------------------------------------+--------+ 8 rows in set (0,01 sec) mysql> CREATE USER 'mtic-lora'@'%' IDENTIFIED WITH mysql_native_password BY 'MTIC-LoRa-2024'; (2) Query OK, 0 rows affected (0,01 sec) mysql> exit Bye 1 Affichage politique de mot de passe ⇒ 8+ caractères ET majuscules/minuscules ET chiffres ET caractères spéciaux 2 Cration utilisateur “mtic-lora” avec mot de passe en accord avec la politique de sécurité Créer une BDD accessible à l’utilisateur “mtic-lora” $ mysql -u root -p mysql> CREATE DATABASE dbMticLora; (1) Query OK, 1 row affected (0,03 sec) mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON dbMticLora.* TO 'mtic-lora'@'%'; (2) Query OK, 0 rows affected (0,01 sec) mysql> 1 Création BDD 2 Attribution des droits SELECT, UPDATE … à l’utilisateur “mtic-lora” connecté depuis n’importe quelle IP (→ '%') Autoriser un accès distant à MySQL en modifiant /etc/mysql/mysql.conf.d/mysql.cnf # If MySQL is running as a replication slave, this should be # changed. Ref https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_tmpdir # tmpdir = /tmp # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = #192.168.5.12(1) mysqlx-bind-address = 127.0.0.1 1 Mettre IP de la VM LUbuntu ou de la Raspberry Pi Redémarrer le service avec : sudo systemctl restart mysql.service Autoriser l’accès à MySQL dans le firewall $ sudo ufw allow mysql La règle a été ajoutée La règle a été ajoutée (v6) [Ressources consultées] : How to Install MySQL Server on Ubuntu 23.04 Lunar Lobster MySQL: Allow remote connections How to Reset a MySQL Root Password How do I create a new database and database user in MySQL? mysql bind-address vs mysqlx-bind-address setting to allow remote connection Utilisation de MySqlWorkbench Prise en main Your browser does not support the video tag. Exporter un modèle au format SQLite MySqlWorkbench est un outil dédié aux BDD MySQL. Cependant, il est possible — via l’ajout d’un plugin — d’exporter un modèle sous forme SQL dans un format compatible avec SQLite. Le fichier de plugin se résume au script Python suivant : export_sqlite_grt.py Procédure pour télécharger le script depuis Github Ci-dessous figure — pour information — la procédure pour télécharger le script depuis son dépôt Github. Bien veiller à télécharger la version proposée (→ pull request) par l’utilisateur “sstain” à son auteur pour prendre en charge la version 3 de Python : Se rendre sur le dépôt Github mysql-wb-exportsqlite Se placer dans l’onglet Pull Requests puis sélectionner “Workbench 8.0.26 (Python 3.7.7) compatibility” Se placer ensuite dans l’onglet Commits et ouvrir le commit “Workbench 8.0.26 (Python 3.7.7) compatibility” Sélectionner l’option “View file” dans le menu … situé à droite du nom de fichier (→ export_sqlite_grt.py) Sélectionner enfin l’icône ⭳ pour télécharger le fichier en local Ajout du plugin Pour ajouter le plugin à MySqlWorkbench, il suffit alors de : Aller dans le menu Scripting Install Plugin/Module… Sélectionner le fichier export_sqlite_grt.py Valider l’importation Redémarrer MySqlWorkbench ⇒ la fonctionnalité supplémentaire ajoutée est alors accessible depuis le menu Tools Catalog Export SQLite CREATE Script Export du modèle au format SQLite Sélectionner le menu Tools Catalog Export SQLite CREATE Script Le code SQL compatible avec la syntaxe SQLite est alors proposé dans la fenêtre qui s’ouvre Sauver le fichier dans, par exemple, c:\tmp\export-sqlite-from-mwb.sql Importation dans SQLiteStudio 🞄 🞄 🞄 Howto - Raspi OS howto - ESP32 S3