Bienvenue, Invité
Nom d'utilisateur : Mot de passe : Se souvenir de moi

SUJET : Accès via socket à un serveur MySQL ...

Accès via socket à un serveur MySQL ... il y a 6 ans 2 mois #40685

  • Plasma
  • Portrait de Plasma
  • Hors ligne
  • Fresh Boarder
  • Messages : 4
  • Remerciements reçus 1
  • Karma: 1
Bonjour,

je ne sais pas si ma question est bien placée.

Mon problème d'hier a été d'accéder à des serveurs MySQL accessibles uniquement via socket.

il est tout a fait possible de les configurer pour l'utilisation

en paramètrant dans ./dolibarr/htdocs/conf/conf.php
$dolibarr_main_db_host='localhost:/{my_path_to_socket}/mysql.sock';

le serveur est accessible via le serveur http sans problème

MAIS, impossible de créer une sauvegarde de la base ou d'effectuer une restauration de celle-ci ... ( enfin je n'ai pas trouvé )

cette fonctionnalité existe-elle ? est-elle prévue ?

...

si tel n'est pas le cas, voici une solution pour ceux que cela intéresse ( ou qui sont obligés de travailler avec des sockets )

Cela nécessite d'apporter de petites modifications au code de 3 pages ( sur une version 3.3.0 )

htdocs/conf/config.php

après $dolibarr_main_db_port='';
rajouter
$dolibarr_main_db_socket='/{my_path_to_socket}/mysql.sock';

htdocs/admin/tools/export.php

commenter les lignes 128,129,130
//$param=$dolibarr_main_db_name." -h ".$dolibarr_main_db_host;
//$param.=" -u ".$dolibarr_main_db_user;
//if (! empty($dolibarr_main_db_port)) $param.=" -P ".$dolibarr_main_db_port;

ajouter après ces lignes
//
// *** Modification for socket access [BEGIN]
$param=$dolibarr_main_db_name;
if (! empty($dolibarr_main_db_socket)) {
$param.=" --socket=".$dolibarr_main_db_socket;
} else {
$param.=" -h ".$dolibarr_main_db_host;
}
$param.=" -u ".$dolibarr_main_db_user;
if (empty($dolibarr_main_db_socket) && (! empty($dolibarr_main_db_port))) $param.=" -P ".$dolibarr_main_db_port;
// *** Modification for socket access [END]
//

htdocs/admin/tools/dolibarr_import.php

commenter les lignes 127,128
//$param.=" -h ".$dolibarr_main_db_host;
//if (! empty($dolibarr_main_db_port)) $param.=" -P ".$dolibarr_main_db_port;

ajouter après ces lignes
//
// *** Modification for socket accessi [BEGIN]
if (! empty($dolibarr_main_db_socket)) {
$param.=" --socket=".$dolibarr_main_db_socket;
} else {
$param.=" -h ".$dolibarr_main_db_host;
}
if (empty($dolibarr_main_db_socket) && (! empty($dolibarr_main_db_port))) $param.=" -P ".$dolibarr_main_db_port;
// *** Modification for socket access [END]
//
Dernière édition: il y a 6 ans 2 mois par Plasma. Raison: mise en forme
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Accès via socket à un serveur MySQL ... il y a 6 ans 2 mois #40694

  • philazerty
  • Portrait de philazerty
  • Hors ligne
  • Gold Boarder
  • Intégrateur Mon-Dolibarr.fr Hébergement Infogéré
  • Messages : 5715
  • Remerciements reçus 855
  • Karma: 112
Bonjour,
Quel intérêt d'utiliser socket pour la connexion ? Mysql est sur une autre machine et vous souhaitez sécuriser la connexion ????

Si mysql est sur autre machine il est normal que la sauvegarde ne fonctionne pas à mes yeux puisque cela veut dire que l'appel à mysqldump (un exécutable on va dire) ne peut qu'échouer sauf si tout ce qu'il faut est sur la machine mais à tester.
Jamais essayé de faire un dump via socket.

Sinon un grand merci pour ton retour
Dernière édition: il y a 6 ans 2 mois par philazerty.
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Accès via socket à un serveur MySQL ... il y a 6 ans 2 mois #40698

  • Plasma
  • Portrait de Plasma
  • Hors ligne
  • Fresh Boarder
  • Messages : 4
  • Remerciements reçus 1
  • Karma: 1
philazerty écrit:
Quel intérêt d'utiliser socket pour la connexion ?
(bien évidemment je parle du cas d'un serveur Apache+MySQL sous Linux/Un*x.)

L'objectif est la sécurité.

L'un des paramètres de mysqld est skip-networking qui désactive toute connexion réseau vers le serveur MySQL, ainsi seules les appli locales peuvent se connecter au serveur MySQL. Et ceci sans nécessiter de firewalling.

Dans le cas qui nous intéresse, l'attention sera donc focalisée sur la sécurisation du serveur Apache => accès SSL + blocage des ports inutiles uniquement.
Dernière édition: il y a 6 ans 2 mois par Plasma. Raison: mise en forme
L'administrateur a désactivé l'accès en écriture pour le public.

Re: Accès via socket à un serveur MySQL ... il y a 6 ans 2 mois #40700

  • philazerty
  • Portrait de philazerty
  • Hors ligne
  • Gold Boarder
  • Intégrateur Mon-Dolibarr.fr Hébergement Infogéré
  • Messages : 5715
  • Remerciements reçus 855
  • Karma: 112
Ok je voulais juste une confirmation, j'utilise moi-même skip-networking. Le serveur mysql ne répond que localement, pas de connexion possible depuis l'extérieur. Ce qui veut dire que même avec les logins mysql, impossible d'attaquer la base (sauf avec un phpmyadmin) installé sur mon propre serveur.

Je n'ai jamais pensé à utiliser socket pour accéder au serveur, pas eu de besoin.

Encore merci pour ton retour. ;-)
L'administrateur a désactivé l'accès en écriture pour le public.