2.4 Configuration après l'installation, et tests
2 Installation de MySQL
Manuel de Référence MySQL 4.1 : Version Française
. Problèmes d'exécution de mysql_install_db ->Problèmes de démarrage du serveur MySQL . Lancer et arrêter MySQL automatiquement.
|
2.4.2 Problèmes de démarrage du serveur MySQL
Si vous allez utiliser des tables qui supportent les transactions (InnoDB, BDB),
vous devez commencer par créer un fichier
my.cnf
et y placer les options
de démarrage de ces tables. Types de tables MySQL .
Généralement, vous démarrez le serveur
mysqld
de l'une de ces façons :
Lorsque le démon
mysqld
démarre, il change le dossier de travail par
le dossier de données. C'est là qu'il doit trouver les fichiers de log,
et le fichier pid (ID de processus), ainsi que les dossiers de bases.
Le chemin du dossier de données est codé en dur lorsque la distribution
est compilée. Cependant, si
mysqld
cherche le dossier de données
ailleurs que là ou il est vraiment, il ne va pas fonctionner correctement.
Si vous avez des problèmes avec les chemins, vous pouvez utiliser les
options dont
mysqld
dispose pour vous permettre de modifier dynamiquement
le chemin du dossier de données : il suffit d'appeler
mysqld
avec l'option
--help
. Vous pouvez remplacer les valeurs par défaut en spécifiant les
chemins corrects en ligne de commande avec
mysqld
. Ces options
fonctionneront aussi avec
safe_mysqld
.
Normalement, vous devez appeler
mysqld
uniquement depuis le dossier
d'installation de MySQL. Vous pouvez faire cela avec l'option
--basedir
.
Vous pouvez aussi consulter l'affichage de
--help
pour vérifier le changement
des options de chemin (notez que
--help
doit
être l'option finale
d'une commande
mysqld
. Par exemple :
shell> EXECDIR/mysqld --basedir=/usr/local --help
|
Une fois que vous avez déterminé le chemin que vous souhaitez, vous pouvez
démarrer le serveur sans l'option
--help
.Quelque soit la méthode que vous utilisez pour démarrer le serveur, si elle échoue,
vérifiez le fichier de log pour savoir pourquoi. Les fichiers de log sont
situés dans le dossier de données (typiquement
/usr/local/mysql/data
pour une distribution binaire,
/usr/local/var
pour une distribution source, et
\mysql\data\mysql.err
sous Windows). Regardez dans le dossier de données
et recherchez des fichiers de la forme
host_name.err
et
host_name.log
ou
host_name
est le nom de votre serveur.
Vérifiez alors les dernières lignes de ce fichier :
shell> tail host_name.err shell> tail host_name.log
|
Recherchez des lignes comme celles-ci :
000729 14:50:10 bdb: Recovery function for LSN 1 27595 failed 000729 14:50:10 bdb: warning: ./test/t1.db: No such file or directory 000729 14:50:10 Can't init databases
|
Cela signifie que vous n'avez pas démarré
mysqld
avec
--bdb-no-recover
et Berkeley DB a trouvé une erreur dans les fichiers de log lorsqu'il a essayé
de restaurer votre base. Pour pouvoir continuer, vous devez déplacer le vieux
fichier de log Berkeley DB vers un autre dossier, pour l'examiner plus tard. Les
fichiers de logs sont nommés
log.0000000001
, et ce nombre augmente au fil
du temps.Si vous exécutez
mysqld
avec les tables BDB et que
mysqld
fait des
core dumps au démarrage, c'est peut être que vous avez des problèmes avec le fichier
de restauration de BDB. Dans ce cas, essayez de démarrer
mysqld
avec
--bdb-no-recover
. Si cela aide, vous devriez alors retirer tous les fichiers
de log
log.*
du dossier de données, et démarrer
mysqld
à nouveau.
Si vous obtenez l'erreur suivant, cela signifie que d'autres programmes (ou un autre
serveur
mysqld
) fonctionne déjà avec le port TCP/IP ou la socket que
mysqld
essaie d'utiliser :
Can't start server: Bind on TCP/IP port: Address already in use ou Can't start server : Bind on unix socket...
|
Utilisez
ps
pour vous assurer que vous n'avez pas d'autre serveur
mysqld
qui fonctionne. SI vous ne pouvez pas trouver d'autre serveur en fonctionnement,
essayer d'exécuter la commande
telnet votre-nom-d-hote numero-de-port-tcp
puis
pressez la touche 'Entrée' plusieurs fois. SI vous n'obtenez pas de message
d'erreur comme
telnet: Unable to connect to remote host: Connection refused
,
alors un autre processus utilise le port TCP/IP de
mysqld
.
Voyez Problèmes d'exécution de
mysql_install_db
et Faire fonctionner plusieurs serveurs MySQL sur la même machine .
Si
mysqld
est en fonctionnement, vous pouvez connaître les chemins qu'il utilise
avec la commande suivante :
shell> mysqladmin variables
|
ou
shell> mysqladmin -h 'your-host-name' variables
|
Si vous obtenez une erreur
Errcode 13
, qui indique
Permission denied
, lors
du démarrage de
mysqld
, cela signifie que vous n'avez pas les droits
de lecture ou d'écriture sur le dossier de données de MySQL, ou dans le dossier
de logs. Dans ce cas, vous devriez démarrer
mysqld
en tant que root, ou changer
les permissions des fichiers et dossiers utilisés.Si
safe_mysqld
démarre le serveur, mais que vous n'arrivez pas à vous y connecter,
vous devriez vous assurer que vous avez une entrée dans le fichier
/etc/hosts
qui
ressemble à ceci :
Ce problème survient uniquement sur les systèmes qui n'ont pas une librairie
de threads fonctionnels, ou pour lesquels MySQL a été configuré pour utiliser
les MIT-pthreads.SI vous ne pouvez pas faire démarrer
mysqld
, essayez de faire un fichier de trace
pour identifier le problème. Créer des fichiers de traçage .
Si vous utilisez les tables
InnoDB
, reportez vous aux options de configuration
spécifiques à
InnoDB
. Options de démarrage InnoDB .
Si vous utilisez les tables BDB (Berkeley DB), vous devriez vous familiariser
avec les options de démarrage spécifiques à BDB. Options de démarrage
BDB
.
|