MacOS'ta my.cnf dosyasının konumu


185

MySQL'e uzaktan erişim sağlamak için bu eğitimi takip etmeye çalışıyorum . Sorun şu ki, my.cnfdosya nerede bulunmalı ? Mac OS X Lion kullanıyorum.


Bunun serverfault.com'a ait olduğunu düşünüyorum. Ama yine de, SO hoş geldiniz!
Artefact2

Yanıtlar:


253

MySQL forumundaki bu konu şöyle diyor:

OS X yüklemesi varsayılan olarak my.cnf kullanmaz ve MySQL yalnızca varsayılan değerleri kullanır. Kendi my.cnf dosyanızı ayarlamak için, doğrudan / etc içinde bir dosya oluşturabilirsiniz.

OS X, adresinde örnek yapılandırma dosyaları sağlar /usr/local/mysql/support-files/.

Bunları orada bulamazsanız, MySQLWorkbench bunları sizin için oluşturabilir:

  1. Bağlantı açma
  2. Menüdeki 'INSTANCE' altındaki 'Seçenekler Dosyası'nı seçme.
  3. MySQLWorkbench my.cnf dosyasını arayacak ve bulamazsa, sizin için oluşturacaktır

14
Mac OS X (bu yazının yazıldığı anda mysql-5.6.17-osx10.7-x86_64) için en az şu anki MySQL paketinin de yapar aslında oluşturmak ve my.cnf kullanın. Bu /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf bulunmaktadır
Jpsy

104
my.cnfmysql --verbose --help | grep my.cnf
mysql'in

3
Mac OS Sierra'da henüz kurulmadı. /Usr/local/mysql/support-files/my-default.cnf dosyasını aynı dizin içinde my.cnf dosyasına kopyalamak zorunda kaldım. MySQL'in pakete bağlandığını, benim durumumda mysql-5.7.17-macos10.12-x86_64 olduğunu unutmayın.
Christia

17
Sadece dev.mysql.com .dmg kullanarak Mac OS 10.12 üzerinde MySQL 5.7.19 temiz bir yükleme yaptı. Mysql --help ifadesinin göründüğü yerlerin hiçbirinde my.cnf dosyası yoktur. Çıkıyor "MySQL 5.7.18 itibariyle my-default.cnf artık dahildir veya dağıtım paketleri tarafından yüklenen" .
Chris Bartley

2
Bu yanıt eskidir ve mysql'yi yüklemek için kullandığınız yükleyiciye bağlıdır. Homebrew bir yere koyar, dmg yükleyici başka bir koyar
slashdottir


56

Genel olarak, Unix ve Unix benzeri sistemlerde, MySQL / MariaDB programları yapılandırma / başlatma dosyalarını aşağıdaki konumlarda (belirtilen sırada) okur:

  • /etc/my.cnf - Global
  • /etc/mysql/my.cnf - Global
  • SYSCONFDIR/my.cnf - Global

    SYSCONFDIRMySQL'in oluşturulma SYSCONFDIRseçeneği ile belirtilen dizini temsil eder CMake. Varsayılan olarak, bu derlenmiş kurulum dizininin altında bulunan etc dizinidir.

  • $MYSQL_HOME/my.cnf - Sunucuya özgü (yalnızca sunucu)

    MYSQL_HOMEsunucuya özgü my.cnfdosyanın bulunduğu dizinin yolunu içeren bir ortam değişkenidir . Eğer MYSQL_HOMEset ve kullanmakta sunucuyu başlatmak değil mysqld_safe, programın mysqld_safeo kadar setleri BASEDIR, MySQL baz kurulum dizini.

  • --defaults-extra-file=pathvarsa ile belirtilen dosya

  • ~/.my.cnf - Kullanıcıya özgü
  • ~/.mylogin.cnf - Kullanıcıya özgü (yalnızca istemciler)

Kaynak: Seçenek Dosyalarını Kullanma .

Not: Unix platformlarında, MySQL dünya çapında yazılabilir yapılandırma dosyalarını yok sayar. Bu bir güvenlik önlemi olarak kasıtlıdır.


