Install-mysql-4.1 echec demarrage-du-service

BenJ -  
 William.TASSIN -
Bonjour,

J'ai un problème avec mon installation mysql qui ne veut pas se lancer.
Avec la commande: mysql /usr/local/mysql/bin/mysqld Mysql ne se lance pas! Et j'ai la meme erreur en faisant mysql start

J'ai un message d'erreur avec mysql.sock : can't connect to local MySQL Server through socket 'tmp/mysql.sock' (2)

J'ai installe mysql-standard-4.1.21-pc-linux-gnu-i686-glibc23.tar.gz

Dans le fichier etc/my.cnf, j'ai decommente la ligne
#tmpdir = /tmp/

mais j'ai toujours la meme erreur!!


D'ou vient le problème svp ?

Merci d'avance pour votre aide ...

Configuration: Linux
Distribution: Cemtos 5.1
Apache 2.2.3
PHP 5.2.5
A voir également:

34 réponses

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut,

Ton fichier "mysql.sock" créé lors du lancement du démon doit se trouver ailleurs que dans /tmp (peut-être dans /var/lib/mysql/).

Tu dois ajuster la directive "socket=" dans my.cnf dans la rubrique [mysqld] et [client] comme indiqué là :

https://www.tech-recipes.com/rx/762/solve-cant-connect-to-local-mysql-server-through-socket-tmpmysqlsock/

ou lancer le client mysql avec l'option --socket= pointant vers le fichier mysql.sock avec son chemin complet, là où il se trouve réellement.


Dal
0
BenJ
 
Merci d'avoir repondu a mon post

Tu as raison mon fichier "mysql.sock" se trouve bien dans /var/lib/mysql/

J'ai donc ajuster la directive "socket=" dans my.cnf dans la rubrique [mysqld] et [client] comme c'etait indique dans ton lien :

[mysqld]
socket=/var/lib/mysql/mysql.sock 

[client]
socket=/var/lib/mysql/mysql.sock 


Cependant maintenant quand je tape la commande: mysql usr/local/mysql/bin/mysqld

J'ai l'erreur ERROR 1102 (42000): Incorrect database name '/usr/local/mysql/bin/mysqld'
0
BenJ
 
Dans le lien que tu m'as donne ils font changent :

[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/usr/local/mysql

[client]
socket=/var/lib/mysql/mysql.sock 


Dans mon fichier etc/my.cnf, je n'ai ajuste que socket de [mysqld] et de [client].

Est ce que je dois aussi ajuster ce qu'il y a ci dessous ?

[mysqld]
datadir=/usr/local/mysql/data
socket=/var/lib/mysql/mysql.sock

[mysql.server]
user=mysql
basedir=/usr/local/mysql


Est ce que mon erreur est lie a ca?

Merci pour votre aide

Cordialement

Benjamin
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut,

Cela vient de la façon dont tu construis ta commande mysql. Après la commande tu peux avoir soit des options (précédées de tiret(s)) soit un nom de base de donnée. L'argument "/usr/local/mysql/bin/mysqld" est donc considéré comme une base de données, alors que ce n'en est pas une (c'est l'exécutable du démon mysql, qui n'a rien à faire là).

Vois

man mysql

Pour lancer le client mysql sur le serveur tape juste :

mysql -p

Et authentifies toi avec le mot de passe correspondant à ton user mysql. Si tu n'as définit aucun mot de passe tape juste entrée (et n'oublies pas ultérieurement de paramétrer correctement mysql en définissant les accès des users, leurs privilèges et leurs mots de passe).


Dal
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BenJ
 
Quand je tape la commande : mysql /usr/local/mysql/bin/mysqld ou que je tape la commande mysql -p (en m'authentifiant)
j'ai une nouvelle 'erreur : "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' "

Pourtant j'ai bien modifie le fichier etc/my.cnf comme je l'ai dit precedemment dans mon post.
Quand je fait un find -name mysql.sock il ne trouve pas le fichier. Mon fichier mysql.sock n'est plus dans le repertoire /var/lib/mysql/

Je ne comprends pas pourquoi!!!

J'ai aussi essaye de rajouter des options a ma ligne de commande

mysql ... /usr/local/mysql/bin/mysqld --defaults-extra-file=/usr/local/mysql/data/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --skip-external-locking --port=3306 --socket=/tmp/mysql.sock --bind-address=127.0.0.1


Mais ca n'a pas marche, il affiche des messages d'erreurs en disant qu'il ne trouve pas le fichier, ou qu'il ne connait pas basedir et datadir ....

Donc voila, je ne sais vraiment pas comment resoudre mon bug

Si tu as une idee ... N'hesite pas!

Merci d'avance pour ton aide

Benjamin
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut,

j'ai une nouvelle 'erreur : "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' "

Non, c'est la même qu'au début :-)

Pourtant j'ai bien modifie le fichier etc/my.cnf comme je l'ai dit precedemment dans mon post.
Quand je fait un find -name mysql.sock il ne trouve pas le fichier. Mon fichier mysql.sock n'est plus dans le repertoire /var/lib/mysql/

Je ne comprends pas pourquoi!!!


C'est "/etc/my.cnf" (les "/" initiaux sont importants car ils différencient un chemin absolu d'un chemin relatif).

