Ich versuche, diesem Tutorial zu folgen , um den Remotezugriff auf MySQL zu ermöglichen. Das Problem ist, wo sollte sich die my.cnf
Datei befinden? Ich verwende Mac OS X Lion.
Ich versuche, diesem Tutorial zu folgen , um den Remotezugriff auf MySQL zu ermöglichen. Das Problem ist, wo sollte sich die my.cnf
Datei befinden? Ich verwende Mac OS X Lion.
Antworten:
Dieser Thread im MySQL-Forum sagt:
Standardmäßig verwendet die OS X-Installation keine my.cnf und MySQL verwendet nur die Standardwerte. Um Ihre eigene my.cnf einzurichten, können Sie einfach eine Datei direkt in / etc. Erstellen.
OS X bietet Beispielkonfigurationsdateien unter /usr/local/mysql/support-files/
.
Und wenn Sie sie dort nicht finden können, kann MySQLWorkbench sie für Sie erstellen, indem Sie:
my.cnf
Datei mysql --verbose --help | grep my.cnf
Im Falle von Mac OS X Maverick befindet sich MySQL unter Homebrew unter /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
. Ich bin auf High Sierra, aber es wurde ein paar Versionen zurück installiert.
Auf Unix- und Unix-ähnlichen Systemen lesen MySQL / MariaDB-Programme im Allgemeinen Konfigurations- / Startdateien an den folgenden Speicherorten (in der angegebenen Reihenfolge):
/etc/my.cnf
- Global/etc/mysql/my.cnf
- GlobalSYSCONFDIR/my.cnf
- Global
SYSCONFDIR
stellt das Verzeichnis dar, das mit derSYSCONFDIR
Option angegeben wurde,CMake
wann MySQL erstellt wurde. Standardmäßig ist dies das Verzeichnis etc, das sich unter dem kompilierten Installationsverzeichnis befindet.
$MYSQL_HOME/my.cnf
- Serverspezifisch (nur Server)
MYSQL_HOME
ist eine Umgebungsvariable, die den Pfad zu dem Verzeichnis enthält, in dem sich die serverspezifischemy.cnf
Datei befindet. Wenn diesMYSQL_HOME
nicht festgelegt ist und Sie den Server mit demmysqld_safe
Programm starten , wirdmysqld_safe
es aufBASEDIR
das MySQL-Basisinstallationsverzeichnis festgelegt.
Datei angegeben mit --defaults-extra-file=path
falls vorhanden
~/.my.cnf
- Benutzerspezifisch~/.mylogin.cnf
- Benutzerspezifisch (nur Kunden)Quelle: Verwenden von Optionsdateien .
Hinweis: Auf Unix-Plattformen ignoriert MySQL Konfigurationsdateien, die weltweit beschreibbar sind. Dies ist als Sicherheitsmaßnahme beabsichtigt.
Zusätzlich gibt es auf dem Mac eine einfache Möglichkeit, dies zu überprüfen.
Lauf: sudo fs_usage | grep my.cnf
Dadurch werden alle Dateisystemaktivitäten in Echtzeit in Bezug auf diese Datei gemeldet.
Starten Sie in einem anderen Terminal MySQL / MariaDB neu, z
brew services restart mysql
oder:
brew services restart mariadb
Auf dem Terminal mit fs_usage
sollte der richtige Ort angezeigt werden, z
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
Wenn die Datei nicht vorhanden ist, erstellen Sie eine.
sudo fs_usage | grep my.cnf
Methode ist sehr effizient. Ich finde diese Datei auf Ordner: /usr/local/etc/my.cnf
private/etc/my.cnf
, /usr/local/etc/my.cnf
, /usr/local/Cellar/mysql/<myVersion>/my.cnf
, ~.my.cnf
mit my_print_def
in der rechten Spalte. Dann nach einer Weile ist es nur /usr/local/etc/my.cnf
mit meinem Terminal in der Spalte ganz rechts. Aber all diese my.cnf
Dateien existieren nicht!
Ich weiß nicht, welche Version von MySQL Sie verwenden, aber hier sind mögliche Speicherorte der my.cnf-Datei für Version 5.5 (von hier übernommen ) unter Mac OS X:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(die mit angegebene Datei --defaults-extra-file=path
, falls vorhanden)~/.my.cnf
Für MySQL 5.7 unter Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Kopieren Sie die Standardkonfiguration von /usr/local/mysql/support-files/my-default.cnf
Wenn Sie macOS Sierra verwenden und die Datei nicht vorhanden ist, führen Sie sie aus
mysql --help or mysql --help | grep my.cnf
Um die möglichen Speicherorte und die Lade- / Lesesequenz von my.cnf für mysql anzuzeigen, erstellen Sie die Datei my.cnf in einem der vorgeschlagenen Verzeichnisse und fügen Sie die folgende Zeile hinzu
[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
Sie können sudo touch /{preferred-path}/my.cnf
die Datei dann bearbeiten, um den SQL-Modus hinzuzufügen
sudo nano /{preferred-path}/my.cnf
Dann starte mysql neu, voilaah du bist gut zu gehen. fröhliche Codierung
Das aktuelle MySQL-Paket für Mac OS X Mavericks (mysql-5.6.17-osx10.7-x86_64 zum Zeitpunkt dieses Schreibens) erstellt während der Installation automatisch eine my.cnf.
Es befindet sich unter /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Passen Sie Ihren Pfad an Ihre Version an.
Also hat keines dieser Dinge für mich funktioniert. Ich verwende die aktuelle dmg-Installation des MySQL-Community-Servers. ps zeigt, dass alle kritischen Parameter, die normalerweise in my.cnf enthalten sind, in der Befehlszeile übergeben werden, und ich konnte nicht herausfinden, woher das kam. Nachdem ich meine Box im Volltext durchsucht hatte, fand ich sie in:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Sie können sie also entweder dort ändern oder herausnehmen, damit sie tatsächlich diejenigen respektieren, die Sie in Ihrer my.cnf haben, wo immer Sie sich entschieden haben, sie zu platzieren.
Genießen!
Beispiel für die in dieser Datei gefundenen Dateiinformationen:
<?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
Sie können ein Terminal öffnen und eingeben locate my.cnf
Sie können Ihre Datei in einem beliebigen Verzeichnis erstellen. Nach der Erstellung können Sie den Pfad zur MySQL-Konfiguration "mitteilen":
Sie können die Datei überprüfen
/usr/local/bin/mysql.server
und sehen, von wo my.conf
gelesen wird.
Normalerweise ist es von /etc/my.cnf
oder ~/my.cnf
oder~/.my.cnf
~/.my.cnf
. Fügen Sie vor dem Dateinamen einen Punkt ein.
Die MySQL-Dokumente, für welche Version Sie verwenden, helfen. Es wird normalerweise als Options File
oder beschrieben MySQL Config File
.
Die Dokumente enthalten den Speicherort dieser Dateien in der Dokumentation sowie weitere VITAL
Informationen wie den Speicherort und kleine Beispiele dafür, wie die Konfigurationsdatei aussehen muss.
Auf Unix-Plattformen ignoriert MySQL Konfigurationsdateien, die weltweit beschreibbar sind.
Dies ist als Sicherheitsmaßnahme beabsichtigt.
Mit anderen Worten, wenn Sie die falschen Berechtigungen für Ihre Konfigurationsdatei festgelegt haben, wird diese NICHT geladen.
Beispiel für die Ersteinrichtungsberechtigung einer der Konfigurationsdateien:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
Es ist möglich,
!include
Anweisungen in Optionsdateien zu verwenden, um andere Optionsdateien und einzuschließen!includedir
bestimmte Verzeichnisse nach Optionsdateien zu durchsuchen.... MySQL übernimmt keine Garantie für die Reihenfolge, in der Optionsdateien im Verzeichnis gelesen werden ...
Alle Dateien, die unter Unix-Betriebssystemen mithilfe der Anweisung! Inclendedir gefunden und eingeschlossen werden sollen, müssen Dateinamen haben, die auf enden
.cnf
. Unter Windows sucht diese Anweisung nach Dateien mit der Erweiterung.ini
oder.cnf
.
Beispiele, wie Sie Ihren Speicherort Ihrer Konfigurations- oder Protokolldateien finden können ect.:
Dadurch wird die Konfigurationsdatei nicht angezeigt, Sie können jedoch Ihre Installationsdateien / -ordner leichter finden.
MySQL Version 5.7 & 8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
MySQL Version <= 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
Über dem Befehl Gutschrift an: Erwin Mayer von 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
ODER
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
Sollten Sie ein detailliertes Referenzbeispiel benötigen my.cnf:
Keine Zugehörigkeit zu den URLs
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)
Ich habe in macOS Sierra eingecheckt, das Homebrew installiert MySql 5.7.12
Die Support-Dateien befinden sich unter
/usr/local/opt/mysql/support-files
Kopieren Sie einfach my-default.cnf
als /etc/my.cnf
oder /etc/mysql/my.cnf
und die Konfiguration wird beim Neustart übernommen.
macOS High Sierra Version 10.13.6
mysql Ver 14.14 Distrib 5.7.22 für osx10.13 (x86_64) unter Verwendung des EditLine-Wrappers Copyright (c) 2000, 2018, Oracle und / oder seine Tochterunternehmen. Alle Rechte vorbehalten
Standardoptionen werden in der angegebenen Reihenfolge aus den folgenden Dateien gelesen:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
/private/etc/my.cnf für Catalina
Ich verwende MySQL Version 5.7.17 in MacOS High Sierra Version 10.13.3 und habe die MySQL-Konfigurationsdatei hier gefunden.
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnf
dem sie abgeholt wird, wie folgt: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.
Für Mac hat es für mich funktioniert, eine .my.cnf-Datei in meinem ~ Pfad zu erstellen. Hoffe das hilft.
Kopieren Sie /usr/local/opt/mysql/support-files/my-default.cnf als /etc/my.cnf oder /etc/mysql/my.cnf und starten Sie mysql neu.
In meinem Fall existierte die Datei nicht. In MySQL Workbench ging ich zu OPTIONS FILE und fand einige Standardwerte. Ich habe auf Übernehmen geklickt. Es bat um Erlaubnis. Anschließend wurde die Datei my.cnf unter / etc erstellt. Es ist jedoch sehr wichtig zu beachten, dass Sie beim ersten Klicken auf "Übernehmen" keine Änderungen an der Standardkonfiguration vornehmen. Sobald die Datei erstellt wurde, können Sie Änderungen vornehmen, die angewendet werden, wenn Sie auf "Übernehmen" klicken. Andernfalls wird die Schaltfläche "Anwenden" nicht angezeigt, wenn Sie Änderungen vornehmen.
/etc/mysql/my.cnf
aber MySQL Workbench ist sich dessen nicht bewusst. Stattdessen wird beanstandet, dass die Konfigurationsdatei mit einem leeren Pfad nicht gefunden werden kann, und es wird angeboten, eine neue Datei zu erstellen.
Nach der Version 5.7.18 von MySQL wird die Standardkonfigurationsdatei nicht im Verzeichnis support-files bereitgestellt. Sie können also die Datei my.cnf manuell an dem Speicherort erstellen, an dem MySQL liest, z. B. /etc/mysql/my.cnf, und die Konfiguration hinzufügen, die Sie der Datei hinzufügen möchten.
Die Standardoptionen werden in der angegebenen Reihenfolge aus den folgenden Dateien gelesen: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf
Ich verwende MacOS Mojave (10.14.6) und damit MySQL meine Konfigurationsdatei erkennt, musste ich sie in /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf ablegen. Außerdem habe ich einen symbolischen Link von /usr/local/@mysql/etc/my.cnf, der darauf verweist.
Ich habe versucht, sql_mode = only_full_group_by zu deaktivieren, und das Festlegen dieser Option in der Konfigurationsdatei war die einzige Möglichkeit, die Einstellung über Sitzungen hinweg beizubehalten. Der Inhalt der Konfigurationsdatei ist:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Ich verwende die native Installation von MySQL, nicht das Homebrew-Setup.
Für MySQL 8.0.19 habe ich die my.cnf endlich hier gefunden: /usr/local/opt/mysql/.bottle/etc Ich habe sie nach / usr / local / opt / mysql / kopiert und geändert. Dann starte ich den MySQL-Dienst neu, es funktioniert.