Homebrew mysql kurulumları için, my.cnf nerede? Bir tane mi kuruyor?
Homebrew mysql kurulumları için, my.cnf nerede? Bir tane mi kuruyor?
Yanıtlar:
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 --help
listelenen 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.
ls $(brew --prefix mysql)/*.cnf
mysql --help | grep cnf
çizgileri bulmak daha kolaydı.
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/local
bu nedenle my.cnf dosyası sistem /etc
klasö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
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
/usr/local/
(Sanırım varsayılan budur), aynı zamanda yerleştirebilirsiniz my.conf
in /usr/local/etc/
yönetici yetkilerine gerek yoktur.
brew --prefix mariadb
. MariaDB dağıtımında my-default.cnf
mevcut 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
Öğrenmenin bir yolu:
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
mdfind -name my.cnf
locate
locate my.cnf
doğrudan çalıştı. Kaçmadımsudo /usr/libexec/locate.updatedb
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnf
ve /usr/local/etc/my.cnf
aldığım şey buydu
benim sistemimde
nano /usr/local/etc/my.cnf.default
şablon olarak ve
nano /usr/local/etc/my.cnf
çalışma olarak.
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
brew services stop mysql
ve brew services start mysql
yerine launchctl unload ...
hatları.
Yana mysql --help
gösteriler dosyaların bir listesini, ben boruya yararlı sonucu bulmak ls
mevcut 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
.
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
my.cnf
Dosyanı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.
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.
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.cnf
eksikse burada oluşturun .
Değişiklikten sonra mysql'yi yeniden başlatın:
brew services restart mysql
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 :)
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)
$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
My.cf dosyanızı şuraya bırakın: /usr/local/opt/mysql
brew services restart mysql