Après chaque changement de my.cnf, tu dois redémarrer le démon mysqld pour qu'il prenne en compte les changements.

Si /var/lib/mysql/mysql.sock n'est pas là ou il devrait être, c'est peut-être parce que le démon mysqld n'est pas démarré (et vérifier à cette occasion qu'il démarre correctement). Essaye :

ps aux | grep -i mysql

pour vérifier si le processus est lancé

J'ai aussi essaye de rajouter des options a ma ligne de commande
mysql ... /usr/local/mysql/bin/mysqld --defaults-extra-file=/usr/local/mysql/data/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --skip-external-locking --port=3306 --socket=/tmp/mysql.sock --bind-address=127.0.0.1


C'est un joyeux mélange. Là, tu lances "mysql" qui est le client, avec des options qui concernent "mysqld" qui est le serveur (aussi appelé "démon", d'où le "d" à la fin) et des trucs que n'arrive pas à expliquer (points de suspension, chemin absolu /usr/local/mysql/bin/mysqld, options inconnues dans mes versions).


Dal
0
BenJ
 
Oui c'est la même erreur qu'au début et ca m'énerve d'être bloque a cause de ça!

Après chaque changement de my.cnf, tu dois redémarrer le démon mysqld pour qu'il prenne en compte les changements.

Comment je fais pour redemarrer le démon mysqld (le serveur) ?
C'est quoi la commande car quand je tape /usr/local/mysql/bin/mysqld start il me dit : " Too many arguments (first extra is 'start')..."


Si /var/lib/mysql/mysql.sock n'est pas là ou il devrait être, c'est peut-être parce que le démon mysqld n'est pas démarré (et vérifier à cette occasion qu'il démarre correctement). Essaye :


Quand je fais la commande : ps aux | grep -i mysql
Mon serveur n'est pas démarré et je n'arrive pas a le lancer. C'est quoi la commande pour le relancer?

J'ai aussi essaye de rajouter des options a ma ligne de commande
mysql ... /usr/local/mysql/bin/mysqld --defaults-extra-file=/usr/local/mysql/data/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --skip-external-locking --port=3306 --socket=/tmp/mysql.sock --bind-address=127.0.0.1

C'est un joyeux mélange. Là, tu lances "mysql" qui est le client, avec des options qui concernent "mysqld" qui est le serveur (aussi appelé "démon", d'où le "d" à la fin) et des trucs que n'arrive pas à expliquer (points de suspension, chemin absolu /usr/local/mysql/bin/mysqld, options inconnues dans mes versions).


En ce qui concerne ce joyeux mélange,ce n'est pas le mien!
C'est ce que j'ai trouve sur le site : http://www.devside.net/archives/guides/linux/mysql

Merci pour ton aide

Benjamin
0
BenJ
 
Peut etre que l'ideal c'est que je desinstalle et que je reinstalle mysql-4.1.22

Peut etre que c'est mon installation de mysql qui n'est pas bonne!

