Ich versuche, diesem Tutorial zu folgen, um den Fernzugriff auf MySQL zu ermöglichen. Das Problem ist, wo sollte die my.cnf
-Datei liegen? Ich verwende Mac OS X Lion.
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 enthält 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:
Bei Mac OS X Maverick, wenn MySQL über Homebrew installiert wird, befindet es sich unter /usr/local/opt/mysql/my.cnf
.
Im Allgemeinen lesen MySQL/MariaDB-Programme auf Unix- und Unix-ähnlichen Systemen Konfigurations-/Startdateien an den folgenden Speicherorten (in der angegebenen Reihenfolge):
/etc/my.cnf
- global/etc/mysql/my.cnf
- globalSYSCONFDIR/my.cnf
- global
SYSCONFDIR
steht für das Verzeichnis, das mit der OptionSYSCONFDIR
zuCMake
angegeben wurde, als MySQL erstellt wurde. Standardmäßig ist dies das Verzeichnis etc unter dem kompilierten Installationsverzeichnis.
$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. WennMYSQL_HOME
nicht festgelegt ist und Sie den Server mit dem Programmmysqld_safe
starten, wirdmysqld_safe
aufBASEDIR
gesetzt, das MySQL-Basisinstallationsverzeichnis.
datei mit --defaults-extra-file=path
angegeben, falls vorhanden
~/.my.cnf
- benutzerspezifisch~/.mylogin.cnf
- benutzerspezifisch (nur für Kunden)Quelle: Optionsdateien verwenden .
Hinweis: Auf Unix-Plattformen ignoriert MySQL Konfigurationsdateien, die weltweit schreibbar sind. Dies ist als Sicherheitsmaßnahme beabsichtigt.
Zusätzlich gibt es auf dem Mac eine einfache Möglichkeit, dies zu überprüfen.
Ausführen: 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 Ihr MySQL/MariaDB neu, z.
brew services restart mysql
oder:
brew services restart mariadb
Auf dem Terminal mit fs_usage
sollte der richtige Standort angezeigt werden, z.
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
Wenn die Datei nicht existiert, erstellen Sie eine.
Ich weiß nicht, welche Version von MySQL Sie verwenden, aber hier sind mögliche Speicherorte der my.cnf-Datei für Version 5.5 (entnommen aus hier ) unter Mac OS X:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(ggf. die mit --defaults-extra-file=path
angegebene Datei)~/.my.cnf
Für MySQL 5.7 unter Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Standardkonf aus /usr/local/mysql/support-files/my-default.cnf
kopieren
Wenn Sie macOS Sierra verwenden und die Datei nicht vorhanden ist, wird Ausgeführt
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 dann Sudo touch /{preferred-path}/my.cnf
die Datei bearbeiten, um den SQL-Modus mit hinzuzufügen
Sudo nano /{preferred-path}/my.cnf
Dann starte Mysql neu, voilaah, du kannst gehen. glückliche Kodierung
Das aktuelle MySQL-Paket für Mac OS X Mavericks (zum Zeitpunkt dieses Schreibens mysql-5.6.17-osx10.7-x86_64) erstellt während der Installation automatisch eine my.cnf.
Es befindet sich bei /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Passen Sie Ihren Pfad entsprechend Ihrer Version an.
In MySQL 5.6.22, das ich von Homebrew installiert habe, ist der Pfad von my.cnf
/usr/local/opt/mysql/my.cnf
Sie können ein Terminal öffnen und locate my.cnf
eingeben
Also funktionierte keines dieser Dinge für mich. Ich verwende die aktuelle dmg-Installation des MySQL-Community-Servers. ps zeigt, dass alle kritischsten Parameter, die normalerweise in my.cnf verwendet werden, über die Befehlszeile übergeben werden, und ich konnte nicht herausfinden, woher das kam. Nach einer Volltextsuche meiner Box fand ich sie in:
/Library/LaunchDaemons/com.Oracle.oss.mysql.mysqld.plist
Sie können sie also entweder dort ändern oder herausnehmen, so dass Sie die in Ihrer my.cnf vorhandenen Informationen respektieren, unabhängig davon, wo Sie sich dazu entschieden haben.
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>
Sie können die Datei überprüfen
/usr/local/bin/mysql.server
und sehen, woher my.conf
gelesen wird.
Normalerweise ist es von /etc/my.cnf
oder ~/my.cnf
oder ~/.my.cnf
macOs sierra 10.12.6 mysql version: 5.7.18_1 Ich führe locate my.cnf aus und der Pfad ist
/usr/local/etc/my.cnf
hoffe es hilft.
Erstellen Sie für MAMP 3.5 Mac El Capitan eine separate leere Konfigurationsdatei und schreiben Sie Ihre zusätzlichen Einstellungen für mysql
Sudo vim /Applications/MAMP/Library/my.cnf
Und so hinzufügen
[mysqld]
max_allowed_packet = 256M
macOS High Sierra Version 10.13.6
mysql Ver 14.14 Distrib 5.7.22, für osx10.13 (x86_64) mit dem EditLine-Wrapper Copyright (c) 2000, 2018, Oracle und/oder seine verbundenen Unternehmen. Alle Rechte vorbehalten
Standardoptionen werden aus den folgenden Dateien in der angegebenen Reihenfolge gelesen:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
Ich habe in macOS Sierra eingecheckt, das Homebrew installiert MySql 5.7.12
Die Unterstützungsdateien 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 abgeholt.
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
Öffne das Terminal und verwende den folgenden Befehl:
Sudo find / -name my.cnf
Für mich in Sierra Version
kopieren Sie die Standardkonfiguration unter:
/usr/local/Cellar/mysql/5.6.27/support-files/my-default.cnf
zu
/usr/local/Cellar/mysql/5.6.27/my.cnf
Die MySQL-Dokumente für die von Ihnen verwendete Version helfen dabei. .__ wird normalerweise als Options File
oder MySQL Config File
beschrieben.
Die Dokumente enthalten den Speicherort dieser Dateien in der Dokumentation sowie andere VITAL
-Informationen wie den Speicherort und kleine Beispiele, wie die Konfigurationsdatei aussehen muss.
Auf Unix-Plattformen ignoriert MySQL Konfigurationsdateien, die weltweit beschreibbar sind.
Dies ist als Sicherheitsmaßnahme beabsichtigt.
Wenn Sie also falsche Berechtigungen für Ihre Konfigurationsdatei festgelegt haben, werden sie NICHT geladen.
Beispiel für die Erlaubnis zum erstmaligen Setup 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
-Direktiven in Optionsdateien zu verwenden, um andere Optionsdateien einzuschließen, und!includedir
, um bestimmte Verzeichnisse nach Optionsdateien zu durchsuchen....MySQL übernimmt keine Gewähr für die Reihenfolge, in der Optionsdateien im Verzeichnis gelesen werden ...
Alle Dateien, die unter Unix-Betriebssystemen mit der Direktive! Includedir gefunden und aufgenommen werden sollen, müssen mit Dateinamen auf
.cnf
enden. Unter Windows sucht diese Anweisung nach Dateien mit der Erweiterung.ini
oder.cnf
.
Beispiele, wie Sie den Speicherort Ihrer Konfigurations- oder Protokolldateien ermitteln können, ect .:
Dadurch wird die Konfigurationsdatei nicht angezeigt, aber Sie können 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 Befehls-Credit 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
OR
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
Benötigen Sie ein detailliertes Referenzbeispiel my.cnf:
Keine Verbindung 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)
Kopieren Sie /usr/local/opt/mysql/support-files/my-default.cnf als /etc/my.cnf oder /etc/mysql/my.cnf und starten Sie dann mysql neu.
In meinem Fall war die Datei nicht vorhanden. In MySQL Workbench bin ich zu OPTIONS FILE gegangen und habe einige Standardwerte gefunden. Ich habe mich beworben. Es bat um Erlaubnis. Anschließend wurde die Datei my.cnf unter/etc erstellt. Beachten Sie jedoch, dass Sie beim ersten Klicken auf "Anwenden" keine Änderungen an der Standardkonfiguration vornehmen. Nachdem 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.
Für Mac hat das Erstellen einer .my.cnf-Datei in meinem Pfad ~ funktioniert. Hoffe das hilft.
es sollte normalerweise unter /usr/local/etc
auf dem Mac sein, wenn Sie es nicht finden, können Sie einen erstellen
rDefault-Optionen werden aus den folgenden Dateien in der angegebenen Reihenfolge gelesen: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
Nach der Version 5.7.18 von MySQL enthält es nicht die Standardkonfigurationsdatei im Verzeichnis für Unterstützungsdateien .. __ Sie können also meine.cnf-Datei manual an dem Speicherort erstellen, an dem MySQL wie/etc liest /mysql/my.cnf und fügen Sie die hinzuzufügende Konfiguration der Datei hinzu.