MySQL'e uzaktan erişim sağlamak için bu eğitimi takip etmeye çalışıyorum . Sorun şu ki, my.cnf
dosya nerede bulunmalı ? Mac OS X Lion kullanıyorum.
MySQL'e uzaktan erişim sağlamak için bu eğitimi takip etmeye çalışıyorum . Sorun şu ki, my.cnf
dosya nerede bulunmalı ? Mac OS X Lion kullanıyorum.
Yanıtlar:
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:
my.cnf
mysql --verbose --help | grep my.cnf
MySQL Homebrew üzerinden kurulduğunda Mac OS X Maverick için /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
. High Sierra'dayım ama birkaç versiyon geri yüklendi.
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
- GlobalSYSCONFDIR/my.cnf
- Global
SYSCONFDIR
MySQL'in oluşturulmaSYSCONFDIR
seçeneği ile belirtilen dizini temsil ederCMake
. Varsayılan olarak, bu derlenmiş kurulum dizininin altında bulunan etc dizinidir.
$MYSQL_HOME/my.cnf
- Sunucuya özgü (yalnızca sunucu)
MYSQL_HOME
sunucuya özgümy.cnf
dosyanın bulunduğu dizinin yolunu içeren bir ortam değişkenidir . EğerMYSQL_HOME
set ve kullanmakta sunucuyu başlatmak değilmysqld_safe
, programınmysqld_safe
o kadar setleriBASEDIR
, MySQL baz kurulum dizini.
--defaults-extra-file=path
varsa 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.
Çalıştırmak: sudo fs_usage | grep my.cnf
Bu, dosyayla ilgili tüm dosya sistemi etkinliklerini gerçek zamanlı olarak rapor edecektir.
Başka bir Terminalde, MySQL / MariaDB'nizi yeniden başlatın, örn.
brew services restart mysql
veya:
brew services restart mariadb
İ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.
sudo fs_usage | grep my.cnf
yöntem oldukça etkilidir. Bu dosyayı şu klasörde buldum: /usr/local/etc/my.cnf
private/etc/my.cnf
, /usr/local/etc/my.cnf
, /usr/local/Cellar/mysql/<myVersion>/my.cnf
, ~.my.cnf
ile my_print_def
en sağdaki sütunda. Sonra bir süre sonra sadece /usr/local/etc/my.cnf
en sağ sütundaki terminalimle. Ancak tüm bu my.cnf
dosyalar mevcut değil!
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 :
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
( --defaults-extra-file=path
varsa ile belirtilen dosya )~/.my.cnf
Mac OS X El Capitan'daki MySQL 5.7 için: /usr/local/mysql/etc/my.cnf
Varsayılan kon yeri kopyala /usr/local/mysql/support-files/my-default.cnf
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.cnf
sonra 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
Mac OS X Mavericks için geçerli MySQL paketi (bu yazının yazıldığı anda mysql-5.6.17-osx10.7-x86_64) otomatik yükleme sırasında bir my.cnf oluşturur.
/usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Sürümünüze göre yolunuzu uyarlayın adresinde bulunur .
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>
/etc/my.cnf
Bir terminal açabilir ve yazabilirsiniz locate my.cnf
Dosyanızı istediğiniz herhangi bir dizinin altında oluşturabilirsiniz. Oluşturulduktan sonra, mysql config yolunu "söyleyebilirsiniz":
Dosyayı kontrol edebilirsiniz
/usr/local/bin/mysql.server
ve nereden my.conf
okunduğunu görün.
Genellikle /etc/my.cnf
veya ~/my.cnf
veya~/.my.cnf
~/.my.cnf
. Dosya adının önüne bir nokta ekleyin.
Hangi sürümü kullandığınız MySQL Belgeleri size yardımcı olacaktır. Genellikle a Options File
veya 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.
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
!include
Seçenek dosyalarında, diğer seçenek dosyalarını dahil etmek ve!includedir
belirli 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,.ini
veya.cnf
uzantısına sahip dosyaları denetler .
Yapılandırma veya günlük dosyalarınızın yerini nasıl bulacağınıza örnekler:
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 '%\/%';
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
Ayrıntılı bir Referans Örneği gerekiyorsa my.cnf:
URL'lerle bağlantı / ilişkilendirme yok
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)
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.cnf
olarak kopyalayın ve yapılandırma yeniden başlatıldığında alınacaktır./etc/my.cnf
/etc/mysql/my.cnf
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
Catalina için /private/etc/my.cnf
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
mysql --verbose --help | grep my.cnf
bunu, 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.
Mac için benim için işe yarayan ~ yolumda bir .my.cnf dosyası oluşturmak. Bu yardımcı olur umarım.
/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.
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.
/etc/mysql/my.cnf
ama 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.
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
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.
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.