1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 11
    Points : 9
    Points
    9

    Par défaut [Zeos/Ubuntu] Socket "/tmp/mysql.sock" pas trouvé

    Bonjour à tous,

    J'ai un problème que je n'arrive pas à résoudre.

    J'ai un composent ZConnection qui me donne une erreur à la connexion avec une DB :
    socket "/tmp/mysql.sock" pas trouvé!
    Il a raison car le fichier "mysql.sock" n'existe pas dans "/tmp".
    j'ai trouvé une solution pas très clean : créer un lien vers "/var/run/mysqld/mysqld.sock" dans "/tmp" puis renommer le lien en "mysql.sock". Avec cette manipulation, j'ai la connexion avec la DB.
    Comment puis-je informer à ZConnection de l'emplacement exacte du socket ?
    Ou peut-être : où ZConnection prend cette information ?
    La variable socket dans mysql est bien "/var/run/mysqld/mysqld.sock".

    Merci

    Lazarus 1.6
    fp 3.0.0
    Ubuntu 16.04
    MariaDB 10.0.31

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 11
    Points : 9
    Points
    9

    Par défaut

    J'ai trouvé une demie solution:
    J'ai modifié la configuration de mysql pour que créé le fichier mysql.sock dans /tmp/, puis j'ai créé un lien dan /var/run/mysqld car phpmyadmin veux ce fichier dans cet emplacement, la aussi je n'ai pas trouvé comme phpmyadmin cherche ce fichier.

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 523
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 523
    Points : 10 443
    Points
    10 443

    Par défaut

    avez-vous essayé de mettre "localhost" pour le nom du serveur ?

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 11
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par mathieu Voir le message
    avez-vous essayé de mettre "localhost" pour le nom du serveur ?
    si vous parlez dans la propriété 'HostName"de ZConnection alors oui.
    J'ai vu que on peut lui ajouter des propriétés supplémentaires dans la propriété "Propriétés'; peut être que on peut lui transmettre l’emplacement du fichier mysql.sock mais je ne connais pas la bonne syntaxe. J'ai essayé "socket=/var/run/mysqld/mysqld.sock" mais sa ne marche pas.

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    juin 2003
    Messages
    6 523
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juin 2003
    Messages : 6 523
    Points : 10 443
    Points
    10 443

    Par défaut

    je savais déjà que pour la valeur "serveur" on pouvait indiquer soit un serveur (et port) soit le chemin du socket
    et là je viens de découvrir qu'en mettant "localhost" ou "localhost:PORT", le client MySQL ignorait cette valeur et essayait d'utiliser le socket par défaut

    essayez peut-être d'indiquer cela dans la valeur serveur : ":/var/run/mysqld/mysqld.sock" (avec les : au début)

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 11
    Points : 9
    Points
    9

    Par défaut

    Citation Envoyé par mathieu Voir le message
    indiquer cela dans la valeur serveur : ":/var/run/mysqld/mysqld.sock" (avec les : au début)
    Il me donne erreur de DB pas reconnue: /var/run/mysqld/mysqld.sock:3306/NomDB

  7. #7
    Membre confirmé

    Inscrit en
    juin 2012
    Messages
    296
    Détails du profil
    Informations forums :
    Inscription : juin 2012
    Messages : 296
    Points : 454
    Points
    454

    Par défaut

    Le problème semble plutôt venir de l'installation de mariadb que de ZeodDb, cette page pourrait peut-être aider:

    https://www.citizenz.info/mariadb-my...s-ubuntu-16-04

    Ceci dit par le passé MariaDb m'avait un peu gonflé avec PhpmyAdmin et j'ai fini par la virer pour en revenir à MySql standard:

    Nom : sql.jpg
Affichages : 37
Taille : 97,4 Ko

    Et le code ci-dessous fonctionne sans problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    procedure TFmain.SqlTest(Data_Base_Name:String);
    Begin
      E_SQLActif.Text:='MySql inactif';
      SqlOk:=False;
      MySQLMain.Protocol:='mysql';
      MySQLMain.HostName:=E_SQLHost.Text;
      MySQLMain.User:=E_SQLUser.Text;
      MySQLMain.PassWord:=E_SQLPass.Text;
      MySQLMain.Database:=Data_Base_Name;
      MySQLMain.Port:=3306;
      Try
        MySQLMain.Connect;
        E_SQLActif.Text:='SQL: '+MySQLMain.Version+' connecté.';
        SqlOk:=True;
      Except
        on E: Exception do
          ShowMessage(E.message);
      End;
    End;
    PS: Si MariaDb fonctionne hors Lazarus il faudrait faire une recherche de fichiers pour voir ou vont se nicher: mysqld.pid, mysqld.sock, mysqld.sock.lock normalement dans /var/run/mysqld.

    Un truc à vérifier aussi, chez moi /var/run et un lien symbolique qui renvoie sur /run ( à la racine ).

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    août 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : août 2005
    Messages : 11
    Points : 9
    Points
    9

    Par défaut

    Je n'ai pas eu de problèmes avec MariaDB et PhpMyAdmin. Le problème est le trio Zeos MariaDB PhpMyAdmin.
    Une idée : et si j'avais installé MariaDB avant Zeos ? Peut-être qu'il aurait pris le bon emplacement du socket ?
    Etan donné que Zeos na pas trouvé une configuration existante au moment de son installation il a pris l'emplacement du socket par défaut (/tmp).

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/05/2010, 22h08
  2. Réponses: 5
    Dernier message: 22/10/2008, 18h19
  3. Réponses: 3
    Dernier message: 18/06/2007, 17h24
  4. Réponses: 2
    Dernier message: 26/01/2007, 12h18
  5. suppression tmp / mysql.sock
    Par crazykangourou dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 20/09/2006, 11h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo