Saya mencoba mengikuti tutorial ini untuk mengaktifkan akses jarak jauh ke MySQL. Masalahnya adalah, di mana seharusnya my.cnffile berada? Saya menggunakan Mac OS X Lion.
Saya mencoba mengikuti tutorial ini untuk mengaktifkan akses jarak jauh ke MySQL. Masalahnya adalah, di mana seharusnya my.cnffile berada? Saya menggunakan Mac OS X Lion.
Jawaban:
Utas ini di forum MySQL mengatakan:
Secara default, instalasi OS X tidak menggunakan my.cnf, dan MySQL hanya menggunakan nilai default. Untuk mengatur my.cnf Anda sendiri, Anda bisa langsung membuat file di / etc.
OS X menyediakan contoh file konfigurasi di /usr/local/mysql/support-files/.
Dan jika Anda tidak dapat menemukannya di sana, MySQLWorkbench dapat membuatnya untuk Anda dengan:
my.cnffile mana pun yang Anda edit melaluimysql --verbose --help | grep my.cnf
Dalam kasus Mac OS X Maverick ketika MySQL diinstal melalui Homebrew itu terletak di /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc. Saya menggunakan High Sierra tetapi telah menginstal beberapa versi kembali.
Secara umum, pada sistem Unix dan Unix-like, program MySQL / MariaDB membaca file konfigurasi / startup di lokasi berikut (dalam urutan yang ditentukan):
/etc/my.cnf - Global/etc/mysql/my.cnf - GlobalSYSCONFDIR/my.cnf - Global
SYSCONFDIRmewakili direktori yang ditentukan denganSYSCONFDIRopsiCMakekapan MySQL dibangun. Secara default, ini adalah direktori dll yang terletak di bawah direktori instalasi yang dikompilasi.
$MYSQL_HOME/my.cnf - Khusus server (hanya server)
MYSQL_HOMEadalah variabel lingkungan yang berisi jalur ke direktori di manamy.cnffile khusus server berada. JikaMYSQL_HOMEtidak disetel dan Anda memulai server menggunakanmysqld_safeprogram,mysqld_safeset keBASEDIR, direktori instalasi basis MySQL.
file ditentukan dengan --defaults-extra-file=pathjika ada
~/.my.cnf - Khusus pengguna~/.mylogin.cnf - Khusus pengguna (hanya klien)Sumber: Menggunakan File Opsi .
Catatan: Pada platform Unix, MySQL mengabaikan file konfigurasi yang dapat ditulis oleh dunia. Ini disengaja sebagai langkah pengamanan.
Selain itu di Mac ada cara sederhana untuk memeriksanya.
Lari: sudo fs_usage | grep my.cnf
Ini akan melaporkan setiap aktivitas sistem file secara real-time terkait dengan file itu.
Di Terminal lain, mulai ulang MySQL / MariaDB Anda, mis
brew services restart mysql
atau:
brew services restart mariadbPada terminal dengan fs_usage, lokasi yang tepat harus ditunjukkan, mis
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
Jadi jika file tersebut tidak ada, buat satu.
sudo fs_usage | grep my.cnfmetode ini cukup efisien. Saya menemukan file ini di folder: /usr/local/etc/my.cnf
private/etc/my.cnf, /usr/local/etc/my.cnf, /usr/local/Cellar/mysql/<myVersion>/my.cnf, ~.my.cnfdengan my_print_defdi kolom paling kanan. Kemudian setelah beberapa saat hanya /usr/local/etc/my.cnfdengan terminal saya di kolom paling kanan. Tetapi semua my.cnffile ini tidak ada!
Saya tidak tahu versi MySQL yang Anda gunakan, tetapi berikut adalah lokasi yang mungkin dari file my.cnf untuk versi 5.5 (diambil dari sini ) di Mac OS X:
/etc/my.cnf/etc/mysql/my.cnfSYSCONFDIR/my.cnf$MYSQL_HOME/my.cnfdefaults-extra-file(file ditentukan dengan --defaults-extra-file=path, jika ada)~/.my.cnfUntuk MySQL 5.7 di Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Salin konfigurasi default dari /usr/local/mysql/support-files/my-default.cnf
Jika Anda menggunakan macOS Sierra dan file tidak ada, jalankan
mysql --help or mysql --help | grep my.cnf
untuk melihat kemungkinan lokasi dan memuat / membaca urutan my.cnf untuk mysql kemudian membuat file my.cnf di salah satu direktori yang disarankan kemudian tambahkan baris berikut
[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
Anda sudo touch /{preferred-path}/my.cnfkemudian dapat mengedit file untuk menambahkan mode sql dengan
sudo nano /{preferred-path}/my.cnf
Kemudian restart mysql, voilaah Anda baik untuk pergi. selamat coding
The paket MySQL saat ini untuk Mac OS X Mavericks (mysql-5.6.17-osx10.7-x86_64 pada saat tulisan ini) secara otomatis membuat my.cnf selama instalasi.
Itu terletak di /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Adaptasikan jalur Anda sesuai dengan versi Anda.
Jadi tidak ada yang berhasil untuk saya. Saya menggunakan instalasi dmg saat ini dari server komunitas mysql. ps menunjukkan bahwa semua parameter paling kritis biasanya di my.cnf dilewatkan pada baris perintah, dan saya tidak tahu dari mana itu berasal. Setelah melakukan pencarian teks lengkap dari kotak saya, saya menemukannya di:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Jadi Anda bisa mengubahnya di sana, atau membawanya keluar sehingga itu benar-benar akan menghormati yang Anda miliki di my.cnf Anda di mana pun Anda memutuskan untuk meletakkannya.
Nikmati!
Contoh info file yang ditemukan dalam file itu:
<?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
Anda dapat membuka terminal dan mengetik locate my.cnf
Anda dapat membuat file di bawah direktori apa pun yang Anda inginkan. Setelah membuat, Anda dapat "memberi tahu" path ke konfigurasi mysql:
Anda dapat memeriksa file
/usr/local/bin/mysql.serverdan melihat dari mana my.confsedang dibaca.
Biasanya itu adalah dari /etc/my.cnfatau ~/my.cnfatau~/.my.cnf
~/.my.cnf. Tambahkan titik sebelum nama file.
Buka Terminal dan gunakan perintah di bawah ini:
sudo find / -name my.cnf
Dokumen MySQL yang versi yang Anda gunakan akan membantu. Biasanya digambarkan sebagai a Options Fileatau MySQL Config File.
Dokumen memiliki lokasi file-file ini dalam dokumentasi, Serta VITALinformasi lain seperti lokasi & contoh-contoh kecil seperti apa file konfigurasi tersebut.
Pada platform Unix, MySQL mengabaikan file konfigurasi yang dapat ditulis oleh dunia.
Ini disengaja sebagai langkah pengamanan.
Dengan kata lain, jika Anda memiliki izin yang salah ditetapkan pada file konfigurasi Anda, TIDAK akan memuat.
Contoh izin pengaturan awal dari salah satu file konfigurasi:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
Dimungkinkan untuk menggunakan
!includearahan dalam file opsi untuk memasukkan file opsi lain dan!includediruntuk mencari direktori tertentu untuk file opsi ........ MySQL tidak memberikan jaminan tentang urutan file opsi dalam direktori akan dibaca ...
Setiap file dapat ditemukan dan termasuk menggunakan direktif! Includedir pada sistem operasi Unix harus memiliki nama file yang berakhir dengan
.cnf. Di Windows, arahan ini memeriksa file dengan ekstensi.iniatau.cnf.
Contoh cara menemukan lokasi file konfigurasi atau log Anda dll.:
Ini tidak akan memperlihatkan kepada Anda file konfigurasi tetapi akan membantu Anda menemukan file / folder instalasi Anda.
MySQL Versi 5.7 & 8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Versi 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
Kredit Perintah Di Atas Kepada: Erwin Mayer dari 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
ATAU
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
Jika Anda memerlukan Sampel Referensi terperinci my.cnf:
Tidak ada afiliasi / asosiasi dengan 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)
Saya memeriksa di macOS Sierra, homebrew diinstal MySql 5.7.12
File dukungan terletak di
/usr/local/opt/mysql/support-files
Cukup salin my-default.cnfsebagai /etc/my.cnfatau /etc/mysql/my.cnfdan konfigurasi akan diambil saat restart.
macOS High Sierra versi 10.13.6
mysql Ver 14.14 Distrib 5.7.22, untuk osx10.13 (x86_64) menggunakan EditLine wrapper Copyright (c) 2000, 2018, Oracle dan / atau afiliasinya. Seluruh hak cipta
Opsi default dibaca dari file berikut dalam urutan yang diberikan:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
/private/etc/my.cnf untuk Catalina
Saya menggunakan versi mysql 5.7.17 di macOS High Sierra versi 10.13.3 dan saya telah menemukan file konfigurasi mysql di sini.
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnfmana ia akan diambil, sesuai: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.
Untuk Mac, yang berhasil bagi saya adalah membuat file .my.cnf di path ~ saya. Semoga ini membantu.
Salin /usr/local/opt/mysql/support-files/my-default.cnf sebagai /etc/my.cnf atau /etc/mysql/my.cnf lalu restart mysql.
Dalam kasus saya, file tersebut tidak ada. Di MySQL Workbench saya pergi ke OPTIONS FILE dan menemukan beberapa nilai default. Saya mengklik berlaku. Ia meminta izin. Itu kemudian membuat file my.cnf di / etc. Namun, sangat penting untuk diingat bahwa pertama kali Anda mengklik "berlaku", Anda tidak membuat perubahan apa pun pada konfigurasi default. Setelah file dibuat, Anda dapat membuat perubahan yang akan diterapkan ketika Anda mengklik "berlaku". Kalau tidak, Anda tidak akan ditampilkan tombol berlaku ketika Anda membuat perubahan.
/etc/mysql/my.cnftetapi MySQL Workbench tidak menyadarinya. Sebaliknya, ia mengeluh bahwa file konfigurasi dengan jalur kosong tidak dapat ditemukan dan kemudian menawarkan untuk membuat file baru.
Setelah versi 5.7.18 dari MySQL, itu tidak menyediakan file konfigurasi default di direktori file dukungan. Jadi Anda dapat membuat file my.cnf secara manual di lokasi tempat MySQL akan membaca, seperti /etc/mysql/my.cnf, dan menambahkan konfigurasi yang ingin Anda tambahkan dalam file.
Opsi rDefault dibaca dari file-file berikut ini dalam urutan yang diberikan: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf
Saya menjalankan MacOS Mojave (10.14.6) dan untuk membuat MySQL mengenali file konfigurasi saya, saya harus meletakkannya di /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf. Juga saya memiliki tautan simbolis yang menunjuk dari /usr/local/@mysql/etc/my.cnf.
Saya mencoba untuk mematikan sql_mode = only_full_group_by dan menetapkan opsi itu dalam file konfigurasi adalah satu-satunya cara saya bisa mendapatkan pengaturan untuk bertahan di seluruh sesi. Isi file konfigurasi adalah:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Saya menggunakan instalasi asli MySQL, bukan pengaturan Homebrew.
Untuk mysql 8.0.19, saya akhirnya menemukan my.cnf di sini: /usr/local/opt/mysql/.bottle/etc Saya menyalinnya ke / usr / local / opt / mysql / dan memodifikasinya. Lalu saya restart layanan mysql, berfungsi.