Alfresco 3.4.d probleme connection base de données MySQL

cancel
Showing results for 
Search instead for 
Did you mean: 
deslauriersc
Member II

Alfresco 3.4.d probleme connection base de données MySQL

Bonjour,

Je suis nouvelle sur le forum, donc si la façon de poser mes questions n'est pas conforme (ou trop longue…), veuillez m'excuser et m'en informer.

Je suis présentement en stage dans une organisation et ma mission est de produire une étude portant sur la mise en place d'un outil de GED (Alfresco), à savoir si oui ou non on met le projet de l'avant. Je ne suis pas familière avec la GED en général ni avec Alfresco, mais j'ai lu sur le sujet depuis le début de mon stage.

J'ai installé (avec l'installateur) sur une machine virtuelle roulant Redhat Linux 2.6.9-55 la plus récente version d'Alfresco, soit Alfresco Community 3.4.d, à la racine afin de pouvoir effectuer quelques tests, ce qui servira de "maquette" à présenter avec l'étude.

L'installation a fonctionné puisqu'après avoir lancé Alfresco, j'accède sans problème à l'Explorer et Share dans mon navigateur par http://xxxx/alfresco ou http://xxxx/share. J'ai exploré un peu les fonctionnalités, créé quelques utilisateurs et étudié la notion de "site" dans Share.

Avant de déterminer le moyen d'authentification des utilisateurs et une panoplie d'autres aspects au menu de l'étude, j'ai voulu m'assurer que la configuration d'Alfresco était correcte avant d'entamer les tests en me référant à l'aide d'Alfresco.
http://www.alfresco.com/help/34/community/all/

Et en cherchant sur internet.

Le problème que je rencontre semble mineur, mais je n'arrive pas à trouver la solution malgré toutes les pages que j'ai consultées.

Lorsque je fais la commande ./alfresco.sh start dans le terminal à partir de la racine du répertoire d'Alfresco, on me dit que

MySQL started at port 3306

Ce qui est normal (tomcat aussi démarre sans problème). Sur la page d'aide d'Alfresco mise en lien plus haut dans la section

Installing and Configuring Alfresco > Configuring Alfresco > Configuring databases > Configuring a MySQL database > Creating the Alfresco database

On dit que si avec l'installateur d'Alfresco j'avais choisi la base de données MySQL, je n'ai qu'à vérifier si la base de données a bien été créée (à l'étape 7) à l'aide de la commande

mysql -u root -p

Or, lorsque j'entre mon mot de passe j'obtiens le message suivant :

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

Effectivement, il n'y a rien à cet emplacement, mais un fichier mysql.sock se trouve cependant à cet endroit :

/alfresco/mysql/tmp/

Je ne suis pas très familière avec les systèmes unix, mais j'arrive à me débrouiller. En cherchant, je suis tombée sur la piste suivante, que j'ai tentée :

1. Je vais à l'emplacement /alfresco avec le terminal et je fais la commande ./alfresco.sh stop
2. Je vais à l'emplacement /etc/rc.d/init.d/ et je fais ./mysqld start
(À ce point-ci, j'ai essayé l'étape suivante sans redémarrer Tomcat puisque le problème concernait MySQL seulement à première vue, mais j'ai essayé ensuite après l'avoir redémarré à partir de /alfresco en faisant ./alfresco.sh start)
3. Je tente de nouveau mysql -u root -p

L'erreur que j'obtiens après avoir fait ces manipulations est maintenant la suivante :

ERROR 1045 (28000): Access denied for user 'root'@'localhost'

Pourtant, je suis bien connectée en root et le changement de mot de passe s'était fait avec succès plus tôt.

Cette personne semble avoir un problème semblable au mien, mais n'a pas reçu de réponse
http://forums.alfresco.com/en/viewtopic.php?f=9&t=37464

Je me questionne à savoir si je dois changer quelque chose dans certains fichiers de propriétés d'Alfresco ou peut-être dans le fichier /etc/my.cnf ou si l'erreur se trouve ailleurs complètement.

Pour ce qui est des logs, j'ai un fichier de 86 pages et j'avoue que je ne sais pas trop quoi y rechercher qui serait pertinent à inclure dans mon message.

Merci pour votre temps,
Catherine
7 Replies
rguinot
Customer

Re: Alfresco 3.4.d probleme connection base de données MySQL

Belle description Smiley Happy ça fait plaisir de voir que certains prennent le temps de s'approprier la syntaxe wiki et de détailler leurs problèmes.

En ce qui concerne :

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
, voici quelques façons de le "résoudre", à condition bien sur que mysql soit démarré.

Pour vérifier quelle est la socket utilisée, vous pouvez faire :

ps -ef | grep mysqld

Vous devrez avoir quelque chose comme ça en retour :

