Di mana file cnf saya di mysql

File konfigurasi "my. cnf" dari MySQL dapat ditemukan di sini. "/Applications/MAMP/tmp/mysql/my. cnf". Tolong dicatat. Mengedit file ini TIDAK berfungsi karena akan ditimpa setiap kali MySQL dimulai ulang oleh MAMP PRO dengan "my. cnf" yang dibuat dari template MySQL. Anda harus mengedit template ini [menu File > Open Template > MySQL [my. cnf] > 5. 7. 30] untuk memodifikasi konfigurasi MySQL. Secara manual menambahkan "my. cnf" file ke lokasi lain tidak disarankan. Setiap aspek konfigurasi dapat ditangani dengan template MySQL

File konfigurasi utama MySQL adalah my. cnf dan terletak di lokasi yang berbeda tergantung pada sistem operasi, distribusi, dan versi. Posting ini menunjukkan cara mencari tahu di mana MySQL akan mencari file konfigurasi

Gunakan mysql + grep untuk mencari tahu di mana MySQL akan terlihat

Menjalankan perintah ini dari baris perintah / terminal akan menunjukkan di mana MySQL akan mencari my. cnf pada sistem Linux/BSD/OS X

mysql --help | grep "Default options" -A 1

Ini akan menampilkan sesuatu seperti ini

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
_

Anda sekarang dapat memeriksa file menggunakan output di atas di /etc/my. cnf, lalu /etc/mysql/my. cnf dan sebagainya

Jika tidak ada satu pun di salah satu lokasi tersebut, Anda dapat membuatnya dan tahu bahwa MySQL akan menggunakannya

Seringkali sebuah distro akan memiliki default yang dikompilasi ke dalam Server dan Klien MySQL, dan bahkan tidak akan memiliki my. cnf, jadi jika Anda ingin memiliki pengaturan yang melekat saat MySQL dimulai ulang, Anda harus membuat file dan meletakkannya di sana

Sejarah halaman

Halaman ini awalnya diposting pada 8 November 2010 dan memiliki setidaknya satu pembaruan antara saat itu dan 11 Agustus 2011. Ini awalnya menunjukkan lokasi my. cnf pada distribusi Linux populer

Itu ditulis ulang pada 10 September 2014 untuk menunjukkan cara mengetahui di mana MySQL mencari my. cnf sebagai gantinya, karena file tersebut sering tidak ada di distro yang lebih baru kecuali Anda, administrator, membuatnya terlebih dahulu

Sistem basis data sering membutuhkan penyetelan untuk kinerja terbaik. Lukas Vileikis menjelaskan cara mengoptimalkan my. cnf untuk kinerja MySQL

Sejak awal rekayasa perangkat lunak, pengembang beralih ke database untuk menyimpan data mereka – seiring berjalannya waktu, beberapa pengembang dapat memilih jalur mereka dengan lebih jelas. beberapa mulai menggunakan PostgreSQL, beberapa memilih MySQL atau variannya [MariaDB atau Percona Server], beberapa menggunakan solusi berbasis NoSQL seperti MongoDB

Pengembang yang memilih untuk menggunakan MySQL, bagaimanapun, dengan cepat menyadari bahwa sistem manajemen basis data tidak begitu kuat secara default dan mulai mencari cara untuk meningkatkan kinerja, keamanan, dan ketersediaan tinggi di luar kemampuan standarnya; . cnf

Apa milikku. cnf dan apa fungsinya?

Untuk menjawab pertanyaan bagaimana cara mengoptimalkan my. cnf untuk kinerja, saya akan mulai dengan dasar-dasarnya. saya. File cnf adalah file konfigurasi utama yang tersedia dalam MySQL dan semua rasanya. File tersebut berisi berbagai parameter yang dapat dikonfigurasi sesuai kebutuhan. Parameter ini kemudian akan dimuat ke MySQL saat sistem manajemen basis data dijalankan. Ada beberapa lokasi di mana my. file cnf dapat ditemukan [lokasi berbeda tergantung pada jenis Linux yang digunakan]. MySQL biasanya memuat pengaturan dari file setelah menemukannya di salah satu lokasi berikut

  • /etc/my. cnf
  • /etc/mysql/my. cnf
  • /var/lib/mysql/my. cnf
  • ~/saya. cnf

