| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| mysql [Le 25/03/2026, 03:03] – mise en forme | màj liens | je ne vois pas trop l'intérêt du chapitre Qt5 ? réécrit et renommé modules | corrections | réécriture Connexions entrantes | liens internes | icône | détails krodelabestiole | mysql [Le 25/03/2026, 17:43] (Version actuelle) – [MySQL] détails CGI | double licence | détails krodelabestiole |
|---|
| ====== MySQL ====== | ====== MySQL ====== |
| |
| **[[https://www.mysql.com/|MySQL]]** est un [[wpfr>SGBD|système de gestion de bases de données relationnelles]] (SGBDR) [[wpfr>logiciel propriétaire|propriétaire]], très populaire, gratuit, performant, //multithread//... | **[[https://www.mysql.com/|MySQL]]** est un [[wpfr>SGBD|système de gestion de bases de données relationnelles]] (SGBDR) très populaire, gratuit, performant, //multithread//, sous double licence [[wpfr>logiciel libre|libre]] ou [[wpfr>logiciel propriétaire|propriétaire]] (il est libre quand distribué avec un logiciel libre, ce qui est le cas d'Ubuntu, mais pas forcément d'autres applications qui l'utilisent). |
| |
| <note tip>MySQL appartient à [[wpfr>Oracle_(entreprise)|Oracle]]. Il existe un fork open-source, plus communautaire, 100% compatible MySQL et a priori plus performant créé et maintenu par Michael Wideniusm fondateur de MySQL. Il s'agit de [[:MariaDB]], qui est également disponible sur Ubuntu, et choisi par défaut sur [[wpfr>Debian]].</note> | <note important> |
| | **MySQL** appartient à [[wpfr>Oracle_(entreprise)|Oracle]]. |
| |
| MySQL est principalement un //serveur// de bases de données. Pour s'y connecter localement ou à distance, on utilise un //client//. Il peut s'agir de la commande ''[[man>mysql]]'', ou couramment d'un script ou [[:nodejs|JavaScript]], ou [[:PHP]]. Il faudra dans ce dernier cas installer le [[:php#association_avec_un_serveur_de_base_de_donnees|module]] ''[[apt>php-mysql]]'' qui permet à PHP de communiquer avec un serveur MySQL. | Il existe un fork //[[wpfr>open source]]// et complètement [[wpfr>logiciel libre|libre]], plus communautaire, 100% compatible **MySQL** et a priori plus performant, créé et maintenu par le fondateur de MySQL, Michael Wideniusm. Il s'agit de **[[:MariaDB]]**, qui est également disponible sur Ubuntu, et choisi par défaut sur [[:distributions#Debian]]. |
| | </note> |
| | |
| | **MySQL** est principalement un //[[:serveur]]// de bases de données. Pour s'y connecter localement ou à distance, on utilise un //client//. Il peut s'agir de la commande ''[[man>mysql]]'', d'une application, ou pour le [[:Web]] d'un script [[wpfr>Common_Gateway_Interface|CGI]] : [[:nodejs|JavaScript]], [[:Python]], [[:Ruby]], [[:installation_non_standard_de_logiciel#Perl]], etc. ou [[:PHP]]. Il faudra dans ce dernier cas installer le [[:php#association_avec_un_serveur_de_base_de_donnees|module]] ''[[apt>php-mysql]]'' qui permet à PHP de communiquer avec un serveur MySQL. |
| |
| ===== Installation ===== | ===== Installation ===== |
| bind-address = XXX.XXX.XXX.XXX | bind-address = XXX.XXX.XXX.XXX |
| </file> | </file> |
| | où ''XXX.XXX.XXX.XXX'' est l'[[:reseau#lexique|adresse IP]] de l'interface sur laquelle MySQL doit écouter. Ceci permet de n'écouter que sur une IP privée si vous avez plusieurs interfaces réseaux, et de bloquer votre adresse publique (et donc Internet). |
| où ''XXX.XXX.XXX.XXX'' est l'[[:reseau#lexique|adresse IP]] de l'interface sur laquelle MySQL doit écouter. Ceci permet de n'écouter que sur une IP privée si vous avez plusieurs interfaces réseaux. | |
| |
| Pour forcer MySQL à écouter sur toutes les interfaces réseau, il suffit de commenter la ligne ''bind-address = 127.0.0.1'' (ou écrire ''bind-address = 0.0.0.0''), mais c'est très dangereux si le serveur est exposé sur Internet. | Pour forcer MySQL à écouter sur toutes les interfaces réseau, il suffit de commenter la ligne ''bind-address = 127.0.0.1'' (ou écrire ''bind-address = 0.0.0.0''), mais c'est très dangereux si le serveur est exposé sur Internet. |
| [[#Redémarrer]] le service après avoir modifié le fichier de configuration. | [[#Redémarrer]] le service après avoir modifié le fichier de configuration. |
| |
| Cependant l'authentification de chaque utilisateur MySQL dépend de sa localisation. | <note important>L'authentification de chaque utilisateur MySQL dépend de sa localisation.</note> |
| |
| Par exemple avec ''%%'nom_utilisateur'@'localhost'%%'', l'utilisateur ne peut se connecter que depuis la machine locale. | Par exemple avec ''%%'nom_utilisateur'@'localhost'%%'', l'utilisateur ne peut se connecter que depuis la machine locale. |
| |
| Pour [[#créer un utilisateur]] MySQL qui soit autorisé à se connecter à distance, remplacer ''%%@'localhost'%%'' par ''@'//XXX//.//XXX//.//XXX//.//XXX//%%'%%'', dans la commande, où ''//XXX//.//XXX//.//XXX//.//XXX//'' est l'[[:reseau#lexique|adresse IP]] d'où l'utilisateur doit pouvoir se connecter. | Pour [[#créer un utilisateur]] MySQL qui soit autorisé à se connecter à distance, remplacer ''%%@'localhost'%%'' par ''@'//XXX//.//XXX//.//XXX//.//XXX//%%'%%'', dans les requêtes le concernant, où ''//XXX//.//XXX//.//XXX//.//XXX//'' est l'[[:reseau#lexique|adresse IP]] d'où l'utilisateur doit pouvoir se connecter. |
| |
| Pour autoriser l'accès venant de n'importe quel emplacement (ce qui est très peu [[:sécurité|sécurisé]] !), remplacer l'adresse IP par le caractère ''%'' : '''nom_utilisateur'@'%%%'%%''. | Pour autoriser l'accès venant de n'importe quel emplacement (ce qui est très peu [[:sécurité|sécurisé]] !), remplacer l'adresse IP par le caractère ''%'' : '''nom_utilisateur'@'%%%'%%''. |