Sto cercando di seguire questo tutorial per abilitare l'accesso remoto a MySQL. Il problema è, dove dovrebbe my.cnf
trovarsi 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.cnf
trovarsi 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.cnf
file 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
SYSCONFDIR
rappresenta la directory specificata con l'SYSCONFDIR
opzione aCMake
quando è 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.cnf
risiede il file specifico del server . SeMYSQL_HOME
non è impostato e si avvia il server utilizzando ilmysqld_safe
programma, lomysqld_safe
imposta suBASEDIR
, la directory di installazione di base di MySQL.
file specificato con l' --defaults-extra-file=path
eventuale
~/.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 mariadb
Sul 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.cnf
metodo è 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.cnf
con my_print_def
nella colonna più a destra. Poi dopo un po 'è solo /usr/local/etc/my.cnf
con il mio terminale nella colonna più a destra. Ma tutti questi my.cnf
file 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.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(il file specificato con --defaults-extra-file=path
, se presente)~/.my.cnf
Per 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.cnf
quindi 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.cnf
sul 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.server
e vedere da dove my.conf
viene letto.
Di solito viene da /etc/my.cnf
o ~/my.cnf
o~/.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 File
o MySQL Config File
.
I documenti hanno la posizione di questi file nella documentazione, così come altre VITAL
informazioni 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
!include
direttive nei file delle opzioni per includere altri file delle opzioni e!includedir
cercare 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.ini
o.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.cnf
come /etc/my.cnf
o /etc/mysql/my.cnf
e 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.cnf
cui 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.cnf
ma 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.