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
, s'il
fonctionnait. Puis, renommez le dossier
mysql
dans le dossier de données, sauvez
le, et exécutez le script
mysql_install_db
. Par exemple :
shell>mv mysql-data-directory/mysql mysql-data-directory/mysql-old
shell>mysql_install_db --user=mysql
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
! See
Section 1.4.1.3, « Comment rapporter un bogue ou un problème ».
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 pre-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 Can't start server: Bind on unix socket...
Pour des instructions sur la configuration de serveurs multiples, voyez la section Section 5.10, « Faire fonctionner plusieurs serveurs MySQL 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 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/mysql.sock
shell>export TMPDIR MYSQL_UNIX_PORT
some_tmp_dir
doit être le chemin
complet d'un dossier dans lequel vous avez les droits en
écriture.
Après cela, vous devriez être capable d'exécuter
mysql_install_db
et lancer le serveur
avec ces commandes :
shell>bin/mysql_install_db --user=mysql
shell>bin/mysqld_safe --user=mysql &
Si mysql_install_db
est situé dans le
dossier scripts
, modifiez la
première commande pour utiliser
scripts/mysql_install_db
.
Voyez Section A.4.5, « Comment protéger ou changer le fichier socket
/tmp/mysql.sock
». See
Annexe E, Variables d'environnement.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.