Homebrew mysql kurulumları için, my.cnf nerede?


293

Homebrew mysql kurulumları için, my.cnf nerede? Bir tane mi kuruyor?

Yanıtlar:


263

Varsayılan olarak my.cnf yoktur. Bu nedenle, MySQL tüm varsayılan ayarlarla başlar. Varsayılanları geçersiz kılmak için kendi my.cnf dosyanızı oluşturmak istiyorsanız, /etc/my.cnf dosyasına yerleştirin.

Ayrıca, mysql --helplistelenen conf konumları için çalıştırabilir ve bakabilirsiniz.

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.

Gördüğünüz gibi, conf dosyalarını atlamak veya komut satırında mysql'yi çağırdığınızda okunacak diğer dosyaları belirtmek için bazı seçenekler de vardır.


49
Artık durum böyle değil;
/Usr/local/Cellar/mysql/5.6.15/

6
@williamt "mysql --help" bu dosyayı kullanıldığını listelemiyor, bence bu sadece yükleme dosyalarıyla birlikte gelen bir varsayılan
Vinicius Pinto

2
5.6.26'dayım ve orada görmüyorum.
Adam Grant

3
Üzerinde 5.6.26 tarihinde çalıştırılarak lolcated edilebilir:ls $(brew --prefix mysql)/*.cnf
danielgpm

23
mysql --help | grep cnfçizgileri bulmak daha kolaydı.
vinyll

267

Homebrew mysql, kurulumun destek dosyaları klasöründe örnek yapılandırma dosyaları içerir.

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

Varsayılan ayarları değiştirmeniz gerekirse, bunlardan birini başlangıç ​​noktası olarak kullanabilirsiniz.

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

@ Rednaw'ın işaret ettiği gibi, MySQL'in homebrew kurulumu büyük olasılıkla içeride olacak, /usr/localbu nedenle my.cnf dosyası sistem /etcklasörüne eklenmemelidir , bu yüzden dosyayı kopyalamak için komutu değiştirdim /usr/local/etc.

MySQL yerine MariaDB kullanıyorsanız aşağıdakileri kullanın:

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

4
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
Matt Clegg

7
Homebrew MySQL kurduysanız /usr/local/(Sanırım varsayılan budur), aynı zamanda yerleştirebilirsiniz my.confin /usr/local/etc/yönetici yetkilerine gerek yoktur.
gitaarik

1
demlemek --prefix mysql doğru yolu vermiyor, benim için '/usr/local/Cellar/mysql/5.7.16' gösteriyor, ama gerçekten mariadb '/ usr / local / opt / mariadb /'
zhaozhi

@zhaozhi Kullanın brew --prefix mariadb. MariaDB dağıtımında my-default.cnfmevcut değil - bu yüzden kullanın my-small.cnf. Bunu deneyincp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
ewalshe

Bunun kabul edilen cevap olması gerekir. İlki yanlış. Sorulan soru homebrew ile ilgiliydi.
BugHunterUK

30

Öğrenmenin bir yolu:

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

4
Müthiş bir cevap, locate.updatedb hakkında öğrendim. Ancak, varsayılan olarak yapılandırma dosyası yoktur, aşağıdaki cevaba bakınız
glebm

15
mdfind -name my.cnflocate
OSX'de

Benim için locate my.cnfdoğrudan çalıştı. Kaçmadımsudo /usr/libexec/locate.updatedb
Andru

1
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnfve /usr/local/etc/my.cnf aldığım şey buydu
Vincent Tang

18

benim sistemimde

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

şablon olarak ve

nano /usr/local/etc/my.cnf

çalışma olarak.


18

Bana hiçbir şey gerçekten yardımcı olmadı - /etc/my.cnf dosyasındaki ayarların üzerine yazamadım. Ben de John'un https://stackoverflow.com/a/7974114/717251 önerdiği gibi arama yaptım

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

Başka bir my.cnf bulundu

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

bu dosyayı değiştirmek benim için çalıştı! Launch Agent'ı yeniden başlatmayı unutmayın:

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

Güncelleme:

Oldukça yeni bir homebrew kurulumunuz varsa, mysql'yi yeniden başlatmak için demleme hizmetleri komutlarını kullanmalısınız (kurulu homebrew mysql sürümünüzü kullanın, mysql veya mysql@5.7):

brew services stop mysql
brew services start mysql

Ben de çalıştırabilirsiniz düşünmek brew services stop mysqlve brew services start mysqlyerine launchctl unload ...hatları.
22'de mhulse

1
Bu doğru - ama bu cevabı yazarken bu homebrew komutları henüz mevcut değildi. Cevabı güncelleyeceğim
naabster

13

Yana mysql --helpgösteriler dosyaların bir listesini, ben boruya yararlı sonucu bulmak lsmevcut bunlardan hangisinin görmek için:

$ mysql --help | grep /my.cnf | xargs ls
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf

(Homebrew kurulu) MySQL 5.7 için, dosyalar açık gibi görünüyor /usr/local/etc/my.cnf.


10

Kabuk türünüzde my_print_defaults --help

Sonucun altında, sunucunun yapılandırmaları okuduğu dosyayı görebilmeniz gerekir. Bunun gibi bir şey yazdırır:

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

5

my.cnfDosyanın belirli bir paket tarafından nerede sağlandığını, ör.

brew list mysql # or: mariadb

Dosyanın okunup okunmadığını doğrulamanın yanı sıra şunları da çalıştırabilirsiniz:

sudo fs_usage | grep my.cnf

bu dosyayla ilgili gerçek zamanlı olarak dosya sistemi etkinliğini gösterir.


4

Cevabın hayır olduğuna inanıyorum. ~ / .My.cnf veya / usr / local / etc içine bir tane kurmak tercih edilen çözüm gibi görünmektedir.


2
Benim MBP sadece /etc/my.cnf mysql Homebrew kurulum etkilemek sağlar.
ewalshe

1

Homebrew durumunda, mysql aynı zamanda onun Cellar dizininde my.cnf'yi arar, örneğin:

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

Durumda, yapılandırmayı ikili dosyalara yakın tutmayı tercih eder - my.cnfeksikse burada oluşturun .

Değişiklikten sonra mysql'yi yeniden başlatın:

brew services restart mysql

1

Sunucu sürümü: 8.0.19 Homebrew. macOS Catalina 10.15.5 ve MySQL'i Homebrew üzerinden kurdu. Bu dosyayı burada buldum:

/usr/local/etc/my.cnf

Bu çözüm yardımcı oldu :)


-1

MacOS (High Sierra) için, ev demlemekle birlikte kurulan MySQL.

MySQL ortamından global değişkenleri artırmak başarılı olmadı. Bu durumda ~ / .my.cnf oluşturmak en güvenli seçenektir. [Mysqld] ile değişkenler eklemek değişiklikleri içerecektir (Not: [mysql] ile değiştirirseniz, değişiklik çalışmayabilir).

<~ / .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512M

Mysql sunucusunu yeniden başlatın. ve değişkenleri kontrol edin. y

sql> SELECT @@ max_allowed_packet; + ---------------------- + | @@ max_allowed_packet | + ---------------------- + | 1073741824 | + ---------------------- +

Sette 1 satır (0.00 sn)


-1
  1. $ps aux | grep mysqld /usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql/lib/plugin

  2. My.cf dosyanızı şuraya bırakın: /usr/local/opt/mysql

  3. brew services restart mysql

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.