Path ke direktori yang berisi my. cnf juga dapat didefinisikan dengan mengubah nilai variabel MYSQL_HOME. Jika menjalankan MySQL di Windows, direktori tempat file my. ini [perhatikan perubahan ekstensi – my. cnf disebut saya. ini di Windows] file akan ditempatkan akan sesuai dengan direktori tempat direktori data MySQL berada. Di Linux, mungkin /var/lib/mysql/my. cnf atau di salah satu lokasi yang ditentukan di atas. Di Windows, lokasi akan bergantung pada versi MySQL yang Anda jalankan – untuk MySQL 5. 7 pada Windows 10, misalnya, lokasinya bisa /bin/mysql/mysql*. *. ** di mana *. *. ** adalah versi server MySQL atau bahkan di direktori ProgramData yang disembunyikan secara default. Dalam hal ini, cari folder MySQL di dalamnya

Setelah membuka my. cnf, Anda akan melihat sesuatu yang mirip dengan yang berikut ini

 

Gambar 1 – beberapa pengaturan yang tersedia dalam my. cnf

Seperti yang Anda lihat, file menyimpan banyak sekali parameter – beberapa di antaranya lebih penting untuk kinerja, yang lain lebih sedikit. Versi Windows saya. cnf [saya. ini] juga dikenal luas karena fakta bahwa file tersebut menyertakan banyak komentar [lihat gambar di atas]. Versi Windows menjelaskan hampir semuanya, sementara Linux tidak begitu murah hati; . Terlepas dari itu, satu pernyataan benar. untuk mengoptimalkan kinerja MySQL, optimalkan pengaturan di dalam my. cnf

Beberapa dari Anda mungkin masih ingat dengan artikel sebelumnya tentang nuansa indeks di MySQL. Artikel itu menyebutkan bahwa salah satu mesin penyimpanan utama yang tersedia dalam MySQL, InnoDB. Ada beberapa parameter di my. cnf yang sangat penting untuk kinerja InnoDB dan yang perlu dioptimalkan untuk mendapatkan yang terbaik dari MySQL, dan pernyataan itu berlaku untuk semua mesin penyimpanan yang tersedia dalam sistem manajemen basis data. Insinyur yang bekerja dengan MySQL biasanya memilih mesin penyimpanan yang ingin mereka gunakan sesuai dengan kebutuhan mereka, memodifikasi cnf. ini untuk mendapatkan yang terbaik dari mesin, dan restart MySQL. Setelah MySQL dimulai ulang, teknisi dapat menikmati kinerja, ketersediaan, dan, dalam beberapa kasus, manfaat keamanan yang lebih baik

Bagaimana mengoptimalkan saya. cnf untuk kinerja?

Saat melihat segala sesuatu dari perspektif yang lebih luas, optimalkan my. cnf untuk kinerja tidak terlalu sulit. Semuanya bermuara pada dua hal

  1. Putuskan jenis mesin penyimpanan apa yang akan digunakan dalam MySQL
  2. Optimalkan parameter yang relevan dengan mesin penyimpanan tersebut dan mulai ulang MySQL

Itu saja, sungguh – tidak ada yang rumit

Mulailah dengan memilih mesin penyimpanan dengan tabel ini untuk menyederhanakan pilihan Anda

Mesin Penyimpanan

Kapan Menggunakan?

InnoDB / Percona XtraDB

InnoDB harus dipilih ketika database mendukung produk perangkat lunak kasus penggunaan umum atau jika Anda tidak yakin apa yang harus digunakan untuk mendapatkan yang terbaik dari MySQL

