Sto cercando di seguire questo tutorial per abilitare l'accesso remoto a MySQL. Il problema è, dove dovrebbe my.cnftrovarsi il file? Sto usando Mac OS X Lion.
Sto cercando di seguire questo tutorial per abilitare l'accesso remoto a MySQL. Il problema è, dove dovrebbe my.cnftrovarsi il file? Sto usando Mac OS X Lion.
Risposte:
Questo thread sul forum MySQL dice:
Per impostazione predefinita, l'installazione di OS X non utilizza my.cnf e MySQL utilizza solo i valori predefiniti. Per configurare il tuo my.cnf, puoi semplicemente creare un file direttamente in / etc.
OS X fornisce esempi di file di configurazione su /usr/local/mysql/support-files/.
E se non riesci a trovarli lì, MySQLWorkbench può crearli per te:
my.cnffile stai modificandomysql --verbose --help | grep my.cnf
Nel caso di Mac OS X Maverick quando MySQL è installato tramite Homebrew si trova all'indirizzo /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc. Sono su High Sierra ma è stato installato alcune versioni indietro.
In generale, su sistemi Unix e simili a Unix, i programmi MySQL / MariaDB leggono i file di configurazione / avvio nei seguenti percorsi (nell'ordine specificato):
/etc/my.cnf - Globale/etc/mysql/my.cnf - GlobaleSYSCONFDIR/my.cnf - Globale
SYSCONFDIRrappresenta la directory specificata con l'SYSCONFDIRopzione aCMakequando è stato creato MySQL. Per impostazione predefinita, questa è la directory etc situata nella directory di installazione compilata.
$MYSQL_HOME/my.cnf - Specifico per il server (solo server)
MYSQL_HOMEè una variabile di ambiente che contiene il percorso della directory in cuimy.cnfrisiede il file specifico del server . SeMYSQL_HOMEnon è impostato e si avvia il server utilizzando ilmysqld_safeprogramma, lomysqld_safeimposta suBASEDIR, la directory di installazione di base di MySQL.
file specificato con l' --defaults-extra-file=patheventuale
~/.my.cnf - Specifico per l'utente~/.mylogin.cnf - Specifico per l'utente (solo client)Fonte: utilizzo dei file delle opzioni .
Nota: sulle piattaforme Unix, MySQL ignora i file di configurazione che sono scrivibili in tutto il mondo. Questo è intenzionale come misura di sicurezza.
Inoltre su Mac esiste un modo semplice per verificarlo.
Correre: sudo fs_usage | grep my.cnf
Questo riporterà qualsiasi attività del filesystem in tempo reale relativa a quel file.
In un altro Terminale, riavvia il tuo MySQL / MariaDB, ad es
brew services restart mysql
o:
brew services restart mariadbSul terminale con fs_usage, dovrebbe essere mostrata la posizione corretta, ad es
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
Quindi, se il file non esiste, creane uno.
sudo fs_usage | grep my.cnfmetodo è abbastanza efficiente. Trovo questo file nella cartella: /usr/local/etc/my.cnf
private/etc/my.cnf, /usr/local/etc/my.cnf, /usr/local/Cellar/mysql/<myVersion>/my.cnf, ~.my.cnfcon my_print_defnella colonna più a destra. Poi dopo un po 'è solo /usr/local/etc/my.cnfcon il mio terminale nella colonna più a destra. Ma tutti questi my.cnffile non esistono!
Non so quale versione di MySQL stai usando, ma qui ci sono possibili posizioni del file my.cnf per la versione 5.5 (presa da qui ) su Mac OS X:
/etc/my.cnf/etc/mysql/my.cnfSYSCONFDIR/my.cnf$MYSQL_HOME/my.cnfdefaults-extra-file(il file specificato con --defaults-extra-file=path, se presente)~/.my.cnfPer MySQL 5.7 su Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Copia conf predefinito da /usr/local/mysql/support-files/my-default.cnf
Se stai usando macOS Sierra e il file non esiste, esegui
mysql --help or mysql --help | grep my.cnf
per vedere le possibili posizioni e la sequenza di caricamento / lettura di my.cnf per mysql, quindi creare il file my.cnf in una delle directory suggerite, quindi aggiungere la seguente riga
[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
È sudo touch /{preferred-path}/my.cnfquindi possibile modificare il file per aggiungere la modalità sql da
sudo nano /{preferred-path}/my.cnf
Quindi riavvia mysql, voilà, sei a posto. buona programmazione
L' attuale pacchetto MySQL per Mac OS X Mavericks (mysql-5.6.17-osx10.7-x86_64 al momento della stesura di questo documento) crea automaticamente un file my.cnf durante l'installazione.
Si trova in /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Adatta il tuo percorso in base alla tua versione.
Quindi nessuna di queste cose ha funzionato per me. Sto usando l'attuale installazione dmg del server della comunità mysql. ps mostra che tutti i parametri più critici normalmente in my.cnf sono passati sulla riga di comando e non sono riuscito a capire da dove venisse. Dopo aver fatto una ricerca a testo integrale della mia scatola l'ho trovata in:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Quindi puoi cambiarli lì o eliminarli in modo che rispettino effettivamente quelli che hai nel tuo my.cnf ovunque tu abbia deciso di metterlo.
Godere!
Esempio delle informazioni sul file trovate in quel file:
<?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
È possibile aprire un terminale e digitare locate my.cnf
macOs sierra 10.12.6 versione mysql: 5.7.18_1 Corro individuare my.cnf e il percorso è
/usr/local/etc/my.cnf
spero che sia d'aiuto.
locate my.cnfsul tuo terminale. qual è il risultato?
È possibile creare il file in qualsiasi directory desiderata. Dopo la creazione, puoi "dire" il percorso alla configurazione di mysql:
Puoi controllare il file
/usr/local/bin/mysql.servere vedere da dove my.confviene letto.
Di solito viene da /etc/my.cnfo ~/my.cnfo~/.my.cnf
~/.my.cnf. Aggiungi un punto prima del nome del file.
Aiuteranno i documenti MySQL per la versione in uso. Di solito è descritto come un Options Fileo MySQL Config File.
I documenti hanno la posizione di questi file nella documentazione, così come altre VITALinformazioni come la posizione e piccoli esempi di come deve essere il file di configurazione.
Su piattaforme Unix, MySQL ignora i file di configurazione che sono scrivibili in tutto il mondo.
Questo è intenzionale come misura di sicurezza.
In altre parole, se hai le autorizzazioni sbagliate impostate sul tuo file di configurazione NON verrà caricato.
Esempio di autorizzazione iniziale per l'installazione di uno dei file di configurazione:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
È possibile utilizzare le
!includedirettive nei file delle opzioni per includere altri file delle opzioni e!includedircercare directory specifiche per i file delle opzioni ........ MySQL non fornisce alcuna garanzia sull'ordine in cui verranno letti i file delle opzioni nella directory ...
Tutti i file che possono essere trovati e inclusi usando la direttiva! Includedir sui sistemi operativi Unix devono avere i nomi dei file che finiscono
.cnf. Su Windows, questa direttiva controlla i file con l' estensione.inio.cnf.
Esempi di come trovare la posizione della tua configurazione o file di registro ect .:
Questo non ti mostrerà il file di configurazione ma ti aiuterà a localizzare i tuoi file / cartelle di installazione.
MySQL versione 5.7 e 8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Versione 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
Sopra il credito di comando a: Erwin Mayer di 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
O
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
Se hai bisogno di un esempio di riferimento dettagliato my.cnf:
Nessuna affiliazione / associazione agli 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)
Ho controllato macOS Sierra, l'homebrew installato MySql 5.7.12
I file di supporto si trovano in
/usr/local/opt/mysql/support-files
Basta copiare my-default.cnfcome /etc/my.cnfo /etc/mysql/my.cnfe la configurazione verrà recuperata al riavvio.
macOS High Sierra versione 10.13.6
mysql Ver 14.14 Distribuire 5.7.22, per osx10.13 (x86_64) utilizzando il wrapper EditLine Copyright (c) 2000, 2018, Oracle e / o le sue affiliate. Tutti i diritti riservati
Le opzioni predefinite vengono lette dai seguenti file nell'ordine indicato:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
/private/etc/my.cnf per Catalina
Sto usando mysql versione 5.7.17 in macOS High Sierra versione 10.13.3 e ho trovato il file di configurazione mysql qui.
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnfcui verrà prelevato, come da: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.
Per Mac, ciò che ha funzionato per me è la creazione di un file .my.cnf nel mio percorso ~. Spero che questo ti aiuti.
Copia /usr/local/opt/mysql/support-files/my-default.cnf come /etc/my.cnf o /etc/mysql/my.cnf e riavvia mysql.
Nel mio caso, il file non esisteva. In MySQL Workbench sono andato su OPTIONS FILE e ho trovato alcuni valori predefiniti. Ho fatto clic su Applica. Ha chiesto il permesso. Ha quindi creato il file my.cnf in / etc. Tuttavia, è molto importante tenere presente che la prima volta che si fa clic su "Applica", non si apportano modifiche alla configurazione predefinita. Una volta creato il file, è possibile apportare le modifiche che verranno applicate quando si fa clic su "applica". Altrimenti non ti verrà mostrato il pulsante Applica quando apporti modifiche.
/etc/mysql/my.cnfma MySQL Workbench non ne è a conoscenza. Invece, si lamenta che il file di configurazione con un percorso vuoto non può essere trovato e quindi offre di creare un nuovo file.
Dopo la versione 5.7.18 di MySQL, non fornisce il file di configurazione predefinito nella directory support-files. Quindi puoi creare manualmente il file my.cnf nella posizione in cui leggerà MySQL, come /etc/mysql/my.cnf, e aggiungere la configurazione che desideri aggiungere nel file.
rLe opzioni predefinite vengono lette dai seguenti file nell'ordine indicato: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf
Sto eseguendo MacOS Mojave (10.14.6) e per far riconoscere a MySQL il mio file di configurazione, ho dovuto inserirlo in /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf. Inoltre ho un link simbolico che punta ad esso da /usr/local/@mysql/etc/my.cnf.
Stavo cercando di disattivare sql_mode = only_full_group_by e impostare quell'opzione nel file di configurazione era l'unico modo in cui riuscivo a far sì che l'impostazione persistesse tra le sessioni. I contenuti del file di configurazione sono:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Sto usando l'installazione nativa di MySQL, non la configurazione di Homebrew.
Per mysql 8.0.19, ho finalmente trovato my.cnf qui: /usr/local/opt/mysql/.bottle/etc L'ho copiato in / usr / local / opt / mysql / e l'ho modificato. Quindi riavvio il servizio mysql, funziona.