J'essaie de suivre ce tutoriel pour activer l'accès à distance à MySQL. Le problème est, où le my.cnf
fichier doit-il être situé? J'utilise Mac OS X Lion.
J'essaie de suivre ce tutoriel pour activer l'accès à distance à MySQL. Le problème est, où le my.cnf
fichier doit-il être situé? J'utilise Mac OS X Lion.
Réponses:
Ce fil sur le forum MySQL dit:
Par défaut, l'installation d'OS X n'utilise pas de my.cnf et MySQL utilise uniquement les valeurs par défaut. Pour configurer votre propre my.cnf, vous pouvez simplement créer un fichier directement dans / etc.
OS X fournit des exemples de fichiers de configuration sur /usr/local/mysql/support-files/
.
Et si vous ne pouvez pas les trouver là-bas, MySQLWorkbench peut les créer pour vous en:
my.cnf
fichier que vous éditez viamysql --verbose --help | grep my.cnf
Dans le cas de Mac OS X Maverick lorsque MySQL est installé via Homebrew, il se trouve à /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
. Je suis sur High Sierra mais il a été installé il y a quelques versions.
En général, sur les systèmes Unix et de type Unix, les programmes MySQL / MariaDB lisent les fichiers de configuration / de démarrage aux emplacements suivants (dans l'ordre spécifié):
/etc/my.cnf
- Global/etc/mysql/my.cnf
- GlobalSYSCONFDIR/my.cnf
- Global
SYSCONFDIR
représente le répertoire spécifié avec l'SYSCONFDIR
option deCMake
quand MySQL a été construit. Par défaut, il s'agit du répertoire etc situé sous le répertoire d'installation compilé.
$MYSQL_HOME/my.cnf
- Spécifique au serveur (serveur uniquement)
MYSQL_HOME
est une variable d'environnement contenant le chemin d'accès au répertoire dans lequelmy.cnf
réside le fichier spécifique au serveur . SiMYSQL_HOME
n'est pas défini et que vous démarrez le serveur à l'aide dumysqld_safe
programme,mysqld_safe
définissez-le surBASEDIR
le répertoire d'installation de base de MySQL.
fichier spécifié avec le --defaults-extra-file=path
cas échéant
~/.my.cnf
- Spécifique à l'utilisateur~/.mylogin.cnf
- Spécifique à l'utilisateur (clients uniquement)Source: Utilisation de fichiers d'options .
Remarque: sur les plates-formes Unix, MySQL ignore les fichiers de configuration inscriptibles dans le monde entier. C'est intentionnel comme mesure de sécurité.
De plus, sur Mac, il existe un moyen simple de le vérifier.
Courir: sudo fs_usage | grep my.cnf
Cela rapportera toute activité du système de fichiers en temps réel liée à ce fichier.
Dans un autre terminal, redémarrez votre MySQL / MariaDB, par exemple
brew services restart mysql
ou:
brew services restart mariadb
Sur le terminal avec fs_usage
, l'emplacement approprié doit être indiqué, par exemple
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
Donc, si le fichier n'existe pas, créez-en un.
sudo fs_usage | grep my.cnf
méthode est assez efficace. Je trouve ce fichier dans le dossier: /usr/local/etc/my.cnf
private/etc/my.cnf
, /usr/local/etc/my.cnf
, /usr/local/Cellar/mysql/<myVersion>/my.cnf
, ~.my.cnf
avec my_print_def
dans la colonne de droite. Ensuite, après un certain temps, c'est uniquement /usr/local/etc/my.cnf
avec mon terminal dans la colonne la plus à droite. Mais tous ces my.cnf
fichiers n'existent pas!
Je ne sais pas quelle version de MySQL vous utilisez, mais voici les emplacements possibles du fichier my.cnf pour la version 5.5 (pris à partir d' ici ) sur Mac OS X:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(le fichier spécifié avec --defaults-extra-file=path
, le cas échéant)~/.my.cnf
Pour MySQL 5.7 sur Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Copier la conf par défaut depuis /usr/local/mysql/support-files/my-default.cnf
Si vous utilisez macOS Sierra et que le fichier n'existe pas, exécutez
mysql --help or mysql --help | grep my.cnf
pour voir les emplacements possibles et la séquence de chargement / lecture de my.cnf pour mysql puis créez le fichier my.cnf dans l'un des répertoires suggérés puis ajoutez la ligne suivante
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Vous pouvez sudo touch /{preferred-path}/my.cnf
ensuite modifier le fichier pour ajouter le mode SQL en
sudo nano /{preferred-path}/my.cnf
Ensuite, redémarrez mysql, voilaah vous êtes prêt à partir. bon codage
Le package MySQL actuel pour Mac OS X Mavericks (mysql-5.6.17-osx10.7-x86_64 au moment de la rédaction de cet article) crée automatiquement un my.cnf lors de l'installation.
Il se trouve dans /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Adaptez votre chemin en fonction de votre version.
Donc, aucune de ces choses n'a fonctionné pour moi. J'utilise l'installation dmg actuelle du serveur de communauté mysql. ps montre que tous les paramètres les plus critiques normalement dans my.cnf sont passés sur la ligne de commande, et je ne pouvais pas comprendre d'où cela venait. Après avoir effectué une recherche en texte intégral de ma boîte, je l'ai trouvée dans:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Vous pouvez donc soit les modifier ici, soit les supprimer afin qu'il respecte réellement ceux que vous avez dans votre my.cnf où que vous ayez décidé de le mettre.
Prendre plaisir!
Exemple d'informations sur le fichier trouvées dans ce fichier:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
<string>--early-plugin-load=keyring_file=keyring_file.so</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
/etc/my.cnf
Vous pouvez ouvrir un terminal et saisir locate my.cnf
macOs sierra 10.12.6 version mysql: 5.7.18_1 Je lance localiser my.cnf et le chemin est
/usr/local/etc/my.cnf
espérons que cela vous aidera.
locate my.cnf
sur votre terminal. quel est le résultat?
Vous pouvez créer votre fichier dans le répertoire de votre choix. Après la création, vous pouvez "indiquer" le chemin vers la configuration mysql:
Vous pouvez vérifier le fichier
/usr/local/bin/mysql.server
et voir d'où my.conf
vient la lecture.
Habituellement, il s'agit de /etc/my.cnf
ou ~/my.cnf
ou~/.my.cnf
~/.my.cnf
. Ajoutez un point avant le nom du fichier.
Les documents MySQL pour la version que vous utilisez vous aideront. Il est généralement décrit comme un Options File
ou MySQL Config File
.
Les documents ont l'emplacement de ces fichiers dans la documentation, ainsi que d'autres VITAL
informations comme l'emplacement et de petits exemples de ce à quoi le fichier de configuration doit ressembler.
Sur les plates-formes Unix, MySQL ignore les fichiers de configuration inscriptibles dans le monde entier.
C'est intentionnel comme mesure de sécurité.
En d'autres termes, si vous avez les mauvaises autorisations définies sur votre fichier de configuration, le fichier ne se chargera PAS.
Exemple d'autorisation de configuration initiale de l'un des fichiers de configuration:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
Il est possible d'utiliser des
!include
directives dans les fichiers d'options pour inclure d'autres fichiers d'options et!includedir
de rechercher des répertoires spécifiques pour les fichiers d'options ........ MySQL ne donne aucune garantie sur l'ordre dans lequel les fichiers d'options du répertoire seront lus ...
Tous les fichiers à rechercher et à inclure à l'aide de la directive! Includedir sur les systèmes d'exploitation Unix doivent avoir des noms de fichiers se terminant par
.cnf
. Sous Windows, cette directive recherche les fichiers avec l' extension.ini
ou.cnf
.
Exemples de comment trouver votre emplacement de vos fichiers de configuration ou journaux ect:
Cela ne vous montrera pas le fichier de configuration mais vous aidera à localiser vos fichiers / dossiers d'installation.
MySQL version 5.7 et 8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Version MySQL <= 5.6
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
RIZZOMBP$ mysql --help | grep "Default options" -A 1
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
Crédit de commande ci-dessus à: Erwin Mayer de ServerFault
RIZZOMBP$ mysqld --verbose --help | grep '/my.cnf' -B 1
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
OU
RIZZOMBP$ ps aux | grep -i mysqld | grep -v $USER
_mysql 106 0.4 2.5 4232336 422112 ?? Ss 7:01PM 0:57.12
/usr/local/mysql/bin/mysqld
--user=_mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
--plugin-dir=/usr/local/mysql/lib/plugin
--log-error=/usr/local/mysql/data/mysqld.local.err
--pid-file=/usr/local/mysql/data/mysqld.local.pid
--keyring-file-data=/usr/local/mysql/keyring/keyring
--early-plugin-load=keyring_file=keyring_file.so
Si vous avez besoin d'un exemple de référence détaillé my.cnf:
Aucune affiliation / association aux URL
RIZZOMBP$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.3
BuildVersion: 18D109
RIZZOMBP$ mysql -V
mysql Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
RIZZOMBP$ mysqld -V
/usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld
Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
J'ai vérifié dans macOS Sierra, l'homebrew installé MySql 5.7.12
Les fichiers de support se trouvent sur
/usr/local/opt/mysql/support-files
Copiez simplement my-default.cnf
comme /etc/my.cnf
ou /etc/mysql/my.cnf
et la configuration sera récupérée au redémarrage.
macOS High Sierra version 10.13.6
mysql Ver 14.14 Distrib 5.7.22, pour osx10.13 (x86_64) utilisant le wrapper EditLine Copyright (c) 2000, 2018, Oracle et / ou ses affiliés. Tous les droits sont réservés
Les options par défaut sont lues à partir des fichiers suivants dans l'ordre indiqué:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
/private/etc/my.cnf pour Catalina
J'utilise mysql version 5.7.17 dans macOS High Sierra version 10.13.3 et j'ai trouvé le fichier de configuration mysql ici.
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnf
où il sera récupéré, comme suit:DO NOT EDIT THIS FILE. It's a template which will be copied to the default location during install, and will be replaced if you upgrade to a newer version of MySQL.
Pour Mac, ce qui a fonctionné pour moi est de créer un fichier .my.cnf dans mon chemin ~. J'espère que cela t'aides.
Copiez /usr/local/opt/mysql/support-files/my-default.cnf comme /etc/my.cnf ou /etc/mysql/my.cnf puis redémarrez mysql.
Dans mon cas, le fichier n'existait pas. Dans MySQL Workbench, je suis allé dans OPTIONS FILE et j'ai trouvé des valeurs par défaut. J'ai cliqué sur appliquer. Il a demandé la permission. Il a ensuite créé le fichier my.cnf sous / etc. Cependant, il est très important de garder à l'esprit que la première fois que vous cliquez sur «appliquer», vous n'apportez aucune modification à la configuration par défaut. Une fois le fichier créé, vous pouvez apporter des modifications qui seront appliquées lorsque vous cliquez sur «appliquer». Sinon, le bouton Appliquer ne s'affichera pas lorsque vous apporterez des modifications.
/etc/mysql/my.cnf
mais MySQL Workbench n'en est pas conscient. Au lieu de cela, il se plaint que le fichier de configuration avec un chemin vide est introuvable et propose ensuite de créer un nouveau fichier.
Après la version 5.7.18 de MySQL, il ne fournit pas le fichier de configuration par défaut dans le répertoire support-files. Vous pouvez donc créer manuellement le fichier my.cnf à l'emplacement où MySQL sera lu, comme /etc/mysql/my.cnf, et ajouter la configuration que vous souhaitez ajouter dans le fichier.
Les options rDefault sont lues à partir des fichiers suivants dans l'ordre indiqué: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf
J'utilise MacOS Mojave (10.14.6) et pour que MySQL reconnaisse mon fichier de configuration, j'ai dû le placer dans /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf. J'ai également un lien symbolique pointant vers celui-ci depuis /usr/local/@mysql/etc/my.cnf.
J'essayais de désactiver sql_mode = only_full_group_by et définir cette option dans le fichier de configuration était le seul moyen pour que le paramètre persiste à travers les sessions. Le contenu du fichier de configuration est:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
J'utilise l'installation native de MySQL, pas la configuration Homebrew.
Pour mysql 8.0.19, j'ai finalement trouvé le my.cnf ici: /usr/local/opt/mysql/.bottle/etc Je l'ai copié dans / usr / local / opt / mysql / et l'ai modifié. Ensuite, je redémarre le service mysql, cela fonctionne.