MyISAM

Mesin penyimpanan usang, sebaiknya hanya digunakan jika Anda membutuhkan jumlah baris yang tepat di tabel tertentu. Jika digunakan sebagai mesin penyimpanan utama, MyISAM dapat menjadi penyebab crash dan kehilangan data

PENYIMPANAN

Mesin penyimpanan semacam itu menyimpan semua data dalam memori

CSV

Mesin penyimpanan semacam itu menyimpan data sebagai file CSV

MERGE [sebelumnya MRG_MyISAM]

Kumpulan dua atau lebih tabel berbasis MyISAM identik yang seharusnya digunakan sebagai satu tabel

ARSIP

Mesin penyimpanan seharusnya membiarkan kami mengarsipkan data

FEDERASI

Mesin penyimpanan memungkinkan kita mengakses data dari database tanpa menggunakan replikasi atau pengelompokan

LUBANG HITAM

Mesin penyimpanan harus digunakan untuk tujuan pengujian – semua data yang terkandung di dalamnya akan hilang dalam sekejap

CONTOH

Harus digunakan sebagai contoh bagaimana membangun mesin penyimpanan baru

Terlepas dari banyaknya mesin penyimpanan yang tersedia untuk digunakan, sebagian besar pengembang dan insinyur MySQL menggunakan InnoDB karena secara luas dianggap yang terbaik untuk sebagian besar kasus penggunaan. Sebelumnya, MyISAM juga merupakan opsi yang cukup andal, tetapi karena mesin penyimpanan menjadi usang karena masalah stabilitas dan hal-hal lain, sekarang secara efektif hanya cocok untuk satu tujuan – mengetahui jumlah baris yang tepat dalam sebuah tabel [InnoDB tidak menyediakan itu . ]

Mengoptimalkan InnoDB untuk kinerja

Mesin penyimpanan InnoDB memiliki opsi ini, antara lain, tersedia dalam my. cnf

Gambar 2 – Parameter InnoDB dalam my. cnf

Inilah yang dilakukan parameter, satu per satu

Parameter

Fungsi

innodb_data_file_path

Parameter ini menggambarkan lokasi file data [ibdata1] yang relevan dengan InnoDB – ibdata1 menampung semua data yang diperlukan agar InnoDB berfungsi dengan benar

innodb_buffer_pool_size_

Parameter ini menguraikan ukuran kumpulan buffer yang akan digunakan dalam InnoDB. Kumpulan buffer digunakan untuk meng-cache data dan indeks tabel di dalam InnoDB

innodb_log_file_size

Mengatur ukuran file log InnoDB. Semakin besar nilai ini, semakin sedikit waktu pemulihan yang diperlukan jika terjadi kerusakan

innodb_log_buffer_size_

Digunakan untuk menulis ke file log

innodb_flush_log_at_trx_commit

Cara membersihkan log saat melakukan transaksi. MySQL menawarkan tiga nilai - default [1] membuat InnoDB ACID sesuai, sementara 0 atau 2 menukar ACID untuk kecepatan tulis yang lebih cepat

innodb_lock_wait_timeout_

Lamanya waktu dalam detik sebuah transaksi menunggu sebuah baris kunci

innodb_flush_method_

Menentukan metode yang digunakan untuk menghapus data. Metode flush sangat penting karena dapat mempengaruhi throughput I/O. Saya tidak akan membahas semua pilihan Anda di sini, tetapi perlu diingat bahwa MySQL menawarkan beberapa metode flush untuk Anda pilih termasuk, tetapi tidak terbatas pada

  • normal_ yang merupakan metode pembilasan default pada Windows. Pilihan lain untuk Windows adalah unbuffered
  • innodb_data_file_path0 yang merupakan metode pembilasan default di Linux – MySQL akan menggunakan fungsi fsync[] untuk menyiram data
  • innodb_data_file_path1 yang menginstruksikan sistem operasi untuk melewati cache halaman dan melakukan operasi I/O terhadap disk di Linux
  • innodb_data_file_path2 bertukar kecepatan untuk konsistensi – opsi ini umumnya lebih cepat daripada innodb_data_file_path1, tetapi data mungkin tidak konsisten setelah crash di Linux