Est ce quelqu'un connait un bon tutoriel pour installer mysql-4.1 facilement et sans bug ?

Merci d'avance

Benjamin
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Re,

Je n'utilise pas CentOS, mais il me semble que c'est un dérivé de RedHat Enterprise (que je n'utilise pas non plus d'ailleurs :-).

1.

Si tu as installé le serveur mysql avec le gestionnaire de paquets (yum, je suppose, avec une commande du type yum -y install mysql-server), il a dû te créer un script de démarrage du serveur qui devrait se trouver là et que tu pourrais tenter de lancer comme cela :

/etc/rc.d/init.d/mysqld start

et

/etc/rc.d/init.d/mysqld stop pour l'arrêter

et certainement

/etc/rc.d/init.d/mysqld restart pour faire un arrêt suivit d'un démarrage.

2.

Si tu as suivit la méthode indiquée sur le lien que tu as donné plus haut, j'espère que ce n'est pas une version 4.1 que tu installes (parce qu'ils en sont à la 6.0 quand même maintenant), et je suppose que tu as récupéré une version utilisable sur ton système. Tu vas devoir démarrer le serveur à la main, comme indiqué là :

http://dev.mysql.com/doc/refman/5.0/fr/mysqld-safe.html

Apparemment, dans ton cas (à adapter en fonction du répertoire réel d'installation de ton serveur mysql) :

cd /usr/local/mysql/
bin/safe_mysqld &


Une fois démarré, pour l'arrêter, tu peux faire un kill avec le PID donné par la commande ps là haut.

Si tu veux automatiser cela avec un script de démarrage et que ton installation ne t'en a pas créé, suit les instructions figurant là :

http://dev.mysql.com/doc/refman/5.0/fr/automatic-start.html

Après l'installation, une phase essentielle de paramétrage post-installation est nécessaire pour éviter les mauvaises surprises, les comptes initiaux créés par Mysql n'ayant pas de mot de passe :

http://dev.mysql.com/doc/refman/5.0/fr/post-installation.html


Dal
0
BenJ
 
J'utilise CentOS et c'est de la m****. Je préféré Ubuntu! Oui c'est un dérivé de RedHat Enterprise

En faite pour t'expliquer un peu plus, sur mon serveur Linux je dois installer Apache 2.2, PHP 5.2 et MySQL 4.1
Dans la version de Centos que j'ai installe, il y a des packages par défaut pour installer Apache 2.2, Php 5.1 et Mysql 5.0
Donc j'ai installe Apache 2.2 en faisant un yum install.....
En revanche pour PHP et Mysql ce n'est pas les versions que je veux installer donc je l'ai installe a la main en decompressant un tar.gz puis make, make install....

Je suis oblige de travailler sur Mysql-4.1 car les autres serveurs utilisent cette version. Je dois faire de la replication MySQL...
Mais après les manipulations on passera a la version 5.1 ou 6.0 :)


Donc j'ai utilise la 2eme methode que tu as indique.

J'ai déjà essaye de démarrer le démon en utilisant le safe_mysqld mais ca n'a pas marche :
Quand je tape : /usr/local/mysql/bin/safe_mysqld --user=mysql ou /usr/local/mysql/bin/safe_mysqld
Voila ce qui est affiche:
Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file usr/local/mysql/data/localhost.localdomain.pid
080218 16:26:33 mysqld ended


Donc en gros il démarre puis il s'arrête direct! Il y a pas un autre moyen pour le démarrer ?

Merci pour ton aide et tes explications

Benjamin
0
BenJ
 
J'ai essaye de réinstaller mysql.
J'ai télécharge mysql-4.1.22.tar.gz sur https://dev.mysql.com/downloads/mysql/4.1.html#linux
J'ai fait un tar zxvf mysql-4.1.tar.gz pour dezipper le fichier.
Ensuite je fais cd mysql-4.1
Et quand je veux configurer MySQL en faisant : ./configure --prefix=/usr/local/mysql-4.1
ça ne marche pas, il m'affiche la même erreur que tout a l'heure quand j'utilisais le safe_mysqld pour démarrer le démon!!

Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file usr/local/mysql/data/localhost.localdomain.pid
080218 16:26:33 mysqld ended


C'est quoi le localhost.localdomain.pid ?

Je ne sais pourquoi j'ai cette erreur :(

Est ce qu'il y a un ordre pour installer Apache PHP et MySQL ?

Est ce que je dois installer MySQL en 1er ?

Merci pour votre aide

Benjamin qui est perdu et qui a vraiment besoin d'aide!!!
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut,

1.

La procédure de lancement par mysql_safe décrite dans la documentation de MySQL et que je t'ai décrite plus haut, suppose que :

a. tu fasses un cd dans le répertoire d'installation
b. que tu lances l'application comme cela "bin/safe_mysqld &"

Ce n'est visiblement pas ce que tu as fait.

On analysera les messages d'erreur (s'il y en a) une fois que tu auras lancé correctement safe_mysqld (et si c'est encore d'actualité, vu que tu sembles tout bazarder sur cette version).

