web-dev-qa-db-fra.com

Déterminer quel fichier de configuration est utilisé

Existe-t-il une commande permettant de déterminer le fichier de configuration actuellement utilisé par MySQL 5.0?

124
yalestar

Si vous êtes sous Linux, lancez mysqld avec strace, par exemple strace ./mysqld.

Parmi tous les autres appels système, vous trouverez quelque chose comme:

stat64("/etc/my.cnf", 0xbfa3d7fc)       = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4227, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3

Ainsi, comme vous pouvez le voir..il répertorie les fichiers .cnf, qu’il tente d’utiliser et utilise enfin.

55
user59634

Tiré du livre fantastique "High Performance MySQL" O'Reilly:

$ which mysqld
/usr/sbin/mysqld

$ /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf
213
Mark B

Si vous exécutez mysql --verbose --help | less, il vous indiquera à la ligne 11 quels fichiers .cnf il recherchera.

Vous pouvez également faire mysql --print-defaults pour vous montrer comment les valeurs de configuration seront utilisées. Cela peut également être utile pour identifier le fichier de configuration en cours de chargement.

56
staticsan

Je suis sous Windows et j'ai installé la version la plus récente de la communauté MySQL 5.6. 

Ce que j'ai fait pour voir ce que le fichier de configuration utilise était d'aller dans Outils d'administration> Services> MySQL56> Clic droit> Propriétés et vérifier le chemin d'accès à l'exécutable: 

"C:/Programmes/MySQL/Serveur MySQL 5.6/bin\mysqld" --defaults-file = "C:\ProgramData\MySQL\Serveur MySQL 5.6\my.ini" MySQL56

Une alternative est d'utiliser 

mysqladmin variables
17
Steve

mysqld --help --verbose est dangereux. Vous pouvez facilement écraser pidfile pour exécuter l'instance! utilisez-le avec --pid-file = XYZ

Oh, et vous ne pouvez pas vraiment l'utiliser si vous avez plus d'une instance en cours d'exécution. Il ne vous montrera que la valeur par défaut.

Très bon article à ce sujet:

Comment trouver le fichier de configuration MySQL?

13
Sasha

Je viens de faire un test rapide sur Ubuntu:

  • installé mysql-server, qui a créé /etc/mysql/my.cnf

  • mysqld --verbose --help | grep -A 1 "Options par défaut"

110112 13:35:26 [Note] Le plugin 'FEDERATED' est désactivé.
Les options par défaut sont lues dans les fichiers suivants, dans l'ordre indiqué: /Etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

  • créé /etc/my.cnf et /usr/etc/my.cnf, chacun avec un numéro de port différent

  • redémarré mysql - il utilisait le numéro de port défini dans /usr/etc/my.cnf

De plus, nous avons également trouvé l’option --defaults-file dans mysqld. Si vous spécifiez un fichier de configuration ici, seul celui-ci sera utilisé, quel que soit le résultat renvoyé par /usr/sbin/mysqld --verbose --help | grep -A 1 "Options par défaut"

8
Herta

J'ai trouvé cela vraiment utile:

  1. Trouvez le processus MySQL dans Services sous Control Panel -> Administration Tools
  2. Cliquez avec le bouton droit de la souris et choisissez Properties
  3. Cliquez et sélectionnez le Path to executable et voyez s'il contient le chemin d'accès au my.ini/my.cfg
3
Luke

Certains serveurs ont plusieurs versions de MySQL installées et configurées. Assurez-vous que vous utilisez la version correcte avec une commande Unix De:

ps -ax | grep mysql
2
Heather McVay

Si vous utilisez MySQL Workbench, cela sera affiché dans "Statut du serveur":  enter image description here

2
fanThomas

Juste au cas où vous exécutez mac , ceci peut également être réalisé en:

Sudo dtruss mysqld 2>&1 | grep cnf
1
talsibony

Pour les personnes utilisant Windows Server avec mysql en tant que service, un moyen facile de savoir quel fichier de configuration vous utilisez est d'ouvrir le panneau de configuration des services, de rechercher votre service mysql (dans mon cas, 'MYSQL56'), de cliquer avec le bouton droit de la souris et de cliquer sur les propriétés. . Ensuite, à partir de là, vous pouvez vérifier le "Chemin de l'exécutable" qui devrait avoir un commutateur defaults-file qui pointe vers l'emplacement de votre fichier de configuration.

1
Kershrew

Si vous êtes sous Windows, vous pouvez utiliser Sysinternals procmon . Ouvrez-le et configurez le paramètre de filtre comme ceci, puis cliquez sur "Ajouter". Maintenant, procmon surveillera mysqld. 

 enter image description here

Maintenant démarrez votre serveur mysql comme d'habitude. Procmon capturera les opérations en arrière-plan de mysql. Rechercher "mon". dans le volet de résultats procmon et vous trouverez à peu près ce qui suit:

 enter image description here

Il est clair que mysql recherche successivement une liste de fichiers de configuration. Dans mon cas, il a trouvé C:\mysql-5.7.19-winx64\my.cnf avec succès et utilise donc celui-ci.

0
Ogrish Man