GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je trouver l'emplacement MySQL my.cnf

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.


Linux
  1. Comment trouver un fichier sous Linux

  2. Comment trouver le package qui fournit un fichier spécifique sous Linux

  3. Comment stocker la sortie de SHOW PROCESSLIST dans un fichier MySQL ?

  4. Comment obtenir la somme Md5 du contenu d'un répertoire en une seule somme ?

  5. Comment trouver le type d'un fichier Img et le monter ?

Comment trouver le fichier le plus ancien dans une arborescence de répertoires sous Linux

Comment trouver l'emplacement de vos serveurs avec Traceroute et WHOIS

Comment rechercher des fichiers avec des dizaines de critères avec la commande Bash Find

Comment trouver l'emplacement du fichier de configuration MySQL actuellement utilisé sous Linux

Quel est l'emplacement correct du fichier mysql.sock sous Linux

Comment puis-je trouver le fichier le plus ancien dans une arborescence de répertoires