Dan inilah cara mengoptimalkan masing-masing untuk mendapatkan hasil maksimal dari MySQL saat menggunakan InnoDB

  • Setel innodb_data_file_path_ untuk diperpanjang secara otomatis dengan menentukan innodb_data_file_path5. Beberapa pengembang mungkin juga mendapat manfaat dari fakta bahwa jalur file data juga dapat memiliki ukuran maksimum dengan menentukan innodb_data_file_path6 setelah "innodb_data_file_path5" sehingga parameternya terlihat seperti ini [ukuran maksimum InnoDB, dalam hal ini, adalah 10GB. ]

    1

    innodb_data_file_path = ibdata1. 12jt . perpanjangan otomatis. maks. 10G

    Jika ukuran maksimum tercapai, MySQL akan mengembalikan kesalahan

    KESALAHAN 1114 [HY000]. Meja sudah penuh

  • Setel ukuran kumpulan buffer InnoDB menjadi 50 – 75% dari memori operasi yang tersedia di sistem Anda. Semakin besar parameter ini, semakin cepat operasi terkait InnoDB [sisipan, dll. ] akan selesai
  • Setel ukuran file log InnoDB menjadi sekitar seperempat [25%] dari ukuran kumpulan buffer InnoDB – semakin besar ukuran file log, semakin sedikit waktu pemulihan yang Anda perlukan saat memulihkan MySQL dari kerusakan
  • Dianjurkan untuk membiarkan ukuran buffer log InnoDB pada nilai default 8MB [8M. ]
  • Biarkan innodb_flush_log_at_trx_commit_ di 1 jika Anda ingin kepatuhan ACID [ACID akan memastikan bahwa data tetap utuh meskipun ada pemadaman listrik atau kegagalan lain yang dapat memengaruhi integritas data], tetapi alihkan ke 0 atau 2 jika Anda ingin menukar ACID dengan lebih . Yang pertama akan cocok untuk sebagian besar operasi terkait data, meskipun beberapa infrastruktur, terutama yang berhubungan dengan kumpulan data besar, mungkin mendapat manfaat dari pertukaran tersebut.
  • Mengubah nilai innodb_lock_wait_timeout akan mengubah cara InnoDB merespons kunci baris setelah jumlah detik yang ditentukan – nilai default untuk parameter ini adalah 50, artinya InnoDB akan mengeluarkan kesalahan jika kunci tidak dilepaskan setelah 50 detik, meskipun parameter ini dapat
  • Sebagian besar insinyur akan menyarankan untuk mengubah innodb_flush_method ke innodb_data_file_path1 agar MySQL dapat melakukan semua operasi I/O terhadap disk dan mem-bypass cache halaman - dengan cara itu operasi I/O harus jauh lebih cepat dari biasanya

Ini adalah sebagian besar parameter yang perlu Anda optimalkan saat menggunakan InnoDB. Sekarang, restart MySQL, dan pengaturan akan berlaku. Namun, jika Anda memilih untuk menggunakan MyISAM sebagai gantinya [mungkin Anda sedang mencoba beberapa fiturnya atau menggunakannya di server lama yang tidak terlalu penting], ada parameter lain yang harus Anda tinjau

Mengoptimalkan MyISAM untuk kinerja

Jika Anda menggunakan Windows, gulir ke bawah dari parameter InnoDB, dan Anda akan melihat empat parameter yang relevan dengan MyISAM. Namun, jika Anda pengguna Linux dan ingin menggunakan MyISAM untuk alasan apa pun, perlu diingat bahwa Anda mungkin perlu menambahkan parameter ini secara manual

