Salut,
Lorsque l'on veut accéder à une BDD via un programme (écrit par exemple en PHP ou Python) : faut-il auparavant démarrer ("manuellement) le serveur mysql ou bien la librairie utilisée dans le programme s'en occupe ("automatiquement") ?
Merci.
Discussion :
Salut,
Lorsque l'on veut accéder à une BDD via un programme (écrit par exemple en PHP ou Python) : faut-il auparavant démarrer ("manuellement) le serveur mysql ou bien la librairie utilisée dans le programme s'en occupe ("automatiquement") ?
Merci.








Bonjour
Ma réponse est à prendre avec des pincettes, étant loin d'être un expert dans ce domaine.
Néanmoins, je serais surpris que l'appel à une librairie démarre mysql automatiquement.
En tout cas , sur mon serveur local (Uwamp) le démarrage de mysql est concomitant au démarrage du serveur.
Je pense qu'il serait plus prudent de démarrer mysql en même temps que le serveur.
Pierre
Salut,
Merci pour la réponse...
Oui dans le cas où on a un serveur web je suppose que ce dernier s'occupe de démarrer mysql...
Mais je me demande ce qu'il en estt en local, si j'ai une application qui utilise une bdd mysql cela me semble étrange que l'utilisateur doive démarrer le serveur mysql avant d'utiliser l'application...
Je sais qu'avec une bdd sqlite on n'a pas ce problème car il n'y a pas une architecture client-serveur...
Une BDD peut être en maintenance, raison pour laquelle elle n'est pas accessible, ce n'est pas à l'application de la démarrer !
L'administrateur de la BDD.
Blague à part, les bases de données sont un métier à part entière : de leur conception à leur maintenance.
Sauf si tu utilises SQLLite qui est une base de donnée fichier avec une bibliothèque permettant de manipuler ce fichier, les serveurs de bases de données vont du petit mysql embarqué dans une instance WAMP à des clusters de plusieurs centaines de machines capable de traiter des centaines de milliers de transactions par seconde et des téraoctet de données brutes (avec des notions de fail over, de réplication, d'équilibrage de charge, j'en passe des vertes et des pas mûr).
En entreprise, la probabilité qu'un développeur ait la main sur le serveur de base de données, est proche de zéro. Souvent il est contenu dans une base de donnée, elle même limité en ressource.
Ce qui veut dire :
- tu dois avoir un compte sur la base de donnée;
- des droits à minima de lecture, au mieux d'écriture à l’intérieur des tables de la base;
- l'architecture de la base de donnée (les tables, les indexs) sont créé par les administrateurs de la base à la mise en production de l'application.
Ton logiciel doit donc pouvoir:
- gérer les erreurs de connexions;
- celle de droits;
- parler le langage de la base de donnée (souvent SQL, mais attention au nombreux dialectes)
Donc pour répondre à ta question, non ton programme ne va pas lancer un serveur de base de donnée. Il va juste essayer de s'y connecter. Si tu fais du développement sur ta machine et que tu es l'administrateur de ta base de donnée, tu devras effectivement démarrer l'application avant ton programme. Sur WAMP, il est possible de le paramétrer pour qu'il démarre automatiquement le serveur de base de donnée au démarrage de l'application voir de la session.
Salut,
Merci pour ces précisions.
Oui je suis dans ce cas-là pour l'instant sauf que je ne veux pas installer wamp pour l'instant... Dans les tutos que je consulte l'auteur installe les différents éléments séparément : par exemple pour faire du php, il installe juste php et utilise alors le serveur interne qui est fournie avec (du coup pas besoin d'apache).
Et pour mysql il l'installe et alors il peut y accéder via php ou python (il y a des modules pour ça).
Pour sqlite, apparemment il n'y rien à installer et à démarrer : on crée un fichier et on y accède directe via notre programme Python (avec le module sqlite bien sûr).
Mais pour mysql (qui est du type client-serveur contrairement à sqlite) doit-on démarrer le serveur mysql pour y accéder via python ou php (en local) ? C'est la question que je pose car les auteurs des tutos ne sont pas clairs là-dessus...
Peut-être qu'ils n'en parlent pas car ce serait évident pour eux, en effet pour qu'un serveur réponde aux requêtes il faut bien qu'il soit à l'écoute et donc qu'il ait été démarré...
Mais comment fait-on pour démarrer le serveur mysql (sans apache ou autre) ? Et peut-on le faire par programme ? Bon je vois qu'il y a la ligne de commande pour ça et donc on devrait pouvoir faire cela par programme mais je n'ai vu personne dans les tutos faire cela...
Merci.
Si tu ne maitrise pas l'installation et le démarrage de mysql, je te conseille vivement de passer par WAMP, XAMP ou tout autre version simplifiée de cette pile de développement. Elles sont là pour simplifier au maximum l'utilisation de ces outils qui vienne du monde Linux. Sinon voici un lien vers la documentation officiel d'Oracle : https://dev.mysql.com/doc/refman/8.0...tallation.html
Si tu es sous Windows, je ne pourrais pas plus que ça t'aider, vu que je fais du Linux. Il doit être possible de créer un service Windows qui lance automatiquement mysql au démarrage.
Attention, le serveur web embarqué par PHP est extrêmement limité.
Apache ne démarre pas mysql. Il s'enfiche complétement.
Il se contente d'envoyer un fichier php à l'interpréteur php qui lui va tenter de se connecter sur la base de donnée. S'il y parvient, il demande les données à la base de donnée, qui les lui fournit. Il les traite alors et renvoi la page html ainsi généré à Apache qui la fournit au client. L'interpréteur est démarré par un module Apache qui doit être installé, paramétré et activé.
Sur les systèmes Linux, mysql est généralement mis en démarrage automatique au lancement, même si j'ai déjà vu des institutions qui le maintenait en manuel car il y avait des vérifications à faire en cas de crash système avant de relancer la base de donnée.
Oui effectivement, c'est confirmé dans le lien que tu as donné :
Ici il faut utiliser l'installeur windows...MySQL is now installed. If you configured MySQL as a service, then Windows automatically starts the MySQL server every time you restart the system. Also, this process installs the MySQL Installer application on the local host, which you can use later to upgrade or reconfigure MySQL server
J'ai eu aussi confirmation qu'on pouvait le lancer via la ligne de commande...
Partager