2.

Si tu décides de réinstaller quelque chose, tu devrais t'assurer que tu as bien désinstallé tout ce qui relève de la précédente version, d'autant plus que ce n'est pas la même.

Si tu as utilisé un script "make" pour l'installation de mysql-standard-4.1.21-pc-linux-gnu-i686-glibc23.tar.gz, vois si ce script "make" dispose d'une fonction "uninstall" (édite le Makefile) et sinon, fais simplement les opérations inverses de ce que fait la fonction "install". Ou les opérations inverses de tout ce que tu as fait.

3.

Je comprend que tu as désormais récupéré un package source là http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.22.tar.gz/from/pick#mirrors

Suit les instructions figurant dans le fichier "INSTALL-SOURCE" présent dans ce package.

Après avoir créé le groupe et user, c'est la ligne suivante qui doit être lancée, et pas celle que tu décris dans ton message.

./configure --prefix=/usr/local/mysql

4.

quand je veux configurer MySQL en faisant : ./configure --prefix=/usr/local/mysql-4.1
ça ne marche pas, il m'affiche la même erreur que tout a l'heure quand j'utilisais le safe_mysqld pour démarrer le démon!!

Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file usr/local/mysql/data/localhost.localdomain.pid
080218 16:26:33 mysqld ended


C'est très étrange, mais si tu as déjà quelque chose dans /usr/local/mysql-4.1, c'est peut être la cause de ce message.

C'est quoi le localhost.localdomain.pid ?

Visiblement, c'est le nom d'un fichier contenant le PID du démon d'un process Mysql, mais je ne comprend pas qu'il soit lancé au stade du ./configure. Es-tu sûr que c'est ce message ?

Quand tu auras pu lancer ton ./configure et que tu auras généré le Makefile, vérifie quelle est la valeur des CFLAGS et s'ils correspondent à ceux recommandés (ils insistent sur l'inclusion de l'option -fno-exceptions pour éviter des plantages du serveur), avant de lancer la compilation.

Le meilleur "tutoriel", c'est la documentation officielle de Mysql, dont tu as une version raccourcie pour l'installation dans "INSTALL-SOURCE" et une version plus complète pour la version 4.1 sur le site de mysql.


Dal
0
BenJ
 
Salut,

1.

Que je fasse d'abord le cd /usr/local/mysql (répertoire d'installation) puis que je lance l'application comme ceci "bin/safe_mysqld &"
J'ai la meme erreur que precedemment :

Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file usr/local/mysql/data/localhost.localdomain.pid
080219 09:06:12 mysqld ended



2.

J'ai supprime mon repertoire /usr/local/mysql en utilisant la commande cd /usr/local puis en faisant un rm -Rf mysql


3.

J'ai telecharge le package source que tu m'as donne en lien : http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.22.tar.gz/from/pick#mirrors

J'ai fait un wget ... pour recuperer le .tar.gz sur ma machine
J'ai fait un tar zxvf mysql-4.1.22.tar.gz pour dezipper le fichier.
J'ai fait cd /usr/local/mysql-4.1.22
J'ai cree le groupe : groupadd mysq et j'ai cree le user : useradd -g mysql mysql
Et quand je veux configurer MySQL en faisant : ./configure --prefix=/usr/local/mysql