Parameter

Apa Fungsinya?

innodb_buffer_pool_size_1

Setara dengan ukuran kumpulan buffer InnoDB – disarankan untuk menetapkan nilai ini menjadi sekitar 40% dari memori yang tersedia di server

innodb_buffer_pool_size_2

Menentukan ukuran buffer yang dialokasikan saat operasi pengurutan dilakukan. Menaikkan parameter ini dari nilai default mungkin membantu meningkatkan kinerja operasi ORDER BY dan GROUP BY – selain itu, parameter ini penting saat membuat indeks atau memperbaiki tabel

innodb_buffer_pool_size_3

Menentukan ukuran buffer yang dialokasikan untuk setiap utas yang melakukan pemindaian tabel penuh [saat database menemukan nilai dengan membaca tabel secara berurutan. ]

innodb_buffer_pool_size_4

Parameter ini digunakan untuk beberapa operasi penyortiran untuk membaca baris setelah penyortiran selesai. Parameter dapat digunakan oleh semua tabel, tidak hanya MyISAM – untuk informasi lebih lanjut

Parameter lain dalam my. cnf

Setelah Anda mengoptimalkan [atau keduanya] kinerja InnoDB dan MyISAM, Anda juga dapat melihat sedikit ke parameter lain yang tersedia untuk dikonfigurasi dalam. cnf

Parameter

Pentingnya

innodb_buffer_pool_size_5

Meninggalkan parameter ini di dalam my. cnf tanpa nilai apa pun [atau menyertakan parameter ini di dalam file] menonaktifkan mesin penyimpanan FEDERATED dalam MySQL

innodb_buffer_pool_size_6

Parameter ini menentukan direktori dari mana file dapat dimuat ke MySQL saat menggunakan perintah LOAD DATA INFILE – jika direktori yang salah ditentukan, MySQL akan merespons dengan kesalahan

innodb_buffer_pool_size_7

Parameter ini dapat digunakan untuk mengatur mode SQL yang akan digunakan saat MySQL berjalan. Misalnya, parameter "ANSI" mengubah perilaku MySQL untuk berperilaku seperti SQL standar, termasuk "ALLOW_INVALID_DATES" akan menonaktifkan pemeriksaan tanggal sementara tidak menentukan nilai akan mengatur mode SQL menjadi ketat. Lihat dokumentasi untuk penjelasan lebih lanjut

innodb_buffer_pool_size8 atauinnodb_buffer_pool_size9

Opsi "lewati-ssl" memungkinkan MySQL untuk menggunakan koneksi yang tidak terenkripsi. Opsi "ssl", di sisi lain, akan menentukan fakta bahwa MySQL akan mencoba terhubung melalui SSL dan gagal jika koneksi aman tidak dapat dibuat

innodb_log_file_size0

Menentukan lokasi direktori data MySQL. Dapat didefinisikan ulang – mendefinisikan ulang parameter ini dapat berguna untuk alasan keamanan, meskipun tidak jauh dari itu

innodb_log_file_size1

Menentukan lokasi file log kesalahan dalam MySQL. Lokasi file log kesalahan dapat diubah menggunakan parameter ini, meskipun hal itu dapat dianggap sebagai “keamanan melalui ketidakjelasan. ”

innodb_log_file_size2

Mendefinisikan mesin penyimpanan default yang digunakan oleh MySQL

innodb_log_file_size_3

Beberapa parameter yang lebih menarik berhubungan dengan pesan kesalahan. Yang pertama menentukan lokasi direktori yang berisi file bahasa yang akan digunakan dalam MySQL ketika terjadi kesalahan, sedangkan yang terakhir menentukan bahasa dari pesan kesalahan. Mendefinisikan ulang parameter ini mungkin sangat berguna untuk instalasi MySQL digunakan oleh mereka yang tidak bisa berbahasa Inggris atau karena alasan lain

