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 --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.
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/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
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.confin /usr/local/etc/, qui ne nécessite pas de privilèges root.
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
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.cnfplace de la locatecommande sur OSX
locate my.cnftravaillé directement. Je n'ai pas courusudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnfet /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 mysqlet brew services start mysqlà la place des launchctl unload ...lignes.
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.
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.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.
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.cnfici 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)