Apparence
Uubu.fr

Les systèmes Linux, l’open source, les réseaux, l’interopérabilité, etc.
« Il vaut mieux viser la perfection et la manquer que viser l’imperfection et l’atteindre. » (Bertrand Arthur William RUSSEL)
04 May 2010

htmlpdflatexmanmd

mysql db databases           Bases de données


mysqld

mysqld, mysqld-max, mysqld-safe, mysql.server, mysqld_multi

Serveur de base de donnée mysql

mysqld est le serveur MySQL
mysqld-max version du serveur qui inclut des fonctionnalités supplémentaires
mysqld-safe est un script de démarrage du serveur. Tente de démarrer mysqld-max s'il existe sinon mysqld.
mysql.server est un script de démarrage du serveur, utilisé sur les systèmes qui ont un dossier contenant des services système. Il invoque mysqld-safe pour démarrer le serveur.
mysqld_multi est un script de démarrage qui peut lancer ou arrêter différentes instances du serveur, installées sur le système.

mysqld-max est une version mysqld compilée avec des fonctionnalités supplémentaires.
MySQL AB compile le serveur SQL avec les options suivantes :

        --with-server-suffix=-max ajoute le suffixe -max à la chaîne de version mysqld
        --with-innodb active le support du moteur InnoDB.
        --with-bdb active le support du moteur de table Berkeley DB

   Pour connaître les moteurs de stockage que votre serveur supporte, utiliser la commande SHOW ENGINES; safe_mysqld est la méthode recommandée pour démarrer un démon mysqld. Il ajoute des fonctionnalités de sécurité telles que le redémarrage automatique lorsqu'une erreur survient et l'enregistrement d'informations d'exécution dans un fichier de log. Par défaut il essaie de lancer mysqld-max s'il existe. Pour remplacer le comportement par défaut et spécifier explicitement le serveur à utiliser, spécifier --mysqld ou --mysqld-version.

Options identique de mysql_safe et mysqld

--basedir=path Le chemin jusqu'à l'installation de MySQL.
--core-file-size=# Taille du fichier core que mysqld doit être capable de créer. Il est passé à ulimit -c.
--datadir=path Le chemin jusqu'au dossier de données.
--defaults-extra-file=path Le nom du fichier d'options à lire en plus des fichiers habituels.
--defaults-file=path Le nom d'un fichier d'options qui doit être lu à la place du fichier d'options habituel.
--err-log=path L'ancienne option --log-error, à utiliser avant MySQL 4.0.
--ledir=path Le chemin jusqu'au dossier contenant le dossier mysqld. Utilisez cette option pour indiquer explicitement le lieu du serveur.
--log-error=path Écrit le fichier d'erreurs dans le fichier
--mysqld=prog_name Le nom du programme serveur (dans le dossier ledir) que vous voulez lancer. Cette option est nécessaire si vous utilisez une distribution binaire MySQL, mais que les données sont hors du dossier d'installation.
--mysqld-version=suffix Cette option est similaire à l'option --mysqld, mais vous spécifiez uniquement le suffixe du nom du programme. Le nom de base sera alors mysqld. Par exemple, si vous utilisez --mysqld-version=max, mysqld_safe va lancer le programme mysqld-max dans le dossier ledir. Si l'argument de --mysqld-version est vide, mysqld_safe utilise mysqld dans le dossier ledir.
--nice=priority Utilise le programme nice pour donner la priorité du serveur.
--no-defaults Ne lit aucun fichier d'options.
--open-files-limit=count Le nombre de fichiers que mysqld ouvre au maximum. La valeur de l'option est passée à ulimit -n. Notez que vous devez lancer mysqld_safe en tant que root pour que cela fonctionne correctement.
--pid-file=path Le chemin jusqu'au fichier d'identifiant de processus.
--port=port_num Le numéro de port à utiliser pour attendre les connexion TCP/IP.
--socket=path Le fichier de socket Unix pour les connexions locales.
--timezone=zone Configure la variable d'environnement TZ. Consultez votre documentation système pour connaître le format légal des fuseaux horaires.
--user=user_name | user_id Lance le serveur mysqld sous le nom d'utilisateur user_name ou avec l'utilisateur d'identifiant numérique ID user_id. (``Utilisateur'' dans ce contexte représente le compte système, et non pas les utilisateurs des tables de droits MySQL).

   mysql.server est utilisé pour arrêter les services. Il lit les options dans les sections [mysql.server], [mysqld] et [mysql_server]

  mysqld_multi est un programme pour gérer plusieurs serveurs MySQL qui utilisent différents sockets Unix et ports TCP.

  

