Pour les installations homebrew mysql, où est my.cnf?


293

Pour les installations homebrew mysql, où est my.cnf? En installe-t-il un?

Réponses:


263

Il n'y a pas my.cnf par défaut. En tant que tel, MySQL démarre avec tous les paramètres par défaut. Si vous souhaitez créer votre propre my.cnf pour remplacer les valeurs par défaut, placez-le dans /etc/my.cnf.

En outre, vous pouvez l'exécuter mysql --helpet le rechercher pour les emplacements de conf répertoriés.

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 
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults        Print the program argument list and exit.
--no-defaults           Don't read default options from any option file.
--defaults-file=#       Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.

Comme vous pouvez le voir, il existe également des options pour contourner les fichiers conf ou pour spécifier d'autres fichiers à lire lorsque vous appelez mysql sur la ligne de commande.


49
Cela ne semble plus être le cas; Je vois un fichier my.cnf dans /usr/local/Cellar/mysql/5.6.15/ (ou la version que vous avez installée)
— William Turrell

6
@williamt "mysql --help" ne répertorie pas ce fichier comme étant utilisé, je pense que c'est juste un fichier par défaut fourni avec les fichiers d'installation
— Vinicius Pinto

2
Je suis sur 5.6.26 et je ne le vois pas là.
— Adam Grant du

3
Le 5.6.26 peut être lolcé en exécutant: ls $(brew --prefix mysql)/*.cnf
— danielgpm

23
mysql --help | grep cnfétait en fait plus facile de trouver les lignes.
— vinyll

267

Le homebrew mysql contient des exemples de fichiers de configuration dans le dossier des fichiers de support de l'installation.

ls $(brew --prefix mysql)/support-files/my-*

Si vous devez modifier les paramètres par défaut, vous pouvez utiliser l'un d'eux comme point de départ.

cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf

Comme le souligne @rednaw, une installation homebrew de MySQL sera probablement présente, /usr/localdonc le fichier my.cnf ne doit pas être ajouté au /etcdossier système , j'ai donc changé la commande pour copier le fichier /usr/local/etc.

Si vous utilisez MariaDB plutôt que MySQL, utilisez ce qui suit:

cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf

4
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
— Matt Clegg

7
Si Homebrew a installé MySQL dans /usr/local/(qui est la valeur par défaut je pense), vous pouvez également placer my.confin /usr/local/etc/, qui ne nécessite pas de privilèges root.
— gitaarik

1
brew --prefix mysql ne donne pas le chemin correct, pour moi, il montre '/usr/local/Cellar/mysql/5.7.16', mais en effet mariadb est installé dans '/ usr / local / opt / mariadb /'
— zhaozhi

@zhaozhi Use brew --prefix mariadb. Dans la distribution MariaDB, le my-default.cnfn'existe pas - utilisez donc my-small.cnf. Essayez cecicp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
— ewalshe

Cela doit être la réponse acceptée. Le premier est incorrect. La question posée concernait l'homebrew.
— BugHunterUK

30

Une façon de le savoir:

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf

4
Réponse géniale, j'ai appris sur Locate.updatedb. Cependant, il n'y a pas de fichier de configuration par défaut, voir la réponse ci
— glebm

15
Vous pouvez utiliser à la mdfind -name my.cnfplace de la locatecommande sur OSX
— JacopKane

Pour moi, j'ai locate my.cnftravaillé directement. Je n'ai pas courusudo /usr/libexec/locate.updatedb
— Andru

1
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnfet /usr/local/etc/my.cnf c'est ce que j'ai eu
— Vincent Tang

18

dans mon système c'était

nano /usr/local/etc/my.cnf.default 

comme modèle et

nano /usr/local/etc/my.cnf

comme travail.


18

Rien ne m'a vraiment aidé - je ne pouvais pas écraser les paramètres dans un fichier /etc/my.cnf. J'ai donc cherché comme John l'a suggéré https://stackoverflow.com/a/7974114/717251

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf

Il a trouvé un autre my.cnf dans

/usr/local/Cellar/mysql/5.6.21/my.cnf

la modification de ce fichier a fonctionné pour moi! N'oubliez pas de redémarrer l'agent de lancement:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

Mettre à jour:

Si vous avez une installation assez récente de homebrew, vous devez utiliser les commandes brew services pour redémarrer mysql (utilisez votre version installée de homebrew mysql, c'est-à-dire mysql ou mysql@5.7):

brew services stop mysql
brew services start mysql

Je pense que vous pouvez également courir brew services stop mysqlet brew services start mysqlà la place des launchctl unload ...lignes.
— mhulse

1
C'est vrai - mais au moment d'écrire cette réponse, ces commandes homebrew n'étaient pas encore disponibles. Je mettrai à jour la réponse
— naabster

13

Puisqu'il mysql --helpaffiche une liste de fichiers, je trouve utile de diriger le résultat lspour voir lesquels existent:

$ mysql --help | grep /my.cnf | xargs ls
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

Pour mon (Homebrew installé) MySQL 5.7, il semble que les fichiers soient activés /usr/local/etc/my.cnf.


10

Sur votre type de coque my_print_defaults --help

Au bas du résultat, vous devriez pouvoir voir le fichier à partir duquel le serveur lit les configurations. Il imprime quelque chose comme ceci:

Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf

5

Vous pouvez trouver où le my.cnffichier a été fourni par le package spécifique, par exemple

brew list mysql # or: mariadb

En plus de vérifier si ce fichier est lu, vous pouvez exécuter:

sudo fs_usage | grep my.cnf

qui vous montrera l'activité du système de fichiers en temps réel liée à ce fichier.


4

Je crois que la réponse est non. L'installation d'un dans ~ / .my.cnf ou / usr / local / etc semble être la solution préférée.


2
Sur mon MBP uniquement /etc/my.cnf me permet d'affecter l'installation Homebrew de mysql.
— ewalshe

1

Dans le cas de Homebrew, mysql rechercherait également my.cnf dans son répertoire Cellar, par exemple:

/usr/local/Cellar/mysql/5.7.21/my.cnf

Pour le cas on préfère garder la config proche des binaires - créez my.cnfici si elle manque.

Redémarrez mysql après le changement:

brew services restart mysql

1

Version du serveur: 8.0.19 Homebrew. macOS Catalina 10.15.5 et installé MySQL via Homebrew. Trouvé ce fichier ici:

/usr/local/etc/my.cnf

Cette solution a aidé :)


-1

Pour MacOS (High Sierra), MySQL qui a été installé avec Home Brew.

L'augmentation des variables globales de l'environnement mysql n'a pas réussi. Dans ce cas, la création de ~ / .my.cnf est l'option la plus sûre. L'ajout de variables avec [mysqld] inclura les changements (Remarque: si vous changez avec [mysql], le changement pourrait ne pas fonctionner).

<~ / .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512M

Redémarrez le serveur mysql. et vérifiez les variables. y

sql> SELECT @@ max_allowed_packet; + ---------------------- + | @@ max_allowed_packet | + ---------------------- + | 1073741824 | + ---------------------- +

1 rangée en jeu (0,00 sec)


-1
  1. $ps aux | grep mysqld /usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql/lib/plugin

  2. Déposez votre fichier my.cf dans /usr/local/opt/mysql

  3. brew services restart mysql

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.