Vous pouvez toujours exécuter find dans un terminal.
find / -name my.cnf
Il n'y a pas de commande MySQL interne pour tracer cela, c'est un peu trop abstrait. Le fichier peut se trouver à 5 emplacements (ou plus ?) et ils sont tous valides car ils se chargent en cascade.
- /etc/mon.cnf
- /etc/mysql/mon.cnf
- $MYSQL_HOME/mon.cnf
- [datadir]/mon.cnf
- ~/.my.cnf
Ce sont les emplacements par défaut que MySQL regarde. S'il en trouve plus d'un, il chargera chacun d'eux et les valeurs se substitueront (dans l'ordre indiqué, je pense). Aussi, le --defaults-file
paramètre peut remplacer le tout, donc... fondamentalement, c'est une énorme douleur dans le cul.
Mais grâce à la confusion, il y a de fortes chances que ce soit juste dans /etc/my.cnf.
(Si vous voulez juste voir les valeurs :SHOW VARIABLES
, mais vous aurez besoin des autorisations pour le faire.)
Exécutez mysql --help
et vous verrez :
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
mysql --help | grep /my.cnf | xargs ls
vous dira où my.cnf
est situé sur Mac/Linux
ls: cannot access '/etc/my.cnf': No such file or directory
ls: cannot access '~/.my.cnf': No such file or directory
/etc/mysql/my.cnf
Dans ce cas, il est en /etc/mysql/my.cnf
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf
Dans ce cas, il est en /usr/local/etc/my.cnf
Vous pouvez en fait "demander" à MySQL une liste de tous les emplacements où il recherche my.cnf (ou my.ini sous Windows). Ce n'est pas une requête SQL cependant. Au lieu de cela, exécutez :
$ mysqladmin --help
ou, avant 5.7 :
$ mysqld --help --verbose
Dans les toutes premières lignes, vous trouverez un message avec une liste de tous les emplacements my.cnf qu'il recherche. Sur ma machine c'est :
Default options are read from the following files in the given order:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf
Ou, sous Windows :
Default options are read from the following files in the given order:
C:\Windows\my.ini
C:\Windows\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf
Notez cependant qu'il se peut qu'il n'y ait aucun fichier my.cnf à aucun de ces emplacements . Ainsi, vous pouvez créer le fichier vous-même - utilisez l'un des exemples de fichiers de configuration fournis avec la distribution MySQL (sous Linux - voir /usr/share/mysql/*.cnf
fichiers et utilisez celui qui vous convient - copiez-le dans /etc/my.cnf
puis modifier au besoin).
Notez également qu'il existe également une option de ligne de commande --defaults-file
qui peut définir un chemin personnalisé vers le fichier my.cnf ou my.ini. Par exemple, c'est le cas pour MySQL 5.5 sous Windows - il pointe vers un fichier my.ini dans le répertoire de données, qui n'est normalement pas répertorié avec mysqld --help --verbose
. Sous Windows - consultez les propriétés du service pour savoir si c'est le cas pour vous.
Enfin, vérifiez le https://dev.mysql.com/doc/refman/8.0/en/option-files.html - il y est décrit plus en détail.