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.1 Problèmes d'exécution de mysql_install_db Le but du script
mysql_install_db
est de générer un nouveau
système de droits pour MySQL. Il ne modifiera aucune autre donnée!
Il ne fera rien du tout si vous avez des tables de droits installées.
Si vous voulez recréer vos tables de droits, vous devez éteindre le
serveur
mysqld
, si il fonctionnait, et faire ceci :
mv mysql-data-directory/mysql mysql-data-directory/mysql-old mysql_install_db
|
Cette section liste les problèmes que vous pourriez rencontrer lors
de l'exécution du script
mysql_install_db
:
-
mysql_install_db
n'installe pas les tables de droits
-
Vous réalisez que
mysql_install_db
n'arrive pas à installer les
tables de droits, et se termine sur ce message :
starting mysqld daemon with databases from XXXXXX mysql daemon ended
|
Dans ce cas, examinez le fichier de log très attentivement! Le fichier
de log est situé dans le dossier
XXXXXX
indiqué dans le message d'erreur,
et il indiquera pourquoi
mysqld
n'a pas démarré. SI vous ne comprenez pas
ce qui est arrivé, incluez le log dans votre message, lors de l'envoi du rapport
de bugs avec
mysqlbug
!
Comment rapporter des bogues ou problèmes .
-
Un démon
mysqld
fonctionne déjà
-
Dans ce cas, vous n'avez probablement pas exécuté
mysql_install_db
du tout.
Vous avez exécuté
mysql_install_db
une fois, lorsque vous avez installé
MySQL pour la première fois.
-
Installer un second démon
mysqld
n'est pas possible lorsque le premier fonctionne.
-
Cela arrive lorsque vous avez une installation MySQL pré-existantes, mais que
vous voulez installer une autre version ailleurs (par exemple, pour faire des
tests ou simplement pour avoir deux installations). Généralement, le problème
survient lorsque le second serveur est démarré, et qu'il essaie d'utiliser
les mêmes ports et sockets que le premier. Dans ce cas, vous recevez des
message d'erreur tels que :
Can't start server: Bind on
TCP/IP port: Address already in use
ou
Can't start server: Bind on
unix socket...
. Installer plusieurs serveurs sur la même machine .
-
You don't have write access to
/tmp
- Si vous n'avez pas les droits d'accès suffisant pour créer un fichier de socket
à l'endroit prévu (dans
/tmp
) ou les permissions pour créer un fichier temporaire
dans
/tmp,
vous allez avoir une erreur lors de l'utilisation de
mysql_install_db
ou avec
mysqld
.
Vous pouvez spécifier une socket différente et un dossier temporaire différent
avec les options suivantes :
shell> TMPDIR=/some_tmp_dir/ shell> MYSQL_UNIX_PORT=/some_tmp_dir/mysqld.sock shell> export TMPDIR MYSQL_UNIX_PORT
|
Voir Comment protéger
/tmp/mysql.sock
.
some_tmp_dir
doit être un chemin vers un dossier dans lequel vous avez
les permissions d'écriture. Variables d'environnement MySQL .
Après cela, vous devriez être capable d'exécuter
mysql_install_db
et démarrer le
serveur avec ces commandes :
shell> scripts/mysql_install_db shell> BINDIR/safe_mysqld &
|
-
mysqld
crashes immediately
-
Si vous utilisez RedHat version 5.0 avec une version de
glibc
plus ancienne que
2.0.7-5, assurez vous que vous avez installé les patchs
glibc
!
Il y a beaucoup de littérature à ce propos dans les archives de listes de diffusion.
Des liens vers les archives sont disponibles à
http://lists.mysql.com/ .
Voir aussi Notes relatives à Linux (toutes les versions de Linux) .
Vous pouvez aussi démarrer
mysqld
manuellement avec l'option
--skip-grant-tables
puis ajouter les tables de droits avec S
mysql
:
shell> BINDIR/safe_mysqld --skip-grant-tables & shell> BINDIR/mysql -u root mysql
|
Dans la base
mysql
, exécutez manuellement les commandes SQL disponibles
dans
mysql_install_db
. Assurez vous que vous n'oubliez pas la commande
mysqladmin flush-privileges
ou
mysqladmin reload
pour dire au serveur
de prendre en compte les tables de droits.
|