Tabel yang diberikan seharusnya memberi Anda gambaran kasar tentang seberapa kuat saya. cnf sebenarnya. Tidak hanya dapat digunakan untuk meningkatkan kinerja berbagai mesin penyimpanan, termasuk InnoDB dan MyISAM, tetapi parameter yang terkandung di dalam file juga sangat berguna untuk menyelesaikan berbagai jenis operasi. Namun, satu hal yang tidak boleh dilupakan – setiap kali Anda mengubah nilai parameter apa pun yang terdapat di dalam my. cnf, Anda harus me-restart server untuk memastikan bahwa perubahan Anda telah diterapkan

Mengoptimalkan saya. cnf untuk kinerja MySQL

Saya harap artikel ini memberi Anda gambaran tentang betapa kuatnya binatang buas saya. cnf bisa digunakan dengan benar. Parameter dalam my. cnf sering digunakan untuk meningkatkan kinerja berbagai mesin penyimpanan serta kueri, mereka dapat digunakan untuk mengatur replikasi dan membuat MySQL mampu melakukan berbagai macam hal lainnya. Saya harap artikel ini telah membantu Anda mempelajari bagaimana Anda harus menggunakan parameter dalam my. cnf untuk menyesuaikan MySQL dan membuatnya tampil lebih baik dari sebelumnya. Pastikan untuk mempertimbangkan saran dalam artikel ini dan menguji air sebelum melakukan tindakan apa pun pada server produksi, dan sampai jumpa di yang berikutnya

Robert Sheldon 07 Oktober 2022

Robert Sheldon 07 Oktober 2022

Memperkenalkan pernyataan MySQL INSERT

3

  • MySQL

Pada artikel sebelumnya dalam seri ini, saya memperkenalkan Anda pada pernyataan SELECT, salah satu dari beberapa pernyataan SQL yang termasuk dalam kategori bahasa manipulasi data [DML], subset pernyataan yang digunakan untuk kueri dan memodifikasi data. Pernyataan DML lainnya adalah pernyataan INSERT, yang memungkinkan Anda menambahkan data ke tabel MySQL, keduanya … Baca lebih lanjut

3

  • MySQL

Robert Sheldon 05 Januari 2023

Robert Sheldon 05 Januari 2023

Memperkenalkan ekspresi tabel umum MySQL

2

  • MySQL

Seperti banyak sistem manajemen basis data relasional, MySQL menyediakan berbagai metode untuk menggabungkan data dalam pernyataan bahasa manipulasi data [DML]. Anda dapat menggabungkan beberapa tabel dalam satu kueri atau menambahkan subkueri yang menarik data dari tabel lain. Anda juga dapat mengakses tampilan dan tabel sementara dari dalam pernyataan, seringkali … Baca lebih lanjut

Di mana file CNF saya MySQL?

cnf terletak di /etc/mysql/my. cnf .

Bagaimana cara mengedit file CNF saya di MySQL?

Mengedit Mysql my. .
Masuk ke server Anda melalui SSH
Untuk mengedit pengaturan MySQL dengan nano ketik berikut ini. .
Temukan baris untuk diedit. .
Untuk meningkatkan max_connections menjadi 110 ubah menjadi berikut ini. .
Masukkan Ctrl + O ke "WriteOut" atau simpan pengaturan
Kemudian Ctrl + X untuk keluar
Restart MySQL dengan mengetik berikut ini

Di mana file CNF saya di MySQL Mac?

/etc/my. cnf. /etc/mysql/my. .
Membuka koneksi
Memilih 'File Opsi' di bawah 'INSTANCE' di menu
MySQL Workbench akan mencari my. cnf dan jika tidak dapat menemukannya, itu akan membuatnya untuk Anda

Di mana file CNF saya di xampp?

C. \xampp\mysql\bin\my. ini . cnf untuk mengatur opsi khusus pengguna.

Bài mới nhất

Chủ Đề