Ek olarak Mac'te kontrol etmenin basit bir yolu var.

  1. Çalıştırmak: sudo fs_usage | grep my.cnf

    Bu, dosyayla ilgili tüm dosya sistemi etkinliklerini gerçek zamanlı olarak rapor edecektir.

  2. Başka bir Terminalde, MySQL / MariaDB'nizi yeniden başlatın, örn.

    brew services restart mysql

    veya:

    brew services restart mariadb
  3. İle terminalde fs_usage, uygun konum gösterilmelidir, örn.

    15:52:22  access            /usr/local/Cellar/mariadb/10.1.14/my.cnf                                         0.000002   sh          

    Dosya yoksa, bir tane oluşturun.


6
Teşekkürler! sudo fs_usage | grep my.cnfyöntem oldukça etkilidir. Bu dosyayı şu klasörde buldum: /usr/local/etc/my.cnf
gary

3
Büyük bir yöntem, ancak ben orada birkaç sonuç almak: private/etc/my.cnf, /usr/local/etc/my.cnf, /usr/local/Cellar/mysql/<myVersion>/my.cnf, ~.my.cnfile my_print_defen sağdaki sütunda. Sonra bir süre sonra sadece /usr/local/etc/my.cnfen sağ sütundaki terminalimle. Ancak tüm bu my.cnfdosyalar mevcut değil!
Andru

@Andru Hiçbiri yoksa, yeni bir tane oluşturun.
kenorb

1
Son talimat grubunuz re sudo fs_usage | grep my.cnf bu sayfada bana yardımcı olan tek şeydi, çünkü bilinmeyen bir nedenden dolayı mysqld mysql -?
redbirdo

1
Bu komut sudo fs_usage | grep my.cnf günümü kurtardı, bir milyon teşekkürler.
Shashikant Soni

33

Hangi MySQL sürümünü kullandığınızı bilmiyorum, ancak Mac OS X'te 5.5 sürümü ( buradan alınır ) için my.cnf dosyasının olası konumları şunlardır :

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. SYSCONFDIR/my.cnf
  4. $MYSQL_HOME/my.cnf
  5. defaults-extra-file( --defaults-extra-file=pathvarsa ile belirtilen dosya )
  6. ~/.my.cnf


21

MacOS Sierra kullanıyorsanız ve dosya yoksa, çalıştırın

mysql --help or mysql --help | grep my.cnf

mysql için my.cnf dosyasının olası konumlarını ve yükleme / okuma sırasını görmek için önerilen dizinlerden birinde my.cnf dosyasını oluşturun ve aşağıdaki satırı ekleyin