Options de mylsql_multi

--config-file=name Un fichier de configuration alternatif. Note : cela ne va pas modifier les options de ce programme ([mysqld_multi]), mais uniquement les groupes [mysqld#]. Sans cette option, tout sera lu dans le fichier d'options traditionnel my.cnf. Cette option n'affecte pas la façon avec laquelle mysqld_multi lit ses options, qui sont toujours prises dans le groupe [mysqld_multi] du fichier my.cnf habituel.
--example Affiche un exemple de fichier de configuration.
--help Affiche l'aide et quitte.
--log=name Fichier de log. Le chemin complet et le nom du fichier sont nécessaires.
--mysqladmin=prog_name L'exécutable mysqladmin à utiliser lors de l'arrêt du serveur.
--mysqld=prog_name L'exécutable mysqld à utiliser. Notez que vous pouvez donner cette option à safe_mysqld. Ces options sont passées à mysqld. Assurez-vous que vous avez bien mysqld dans votre variable d'environnement PATH ou corrigez safe_mysqld.
--no-log Affiche les données d'historique à l'écran plutôt que dans le fichier de log. Par défaut, le fichier de log est activé.
--password=password Le mot de passe de l'utilisateur mysqladmin.
--tcp-ip Connexion au serveur MySQL via le port TCP/IP au lieu de la socket Unix. Cela affecte l'arrêt et le rapport. Si le fichier de socket manque, le serveur peut continuer de tourner, mais il n'est plus accessible que par port TCP/IP. Par défaut, les connexions sont faites avec les sockets Unix.
--user=user_name L'utilisateur MySQL pour mysqladmin.
--version Affiche le numéro de version et quitte.

Options de ligne de commande de mysqld

   mysqld lit les options des groupes mysqld et server. Un serveur MySQL intégré lit les options des groupes server, embedded et xxxxx_SERVER, où xxxxx est le nom de l'application. Pour voir la liste complète des options de mysqld: mysqld --verbose --help

--allow-suspicious-udfs contrôle le fait que les options utilisateurs qui disposent d'un seul symbole puisse être chargé. Désactivé par défaut.
--ansi utilise la syntaxe ANSI SQL. Pour un contrôle plus précis utiliser l'option --sql-mode
--basedir=path, --b path chemin jusqu'au dossier d'installation
--big-tables autorise la sauvegarde de grands résultats dans des fichiers temporaires. Résout le problème des erreur "table full", mais ralentit les requêtes alors que des tables en mémoire suffirait.
--bind-address=IP l'adresse IP à utiliser
--console écrit les messages d'erreurs sur la sortie standard, même si --log-error est spécifié
--character-sets-dir=path dossier contenant les jeux de caractères
--chroot=path met le démon mysqld en environnement chroot au démarrage
--core-file Écrit le fichier core lorsque mysqld s'arrête inopinément. Pour certains fichier vous devez spécifier aussi --core-file-size à safe_mysqld
--datadir=path, -h path chemin jusqu'au dossier des données
--debug[=debug_options], -# [debug_options] si MySQL est configuré avec --with-debug permet d'obtenir un fichier de trace.
--default-character-set=character spécifie le jeu de caractères par défaut
--default-collation=collation spécifie la collation par défaut.
--default-storage-engine=type synonyme de --default-table-type
--default-table-type=type spécifie le type de table par défaut
--delay-key=write[= OFF | ON | ALL ] spécifie comment l'option DELAYED KEYS doit être utilisé.
--des-key-file=file_name lit les clés par défaut utilisés par DES_ENCRYPT() et DES_DECRYPT()
--exit-info, -T Cette option est la combinaison d'options que vous pouvez utiliser pour le débogage du serveur mysqld.
--external-locking Active le verrouillage système. Notez que si vous utilisez cette option sur un système pour qui lockd ne fonctionne pas (comme Linux), vous allez bloquer rapidement mysqld avec les verrous. Anciennement appelée --enable-locking.
--flush Écrit toutes les données sur le disque après chaque requête SQL. Normalement, MySQL fait des écritures sur le disque après chaque requête, et laisse le système d'exploitation assurer la synchronisation avec le disque.
--init-file=file Lit les commandes SQL dans ce fichier au démarrage. Chaque commande doit être sur une ligne, et ne pas utiliser de commentaires.
--language=lang_name, -L lang_name Spécifie la langue utilisée pour les messages d'erreur du client. Le chemin complet doit être utilisé.
--log[=file], -l [file] Enregistre les connexions et les requêtes dans ce fichier. Si vous ne le faites pas, MySQL va utiliser host_name.log comme nom de fichier.
--log-bin=[file] Enregistre toutes les requêtes qui modifient des données dans un log. Ce log est utilisé pour la sauvegarde et la réplication. Si vous ne le faites pas, MySQL va utiliser host_name-bin comme nom de fichier.
--log-bin-index[=file] Fichier d'index pour les noms de fichiers de log binaire. Si vous ne le faites pas, MySQL va utiliser host_name-bin.index comme nom de fichier.
--log-error[=file] Enregistre les messages d'erreurs et les messages de démarrage dans ce fichier Si vous ne le faites pas, MySQL va utiliser host_name.err comme nom de fichier.
--log-isam[=file] Enregistre toutes les modifications des tables ISAM/MyISAM dans ce fichier (uniquement nécessaire pour déboguer ISAM/MyISAM).
--log-long-format Enregistre des informations supplémentaires dans les fichiers de log (log de modifications, log binaire de modifications, log de requêtes lentes, n'importe quel log en fait). Par exemple, le nom d'utilisateur et un timestamp sont enregistrés avec la requête. Si vous utilisez --log-slow-queries et --log-long-format, alors les requêtes qui n'utilisent pas d'index seront aussi enregistrées. Notez que --log-long-format est obsolète depuis la version 4.1, où --log-short-format a été introduite (le format de log long est la configuration par défaut en version 4.1). Notez aussi que depuis la version MySQL 4.1 l'option --log-queries-not-using-indexes est disponible pour enregistrer spécifiquement les requête qui n'utilisent pas d'index, dans le log de requêtes lentes.
--log-queries-not-using-indexes Si vous utilisez cette option avec --log-slow-queries, alors les requêtes qui n'utilisent pas d'index seront aussi enregistrées dans le log de requêtes lentes.
--log-short-format Enregistre moins d'information dans les fichiers de log (log de modifications, log binaire de modifications, log de requêtes lentes, n'importe quel log en fait). Par exemple, les noms d'utilisateur et un timestamp ne seront pas enregistrés avec les requêtes.
--log-slow-queries[=file] Enregistre toutes les requêtes qui prennent plus de long_query_time secondes a s'exécuter.
--log-warnings, -W Affiche les alertes comme Aborted connection... dans le fichier d'erreur .err. Activer cette option est recommandé, par exemple, si vous utilisez la réplication : vous obtiendrez plus d'informations sur ce qui se passe, comme les erreurs de connexion réseau, ou les reconnexions.
--low-priority-updates Les opérations de modifications de table (INSERT/DELETE/UPDATE) auront une priorité inférieure aux sélections. Cela peut être aussi fait via l'attribut INSERT | REPLACE | UPDATE | DELETE LOW_PRIORITY ... pour baisser la priorité d'une requête, ou avec SET LOW_PRIORITY_UPDATES=1 pour changer la priorité dans plus d'un thread
--memlock Verrouille le processus mysqld en mémoire. Cela fonctionne si votre système support la fonction mlockall() (comme Solaris). Ceci peut être utile si vous avez des problèmes avec le système d'exploitation qui force mysqld à utiliser le swap sur le disque.
--myisam-recover [=option[,option...]]] Cette option est la combinaison de DEFAULT, BACKUP, FORCE et QUICK. Vous pouvez aussi lui donner la valeur explicite de "" si vous voulez désactiver cette option. Si cette option est utilisée, mysqld va vérifier si la table est marquée comme corrompue à l'ouverture de chaque table (cette dernière option ne fonctionne que si vous utilisez l'option --skip-external-locking). Si c'est le cas, mysqld va essayer de vérifier la table. Si la table était corrompue, mysqld essaie alors de la réparer.
--pid-file=path Le chemin jusqu'au fichier de PID utilisé par safe_mysqld.
--port=port_num, -P port_num Numéro de port utilisé pour attendre les connexion TCP/IP.
--old-protocol, -o Utilise le protocole 3.20, pour la compatibilité avec de très vieux clients.
--one-thread Utilise uniquement un thread (pour débogage sous Linux). Cette option est disponible uniquement si le serveur est compilé avec les options de débogage.
--open-files-limit=count Pour changer le nombre de pointeurs de fichiers disponibles pour mysqld. Si cette option n'est pas configurée, ou qu'elle vaut 0, alors mysqld va utiliser cette valeur pour réserver ce nombre de pointeurs de fichiers, à utiliser avec setrlimit(). Si la valeur est 0 alors mysqld va réserver max_connections*5 ou max_connections + table_cache*2 (le plus grand des deux) pointeurs de fichiers. Il est recommandé d'augmenter cette valeur si mysqld émet des erreurs de type 'Too many open files'.
--safe-mode Ignore certains étapes d'optimisation.
--safe-user-create Si cette option est activée, un utilisateur ne peut pas créer de nouveaux utilisateurs avec la commande GRANT si l'utilisateur n'a pas les droits de INSERT dans la table mysql.user ou dans aucune colonne de cette table.
--secure-auth Interdit l'identification des comptes qui ont des mots de passe ancien (avant la version 4.1).
--skip-bdb Désactive l'utilisation des tables BDB. Cela va économiser de la mémoire et accélérer le serveur un peu. N'utilisez pas cette option si vous avez besoin des tables BDB.
--skip-concurrent-insert Désactive la possibilité de sélectionner et insérer en même temps dans les tables MyISAM (cela n'est utile que si vous pensez que vous avez trouvé un bug dans cette fonctionnalité).
--skip-external-locking Ne pas utiliser le verrouillage du système. Pour utiliser les utilitaires isamchk ou myisamchk vous devez alors éteindre le système.
--skip-grant-tables Cette option force le serveur à ne pas utiliser le système de privilège du tout. Cela donne à tous l'accès complet à toutes les bases de données ! Vous pouvez demander à un serveur en exécution d'utiliser à nouveau les tables de droits en exécutant la commande mysqladmin flush-privileges ou mysqladmin reload).
--skip-host-cache Ne pas utiliser le cache de nom de domaine pour une résolution des IP plus rapide, mais interroger le serveur DNS à chaque connexion.
--skip-innodb Désactive l'utilisation des tables InnoDB. Cela va économiser de la mémoire et accélérer le serveur un peu. N'utilisez pas cette option si vous avez besoin des tables InnoDB.
--skip-isam Désactive l'utilisation des tables ISAM. Cela va économiser de la mémoire et accélérer le serveur un peu.
--skip-name-resolve Les noms d'hôtes ne sont pas résolus. Toutes les colonnes Host dans vos tables de droits doivent être des IP numériques ou le mot localhost
--skip-networking Ne pas attendre les connexions TCP/IP du tout. Toutes les interactions du serveur mysqld seront faites avec les sockets Unix. Cette option est particulièrement recommandée pour les systèmes qui utilisent des requêtes locales.
--skip-new Ne pas utiliser les nouvelles routines qui sont possiblement erronées.
--symbolic-links, --skip-symbolic-links Active ou désactive le support des liens symboliques. signifie que vous pouvez mettre un fichier d'index MyISAM ou un autre fichier de données dans un autre dossier, avec les options INDEX DIRECTORY ou DATA DIRECTORY de la commande CREATE TABLE. Si vous effacer ou renommez la table, les fichiers qui sont des liens symboliques seront aussi effacés ou renommés.
--skip-show-database Si MySQL est configuré avec --with-debug=full, tous les programmes vérifieront la mémoire pour rechercher les écrasements de zone lors des allocations et libérations de mémoire. Comme ce test est lent, vous pouvez l'éviter, si vous n'avez pas besoin de tester la mémoire, en utilisant cette option.
--skip-stack-trace Ne pas écrire les piles de traces. Cette option est pratique lorsque vous utilisez mysqld avec un débogueur. Sur certains systèmes, vous devez aussi utiliser cette option pour obtenir un fichier de core.
--skip-thread-priority Désactive les priorités des threads pour améliorer la vitesse de réponse.
--socket=path Sous Unix, le fichier de socket pour les connexions locales. (par défaut, /tmp/mysql.sock).
--sql-mode=value[,value[,value...]] Spécifie le mode SQL.
--temp-pool En utilisant cette option, vous allez réduire le jeu de noms qui sont utilisés lors de la création de fichier temporaires, plutôt qu'un nom unique à chaque fois. Ceci est un palliatif au noyau Linux qui crée plusieurs fichiers nouveaux avec des noms différents. Avec l'ancien comportement, Linux semble "perdre de la mémoire", car ils sont alloués au cache d'entrées du dossier au lieu de celui du disque.
--transaction-isolation=level Configure le niveau d'isolation des transactions. Le niveau peut être READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ ou SERIALIZABLE
--tmpdir=path, -t path Chemin vers les fichiers temporaires. Il peut s'avérer pratique si votre dossier par défaut /tmp réside dans une partition qui est trop petite pour absorber les tables temporaires. cette option accepte différents chemins, qui sont utilisés en alternance. Les chemins doivent être séparés par des deux points (‘ :’) sous Unix. Il est possible de dire à tmpdir de pointer sur un système de fichiers en mémoire, hormis si le serveur MySQL est un esclave. Si c'est un esclave, il faut un système de fichiers permanents (pour que la réplication des tables temporaires et des commandes LOAD DATA INFILE) survive a un redémarrage de la machine : un système de fichiers en mémoire tmpdir, qui est effacé au lancement de la machine n'est pas acceptable. Un disque est nécessaire pour tmpdir, dans ce contexte.
--user=user_name | user_id, -u user_name | user_id Éxécute le démon mysqld avec l'utilisateur user_name ou userid (numérique). (``utilisateur'' dans ce contexte fait référence à l'utilisateur du système d'exploitation, mais pas l'utilisateur MySQL, listé dans les tables de droits.) Cette option est obligatoire lorsque vous démarrez mysqld en tant que root. Le serveur va changer d'ID durant le lancement du serveur, pour utiliser un autre utilisateur que root.
--version, -V Affiche les informations de version.

   Pour éviter des trous de sécurité si un utilisateur ajoute --user=root dans un fichier my.cnf (et donc, faisant que le serveur fonctionne en tant que utilisateur système root), mysqld utilise uniquement la première option --user spécifiée, et produit une alerte s'il rencontre d'autres options --user. Les options des fichiers /etc/my.cnf et datadir/my.cnf sont traités avant les options de ligne de commande, et il est recommandé que vous ajoutiez l'option --user dans le fichier /etc/my.cnf puis spécifiez une valeur autre que root. L'option de /etc/my.cnf peut être placée avant toute autre option --user, ce qui assure que le serveur fonctionnera avec l'utilisateur autre que root, et qu'une alerte apparaîtra si une autre option --user est découverte.