J'ai le message d'erreur suivant :
checking for termcap functions library... configure : error : No curses/termcap library found

J'ai fait un yum install termac et un yum -y install ncurses-devel puis j'ai refait le ./configure --prefix=/usr/local/mysql
Mais il affiche la meme erreur : checking for termcap functions library... configure : error : No curses/termcap library found

Merci pour ton aide

Benjamin
0
BenJ
 
Rectification j'ai redemarre ma machine et l'erreur n'apparait pu

J'ai donc fait le ./configure --prefix=/usr/local/mysql
Puis make
Et make install
0
BenJ
 
Voici toutes les etapes de mon installation :

wget 'http:// ..' en utilisant le lien que tu m'avais donne
tar zxvf mysql-4.1.22.tar.gz
groupadd mysq
useradd -g mysql mysql
cd /usr/src/mysql4.1.22
./configure --prefix=/usr/local/mysql
make
make install
cp support-files/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql
chown -R root .
chown -R mysql var
chgrp -R mysql .
bin/mysql_safe &


Et maheureusement j'ai toujours la meme erreur :

Starting mysqld daemon with databases from /usr/local/mysql/data
STOPPING server from pid file usr/local/mysql/data/localhost.localdomain.pid
080219 10:42:33 mysqld ended


Est ce que j'ai oublie d'installer ou de configurer quelquechose ?

J'aimerais savoir et comprendre pourquoi il me met ce message d'erreur

Merci pour ton aide

Benjamin
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Bonjour,

J'ai donc fait le ./configure --prefix=/usr/local/mysql
Puis make
Et make install


Tu n'indiques pas si tu as vérifié que le Makefile utilise bien les CFLAGS recommandés pour l'optimisation et la stabilité du binaire compilé, mais je suppose que tu l'as fait.

La procédure d'installation ne s'arrête pas là :-)

En 2.9.1 du INSTALL-SOURCE, tu t'es arrêté au 7.

Continue, tu es sur la bonne voie !


Dal
0
pouet
 
Lu Benj

dans ton fichier de log tu n'as rien?
il se trouve dans ton fichier data normalement
/usr/local/mysql/data/TON_NOM_DE_SERVEUR.err

donne nous les dernieres lignes.

Autre truc lors de ton installation tu n'as pas générer tes tables j'ai l 'impression

la directive

scripts/mysql_install_db --user=mysql

donne le fichier .err deja ca avancera le shmilbick !
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Désolé, j'ai posté sans voir ton message à quelques secondes près.

Tu n'as pas créé les tables "grant" pour le user "mysql" ? Tente quand même de le faire.

bin/mysql_install_db --user=mysql

As-tu des logs sur l'erreur, dans un fichier du genre /usr/local/mysql/data/localhost.localdomain.err ?


Dal
0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Lol, j'ai encore frappé.

Juste un truc.. ton répertoire de données s'appelle bien "data" non.. ?

Tu n'aurais pas dû faire :

chown -R mysql data

dans ces conditions ?

Refait :

cd /usr/local/mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .



Dal
0
BenJ
 
Merci pour toutes vos réponses alors je pense que je suis sur la bonne voie meme si ce n'est pas encore finit

Alors j'ai oublie de marquer une étape de mon installation. J'avais initialiser la configuration de la base de donnée grâce à la commande:
bin/mysql_install_db --user=mysql

Ensuite j'ai fait un : ps -aux | grep -i mysql
Puis avec un kill + numéro processus j'ai arrête tous les processus qui tournaient

Puis j'ai refait la commande :
cd /usr/local/mysql
bin/mysql_safe &


Et j'ai eu le message :
Starting mysqld daemon with databases from /usr/local/mysql/var
Et le serveur ne s'arrete pas! Il continue de tourner.... :) donc on dirait que ça marche
Si je tape mysql, je peux taper les commandes sql

C'est quoi la commande pour voir les tables qui sont déjà dans ma base de données ?

Donc la j'ai accès a mon serveur mysql et pour le client mysql je peux le démarrer comment ?

Merci pour votre aide

Benjamin
0