2011-11-01 10 views

risposta

176

Non esiste my.cnf per impostazione predefinita. In quanto tale, MySQL inizia con tutte le impostazioni predefinite. Se si desidera creare il proprio my.cnf per sovrascrivere eventuali valori predefiniti, posizionarlo su /etc/my.cnf.

Inoltre, è possibile eseguire mysql --help e cercare attraverso le posizioni conf elencate.

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. 

Come si può vedere, ci sono anche alcune opzioni per bypassare i file conf, o specificare altri file da leggere quando si richiama mysql sulla riga di comando.

+40

Questo non sembra più il caso; Vedo un file my.cnf in /usr/local/Cellar/mysql/5.6.15/ (o qualsiasi altra versione installata) –

+4

@williamt "mysql --help" non elenca quel file come usato, penso è solo un default che viene fornito con i file di installazione –

+1

@williamt Penso che Vinicius abbia ragione. Vedo /usr/local/Cellar/mysql/5.6.20_1/my.cnf ma quando ho aggiunto il log-bin a esso e riavviato mysqld, non è stato ancora abilitato il logging binario. Non è stato fino a quando ho copiato my.cnf in /etc/my.cnf che la registrazione binaria era abilitata. Forse il file my.cnf è usato durante l'installazione iniziale, non sono sicuro. – Mark

17

Un modo per scoprire:

sudo /usr/libexec/locate.updatedb 
# wait a few minutes for it to finish 
locate my.cnf 
+1

Risposta straordinaria, ho imparato a localizzare.updatedb. Tuttavia, non esiste un file di configurazione per impostazione predefinita, vedere la risposta sotto – glebm

+9

È possibile utilizzare 'mdfind -name my.cnf' anziché il comando' locate' su OSX – JacopKane

+0

Per me 'locate my.cnf' ha funzionato direttamente. Non ho eseguito 'sudo/usr/libexec/locate.updatedb' – Andru

4

Credo che la risposta è no. Installare uno in ~/.my.cnf o/usr/local/etc sembra essere la soluzione preferita.

+2

Solo sul mio MBP /etc/my.cnf mi consente di influenzare l'installazione Homebrew di mysql. – ewalshe

257

Il mysql homebrew contiene file di configurazione di esempio nella cartella dei file di supporto dell'installazione.

ls $(brew --prefix mysql)/support-files/my-* 

Se è necessario modificare le impostazioni predefinite, è possibile utilizzare uno di questi come punto di partenza.

cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf 

Come @rednaw sottolinea, un homebrew installazione di MySQL molto probabilmente sarà in /usr/local modo che il file my.cnf non dovrebbe essere aggiunto alla cartella di sistema /etc, così ho cambiato il comando per copiare il file in /usr/local/etc.

Se si utilizza MariaDB piuttosto che MySQL utilizzare il seguente:

cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf 
+1

Ora è "my-default.cnf", ma funziona comunque perfettamente – Ashley

+4

'sudo cp $ (brew --prefix mysql)/support- files/my-default.cnf/etc/my.cnf' – mattclegg

+6

Se Homebrew ha installato MySQL in '/ usr/local /' (che credo sia l'impostazione predefinita), puoi anche inserire 'my.conf' in'/usr/local/etc/', che non richiede i privilegi di root. – rednaw

8

del tipo di shell my_print_defaults --help

Al fondo del risultato, si dovrebbe essere in grado di vedere il file da cui il il server legge le configurazioni. Esso stampa qualcosa di simile:

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 
12

Niente mi ha veramente aiutato - non riuscivo a sovrascrivere le impostazioni in un file /etc/my.cnf. Così ho cercato come Giovanni ha suggerito https://stackoverflow.com/a/7974114/717251

sudo /usr/libexec/locate.updatedb 
# wait a few minutes for it to finish 
locate my.cnf 

E ha trovato un altro my.cnf in

/usr/local/Cellar/mysql/5.6.21/my.cnf 

cambiare questo file ha funzionato per me! Non dimenticate di riavviare l'agente di lancio:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist 
3

puoi trovare dove il file my.cnf è stato fornito dal pacchetto specifico, per esempio

brew list mysql # or: mariadb 

Oltre a verificare se tale file viene letto, è possibile eseguire:

sudo fs_usage | grep my.cnf 

che vi mostrerà l'attività del filesystem in tempo reale relative a quel file.

1

nel mio sistema era

nano /usr/local/etc/my.cnf.default 

come modello e

nano /usr/local/etc/my.cnf 

come lavorare.

Problemi correlati