root      1993     1  0 18:37 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe –datadir=/opt/mysql-data –socket=/var/lib/mysql/mysql.sock –pid-file=/var/run/mysqld/mysqld.pid –basedir=/usr –user=mysql
mysql     2130  1993  0 18:37 ?        00:00:22 /usr/libexec/mysqld –basedir=/usr –datadir=/opt/mysql-data –user=mysql –log-error=/var/log/mysqld.log –pid-file=/var/run/mysqld/mysqld.pid –socket=/var/lib/mysql/mysql.sock
romain    6241  3674  0 20:03 pts/2    00:00:00 grep –color=auto mysqld

Ici, mon chemin de socket a la valeur par défaut (–socket=/var/lib/mysql/mysql.sock). Vous devriez donc retrouver la vôtre par ce moyen. Si c'est bien /alfresco/mysql/tmp/, voici plusieurs façons d'accéder à la base :

mysql -u root -p –socket=/alfresco/mysql/tmp/mysql.sock

Pour ne pas avoir à saisir la socket à chaque fois , vous pouvez ajouter socket=/alfresco/mysql/tmp/mysql.sock dans la section [mysql] du fichier my.cnf.
L'installeur fait ça automatiquement. Cependant, l'emplacement cherché par défaut est /etc/my.cnf ou le chemin fourni avec l'option –defaults-file.

Ceci fonctionnera donc aussi :
mysql -u root -p –defaults-file=/alfresco/mysql/my.cnf


Ainsi une possibilité pour ne pas avoir à saisir non plus defaults-file comme option de ligne de commande est de créer un lien symbolique pour ce fichier de conf vers l'emplacement par défaut, exemple :

ln -s /alfresco/mysql/my.cnf /etc/my.cnf 
Dans ce cas vous n'aurez pas à modifier la configuration, ni a passer la socket dans les options de la ligne de commande et vous devriez pouvoir accéder à la base par :

mysql -u root -p
michaelh
Active Member

Re: Alfresco 3.4.d probleme connection base de données MySQL

Ahh oui …
Je confirme, les questions bien posées sont rares, ça donne d'autant plus envie de répondre !
Je ne détourne pas plus longtemps le sujet, mais ça méritait d'être dit.
deslauriersc
Member II

Re: Alfresco 3.4.d probleme connection base de données MySQL

Bonjour,
Merci pour cette réponse.

Le chemin par défaut de la socket utilisée est bien /alfresco/mysql/tmp/

J'arrive maintenant à accéder à la base de données en faisant

mysql -u root -p –socket=/alfresco/mysql/tmp/mysql.sock

Dans le fichier my.cnf situé dans /alfresco/mysql il y a bien déjà la ligne socket=/alfresco/mysql/tmp/mysql.sock sous [mysql]

Par contre, lorsque je tente la commande

mysql -u root -p –defaults-file=/alfresco/mysql/my.cnf

On me dit

mysql: unknown variable 'defaults-file=/alfresco/mysql/my.cnf'

Je n'arrive pas non plus à créer de lien symbolique. Lorsque je fais la commande

ln -s /alfresco/mysql/my.cnf /etc/my.cnf

On me dit

ln: '/etc/my.cnf': fichier inexistant.

Et pourtant… il existe!




Quand on se donne la peine de bien poser une question, on a ainsi conscience du travail que ça implique de bien rédiger une réponse!

Merci encore,
Catherine
deslauriersc
Member II

Re: Alfresco 3.4.d probleme connection base de données MySQL

Bonjour,

J'ai trouvé pourquoi cette commande ne fonctionne pas pour moi (ma version de MySQL est 5.1.30)

mysql -u root -p –defaults-file=/alfresco/mysql/my.cnf

Il semblerait que l'option –defaults-file ne puisse qu'être placée en premier, donc si j'essaie ceci, ça fonctionne :

mysql –defaults-file=/alfresco/mysql/my.cnf -u root -p

Ensuite, je crois comprendre pourquoi il m'est impossible de créer un lien symbolique en utilisant la commande

ln -s /alfresco/mysql/my.cnf /etc/my.cnf

En théorie, cette commande permet de créer un lien symbolique dans le répertoire /etc/ dont le nom serait my.cnf et qui pointe sur le fichier my.cnf du répertoire /alfresco/mysql/ ce qui fait que lorsque MySQL appelle le fichier my.cnf du répertoire /etc/ (par défaut), il serait plutôt renvoyé au fichier my.cnf dans le répertoire /alfresco/mysql/.

En pratique cependant, on ne peut pas créer un lien dont le nom est identique à celui d'un objet situé dans le répertoire de création du lien à moins que cet objet ne soit lui-même un répertoire selon ce site :

http://uw714doc.sco.com/en/SDK_sysprog/_Using_Symbolic_Links.html