[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

Daha sudo touch /{preferred-path}/my.cnfsonra dosyayı sql modu eklemek için düzenleyebilirsiniz.

sudo nano /{preferred-path}/my.cnf

Sonra mysql yeniden başlatın, voilaah gitmek için iyidir. mutlu kodlama



12

Yani bunların hiçbiri benim için işe yaramadı. Mysql topluluk sunucusunun geçerli dmg yüklemesini kullanıyorum. ps normalde my.cnf içindeki en kritik parametrelerin hepsinin komut satırında geçtiğini ve bunun nereden geldiğini anlayamadığımı gösterir. Kutumun tam metin aramasını yaptıktan sonra buldum:

/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

Böylece onları orada değiştirebilir veya çıkartabilirsiniz, böylece my.cnf'nizde bulunanlara koymaya karar verdiğiniz her yere saygı gösterecektir.

Zevk almak!

Bu dosyada bulunan dosya bilgilerine örnek:

<?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>

harika! günümü kurtardın.
jenny

Aynı /etc/my.cnf
davam

11

Bir terminal açabilir ve yazabilirsiniz locate my.cnf


Maalesef yeterince belirgin olmadığım için, görünüşe göre 'my-large.cnf' dosyasını bir klasöre kopyalayıp 'my.cnf' olarak yeniden adlandırmam gerekiyor. Ama nerede olduğunu bilmiyorum ..
nicolas

1
Ayrıca, nüfuslu bir yer tespit db olması gerekir. mac osx üzerinde: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
arcseldon

10

Homebrew'dan yüklediğim mysql 5.6.22'de, my.cnf dosyasının yolu

/usr/local/opt/mysql/my.cnf 

10

macOs sierra 10.12.6 mysql sürümü: 5.7.18_1 Bulmak my.cnf bulun ve yol

/usr/local/etc/my.cnf

umarım yardımcı olur.


asnwer'inize açıklama eklemeyi düşünün
Inder

@ charles.cc.hsu: locate my.cnfterminalinizde komutu kullanmayı deneyin . sonuç ne
aginanjar

6

Dosyanızı istediğiniz herhangi bir dizinin altında oluşturabilirsiniz. Oluşturulduktan sonra, mysql config yolunu "söyleyebilirsiniz":

resim açıklamasını buraya girin


6

Dosyayı kontrol edebilirsiniz

/usr/local/bin/mysql.serverve nereden my.confokunduğunu görün.

Genellikle /etc/my.cnfveya ~/my.cnfveya~/.my.cnf


Düzeltme: ~/.my.cnf. Dosya adının önüne bir nokta ekleyin.
undefined

5

MAMP 3.5 Mac El Capitan için ayrı bir boş yapılandırma dosyası oluşturun ve mysql için ek ayarlarınızı yazın

sudo vim /Applications/MAMP/Library/my.cnf

Ve bunun gibi ekle

[mysqld]
max_allowed_packet = 256M

5

Terminal'i açın ve aşağıdaki komutu kullanın:

sudo find / -name my.cnf

4

BELGELERİ OKUYUN!

Hangi sürümü kullandığınız MySQL Belgeleri size yardımcı olacaktır. Genellikle a Options Fileveya olarak tanımlanır MySQL Config File.
Dokümanlar, bu dosyaların dokümantasyondaki konumunun yanı sıra VITAL, konum ve yapılandırma dosyasının nasıl görünmesi gerektiğine ilişkin küçük örnekler gibi diğer bilgilere sahiptir.

MySQL Sürüm 8

MySQL Sürüm 5.7

MySQL Sürüm 5.6

MySQL Sürüm 5.5

MySQL Sürüm 5.6 Japonca

Önemli notlar:

Unix platformlarında, MySQL dünya çapında yazılabilir yapılandırma dosyalarını yok sayar.

Bu bir güvenlik önlemi olarak kasıtlıdır.

Başka bir deyişle, yapılandırma dosyanızda yanlış izinler ayarlanmışsa, YÜKLENMEZ.

Yapılandırma dosyalarından birinin ilk kurulum izni örneği:

RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r--  1 myusername  wheel     0B Feb 25 20:40 /etc/my.cnf

Not:

!includeSeçenek dosyalarında, diğer seçenek dosyalarını dahil etmek ve !includedirbelirli dizinleri seçenek dosyaları aramak için yönergeler kullanmak mümkündür ...

... MySQL, dizindeki seçenek dosyalarının okunacağı sıra hakkında hiçbir garanti vermez ...

Unix işletim sistemlerinde! İncluir yönergesi kullanılarak bulunacak ve eklenecek tüm dosyaların dosya adları bitiyor olmalıdır .cnf. Windows'ta bu yönerge, .iniveya .cnfuzantısına sahip dosyaları denetler .

Yapılandırma veya günlük dosyalarınızın yerini nasıl bulacağınıza örnekler:

SQL

Bu size yapılandırma dosyasını göstermez, ancak yükleme dosyalarınızı / klasörlerinizi bulmanıza yardımcı olur.

MySQL Sürüm 5.7 ve 8+

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';

MySQL Sürümü <= 5.6

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';

KABUK / Terminali

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

Komut Kredisinin Üstü: ServerFault'dan Erwin Mayer

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

VEYA

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

Örnek Dosya

Ayrıntılı bir Referans Örneği gerekiyorsa my.cnf:

  1. https://gist.github.com/search?utf8=%E2%9C%93&q=my.cnf+mysql&ref=searchresults
  2. https://www.linode.com/community/questions/5749/mysql-sample-config-files
  3. https://www.fromdual.com/mysql-configuration-file-sample

URL'lerle bağlantı / ilişkilendirme yok

Sistemim:

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)

mysql --help | grep "Varsayılan seçenekler" -A 1. bu yardımcı oldu.
wandermonk

4

Ben MacOS Catalina (10.15.3) çalıştıran ve bulacağım my.cnfiçinde /usr/local/etc.


2

Kurulu homebrew macOS Sierra'ya baktım MySql 5.7.12

Destek dosyaları şu adreste bulunur:

/usr/local/opt/mysql/support-files

Sadece veya my-default.cnfolarak kopyalayın ve yapılandırma yeniden başlatıldığında alınacaktır./etc/my.cnf/etc/mysql/my.cnf


