Pour les installations homebrew mysql, où est my.cnf? En installe-t-il un?
Pour les installations homebrew mysql, où est my.cnf? En installe-t-il un?
Réponses:
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 --help
et 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.
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
était en fait plus facile de trouver les lignes.
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/local
donc le fichier my.cnf ne doit pas être ajouté au /etc
dossier 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
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
/usr/local/
(qui est la valeur par défaut je pense), vous pouvez également placer my.conf
in /usr/local/etc/
, qui ne nécessite pas de privilèges root.
brew --prefix mariadb
. Dans la distribution MariaDB, le my-default.cnf
n'existe pas - utilisez donc my-small.cnf
. Essayez cecicp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
Une façon de le savoir:
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
mdfind -name my.cnf
place de la locate
commande sur OSX
locate my.cnf
travaillé directement. Je n'ai pas courusudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf
et /usr/local/etc/my.cnf
c'est ce que j'ai eu
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.
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
brew services stop mysql
et brew services start mysql
à la place des launchctl unload ...
lignes.
Puisqu'il mysql --help
affiche une liste de fichiers, je trouve utile de diriger le résultat ls
pour 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
.
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
Vous pouvez trouver où le my.cnf
fichier 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.
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.
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.cnf
ici si elle manque.
Redémarrez mysql après le changement:
brew services restart mysql
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é :)
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)