The syntax for creating symbolic links is as follows:

   ln -s sourcefile1 [ sourcefile2 … ] target

If target already exists and is not a directory, an error is returned.
Je ne vois pas vraiment comment faire autrement pour ne pas avoir à taper l'option –defaults-file en ligne de commande, car si je choisis un autre nom pour le lien symbolique, alors cela voudrait dire que le lien serait ignoré (et donc inutile) puisque, par défaut, MySQL chercherait toujours le fichier /etc/my.cnf non?

Je ne vois alternativement pas non plus de solution pour ne pas avoir à taper l'option –socket, car dans le fichier /alfresco/mysql/my.cnf, la ligne

socket=/alfresco/mysql/tmp/mysql.sock

se trouvait déjà sous la section [mysqld] donc je n'ai pas fait de changement. J'ai tenté d'ajouter la ligne dans le fichier par défaut /etc/my.cnf à la place et de mettre en commentaire la ligne

socket=/var/lib/mysql/mysql.sock

mais cela n'a rien changé.

J'arrive à me connecter à la base de données, ce qui était mon soucis au départ, mais ce serait bien plus commode de ne pas avoir à taper l'une ou l'autre de ces options en ligne de commande pour pouvoir y accéder, alors je me demande toujours comment remédier à la situation.

Merci!
Catherine
pascal_sighma
Member II

Re: Alfresco 3.4.d probleme connection base de données MySQL

Bonjour,

Je rebondi sur ce post car j'ai la même problématique mais malgré les réponses apportées je n'ai pas réussi a solutionner mon pb

J'ai donc installé Mysql depuis l'install d'Alfresco 3.4. Sur un Ubuntu-server 10.04
dir.root=/opt/alfresco/alf_data

web.application.context.url=http://localhost:8080/alfresco

### database connection properties ###
db.driver=org.gjt.mm.mysql.Driver
db.username=alfresco
db.password=alfresco
db.name=alfresco
db.url=jdbc:mysql://localhost:3306/${db.name}?useUnicode=true&characterEncoding=utf8

Lorsque je veux me connecter a mysql avec la commande
mysql -u root -p
Voila la réponse
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
J'ai donc voulu vérifier la socket utilisée
ps -ef | grep mysqld
voila la réponse ????
root     16658     1  0 09:05 ?        00:00:00 /bin/sh /opt/alfresco/mysql/bin/mysqld_safe –defaults-file=/opt/alfresco/mysql/my.cnf –port=3306 –socket=/opt/alfresco/mysql/tmp/mysql.sock –old-passwords –datadir=/opt/alfresco/mysql/data –log-error=/opt/alfresco/mysql/data/mysqld.log –pid-file=/opt/alfresco/mysql/data/ubuntu-virtual-machine.pid –lower-case-table-names=1 –default-table-type=InnoDB
mysql    16772 16658  0 09:05 ?        00:00:15 /opt/alfresco/mysql/bin/mysqld.bin –defaults-file=/opt/alfresco/mysql/my.cnf –basedir=/opt/alfresco/mysql –datadir=/opt/alfresco/mysql/data –user=mysql –old-passwords –lower-case-table-names=1 –default-table-type=InnoDB –log-error=/opt/alfresco/mysql/data/mysqld.log –pid-file=/opt/alfresco/mysql/data/ubuntu-virtual-machine.pid –socket=/opt/alfresco/mysql/tmp/mysql.sock –port=3306
root     17581 17384  0 16:43 pts/0    00:00:00 grep –color=auto mysqld
Donc a priori la socket est bonne.

J'ai essayé avec le mot de passe de root et avec le couple user mp de la base a savoir alfresco alfresco. mais toujours la même réponse. J'ai pensé que mysql ne donnait pas les droits d'acces à la base, mais je ne sais pas comment les vérifier et les changer si besoin. Est ce une bonne piste?

Je ne sais donc plus par quel biais attaquer mon problème …

Merci de votre aide
pascal_sighma
Member II

Re: Alfresco 3.4.d probleme connection base de données MySQL

Bonjour,

J'ai trouvé mon pb.

En faite mon client mysql ne pointait pas vers le bon fichier de conf : my.cnf

Il m'a suffit de rediriger le fichier de conf vers /etc/mysql
Sachant que je n'utilise pas mysql autrement que pour Alfresco
cd /etc/mysql/
ls
mv my.cnf my.cnf.old
ln -s /opt/alfresco/mysql/my.cnf my.cnf
A+
rguinot
Customer

Re: Alfresco 3.4.d probleme connection base de données MySQL

Vous pouvez aussi utiliser

 –defaults-file=/opt/alfresco/mysql/my.cnf

avec le client MySQL. /etc/my.cnf est pris par défaut.