4
Homebrew aracılığıyla 12.12.4'te 5.7.18'i yeni kurdum ve orada değiller.
norman_h

2

macOS High Sierra sürüm 10.13.6

mysql Ver 14.14 EditLine sarıcı Telif Hakkı (c) 2000, 2018, Oracle ve / veya bağlı şirketlerini kullanarak osx10.13 (x86_64) için 5.7.22 dağıtın. Tüm hakları Saklıdır

Varsayılan seçenekler, aşağıdaki dosyalardan verilen sırayla okunur:

/etc/my.cnf 
/etc/mysql/my.cnf 
/usr/local/etc/my.cnf 
~/.my.cnf


1

MacOS High Sierra sürüm 10.13.3'te mysql sürüm 5.7.17 kullanıyorum ve burada mysql yapılandırma dosyasını buldum.

cd /usr/local/mysql/support-files/my-default.cnf

Varsayılan yapılandırma dosyasını bulma konusundaki ipucu için teşekkür ederiz. Not, bu sadece bir şablon dosyasıdır, bu yüzden mysql --verbose --help | grep my.cnfbunu, alınacağı yerde bulunan bir konuma kopyalamak isteyeceksiniz :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.
Joshua Pinter

1

/usr/local/etcbulamazsanız genellikle mac altında olması gerekir


0

Mac için benim için işe yarayan ~ yolumda bir .my.cnf dosyası oluşturmak. Bu yardımcı olur umarım.


0

/Usr/local/opt/mysql/support-files/my-default.cnf dosyasını /etc/my.cnf veya /etc/mysql/my.cnf olarak kopyalayın ve mysql'yi yeniden başlatın.


0

Benim için Sierra sürümünde

varsayılan yapılandırmayı şuraya kopyalayın:

/usr/local/Cellar/mysql/5.6.27/support-files/my-default.cnf

için

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


0

Benim durumumda, dosya mevcut değildi. MySQL Workbench'te OPTIONS FILE öğesine gittim ve bazı varsayılan değerler buldum. Uygula'yı tıkladım. İzin istedi. Daha sonra / etc altında my.cnf dosyasını oluşturdu. Ancak, "uygula" yı ilk tıkladığınızda varsayılan yapılandırmada herhangi bir değişiklik yapmadığınızı aklınızda bulundurmanız çok önemlidir. Dosya oluşturulduktan sonra, "uygula" yı tıkladığınızda uygulanacak değişiklikleri yapabilirsiniz. Aksi takdirde, değişiklik yaptığınızda uygula düğmesi gösterilmez.


Ben bir seçenekler dosyası var /etc/mysql/my.cnfama MySQL Workbench bunun farkında değil. Bunun yerine, boş bir yola sahip yapılandırma dosyasının bulunamadığından şikayet eder ve ardından yeni bir dosya oluşturmayı önerir.
Alan Snyder

0

MySQL'in 5.7.18 sürümünden sonra, destek dosyaları dizinindeki varsayılan yapılandırma dosyasını sağlamaz. Böylece /etc/mysql/my.cnf gibi MySQL'in okuyacağı yerde my.cnf dosyasını manuel olarak oluşturabilir ve dosyaya eklemek istediğiniz yapılandırmayı ekleyebilirsiniz.


0

rVarsayılan seçenekler aşağıdaki dosyalardan verilen sırayla okunur: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf


0

MacOS Mojave (10.14.6) kullanıyorum ve MySQL'i yapılandırma dosyamı tanıması için /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf içine yerleştirmek zorunda kaldım. Ayrıca /usr/local/@mysql/etc/my.cnf adresinden sembolik bir bağım var.

Sql_mode = only_full_group_by kapatmaya çalışıyordum ve yapılandırma dosyasında bu seçeneği ayarlamak, oturumlar arasında devam etmek için ayar alabilir tek yolu oldu. Yapılandırma dosyasının içeriği:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION

Homebrew kurulumunu değil, MySQL'in yerel kurulumunu kullanıyorum.


0

MySQL 8.0.19 için, sonunda my.cnf burada buldum: /usr/local/opt/mysql/.bottle/etc / usr / local / opt / mysql / dizinine kopyaladım ve değiştirdim. Sonra mysql hizmetini yeniden başlatın, çalışır.

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.