Menggunakan Option File MySQL


Lanjutan dari tulisan sebelumnya.

Kebanyakan program MySQL dapat membaca startup option dari option file (juga kadang-kadang disebut file konfigurasi). Option file menyediakan cara yang mudah untuk menentukan opsi yang biasa digunakan sehingga mereka tidak perlu dimasukkan pada command line setiap kali anda menjalankan program. Untuk server MySQL, MySQL menyediakan sejumlah option file yang telah dikonfigurasikan.

Pada Unix, Linux dan Mac OS X, program MySQL membaca opsi startup dari file-file berikut, dalam urutan tertentu (item teratas digunakan pertama).

Nama File Tujuan
/etc/my.cnf Global options
/etc/mysql/my.cnf Global options
SYSCONFDIR/my.cnf Global options
$MYSQL_HOME/my.cnf Server-specific options
defaults-extra-file File yang ditentukan dengan --defaults-extra-file = path, jika ada
~/.my.cnf User-specific options

~ Merupakan direktori home pengguna saat ini (nilai $ HOME).

SYSCONFDIR merupakan direktori yang ditentukan dengan opsi SYSCONFDIR untuk CMake ketika MySQL dibangun. Secara default, ini adalah direktori etc terletak di bawah direktori instalasi compiled-in.

MYSQL_HOME adalah variabel lingkungan yang mengandung path ke direktori dimana file server khusus my.cnf berada. Jika MYSQL_HOME tidak diatur dan anda mulai server menggunakan program mysqld_safe, mysqld_safe mencoba untuk mengatur MYSQL_HOME sebagai berikut:

  • Membiarkan BASEDIR dan DATADIR mewakili nama-nama path dari direktori dasar MySQL dan direktori data, berturut-turut.
  • Jika ada file my.cnf di DATADIR tapi tidak di BASEDIR, mysqld_safe set MYSQL_HOME ke DATADIR.
  • Jika tidak, jika MYSQL_HOME tidak diatur dan tidak ada file my.cnf di DATADIR, mysqld_safe set MYSQL_HOME ke BASEDIR.

Dalam MySQL 5.5, penggunaan DATADIR sebagai lokasi untuk my.cnf sudah ditinggalkan.

Biasanya, DATADIR adalah /usr/local/mysql/data untuk instalasi biner atau /usr/local/var untuk source installation. Perhatikan bahwa ini adalah lokasi direktori data yang ditentukan pada saat konfigurasi, bukan yang ditentukan dengan opsi --datadir ketika mysqld dimulai. Penggunaan --datadir saat runtime tidak berpengaruh di mana server akan mencari option file, karena terlihat bagi mereka sebelum memproses setiap opsi.

MySQL mencari file opsi dalam urutan hanya dijelaskan dan membaca apapun yang ada. Jika file opsi yang ingin anda gunakan tidak ada, buatlah dengan editor teks biasa.

Jika beberapa contoh dari opsi yang diberikan ditemukan, instance terakhir diutamakan. Ada satu pengecualian: Untuk mysqld, instance pertama dari opsi --user digunakan sebagai antisipasi keamanan, untuk mencegah pengguna ditetapkan dalam file pilihan dari menjadi ditimpa pada baris perintah.

Setiap opsi panjang yang dapat diberikan pada command line ketika menjalankan program MySQL dapat diberikan dalam option file juga. Untuk mendapatkan daftar pilihan yang tersedia untuk program, menjalankannya dengan opsi --help.

Sintaks untuk menentukan opsi dalam sebuah option file mirip dengan sintaks command-line. Namun, dalam sebuah option file, anda menghilangkan dua strip diawal dari nama pilihan dan anda menentukan hanya satu option per baris. Misalnya, --quick dan --host = localhost pada command line harus ditetapkan sebagai quick and host=localhost pada baris yang berbeda dalam file opsi. Untuk menentukan sebuah opsi dari bentuk --loose-opt_name dalam option file, nyatakan sebagai loose-opt_name.

Baris kosong dalam option file diabaikan. Baris tidak kosong dapat mengambil salah satu bentuk berikut:

  • #comment, ;comment

Baris komentar dimulai dengan “#” atau “;”. Sebuah “#” komentar dapat mulai di tengah-tengah garis juga.

  • [group]

group adalah nama program atau kelompok dimana anda ingin mengatur opsi.

  • opt_name

Ini sama dengan --opt_name pada command line.

  • opt_name=value

Ini sama dengan --opt_name=value pada command line. Dalam file opsi, anda dapat memiliki spasi di sekitar karakter “=”, sesuatu yang tidak benar pada command line. Anda secara opsional dapat melampirkan nilai dalam tanda kutip tunggal atau tanda kutip ganda, yang berguna jika nilai berisi “#” karakter komentar.

Anda dapat menggunakan escape sequence “\b”, “\t”, “\n”, “\r”, “\\”, dan “\s” dalam nilai option untuk mewakili backspace, tab, newline, carriage return , backslash, dan spasi karakter. Aturan escaping dalam option file adalah:

  • Jika backslash diikuti oleh karakter escape sequence valid, sequence dikonversi ke karakter yang diwakili oleh sequence. Misalnya, “\s” dikonversi menjadi spasi.
  • Jika backslash tidak diikuti oleh karakter escape sequence valid, tetap tidak berubah. Misalnya, “\S” dipertahankan seperti ini.

Aturan escaping untuk nilai option file secara khusus relevan untuk nama path Windows, yang menggunakan “\” sebagai pemisah nama path. Sebuah pemisah dalam nama path Windows harus ditulis sebagai “\\” jika diikuti oleh sebuah karakter escape sequence. Hal ini dapat ditulis sebagai “\\” atau “\” jika tidak. Atau, “/” dapat digunakan dalam nama path Windows dan akan diperlakukan sebagai “\”. Misalkan anda ingin menentukan direktori dasar C:\Program Files\MySQL\MySQL Server 5.5 dalam option file. Hal ini dapat dilakukan dengan beberapa cara. Contoh:

basedir=”C:\Program Files\MySQL\MySQL Server 5.5″
basedir=”C:\\Program Files\\MySQL\\MySQL Server 5.5″
basedir=”C:/Program Files/MySQL/MySQL Server 5.5″
basedir=C:\\Program\sFiles\\MySQL\\MySQL\sServer\s5.5

Jika nama group opsi sama dengan nama program, opsi dalam gruop berlaku khusus untuk program tersebut. Sebagai contoh, group [mysqld] dan [mysql] berlaku untuk server mysqld dan program klien mysql, berturut-turut.

Option group [client] dibaca oleh semua program client (tapi bukan oleh mysqld). Hal ini memungkinkan anda untuk menentukan pilihan yang berlaku untuk semua klien. Misalnya, [client] adalah group cocok digunakan untuk menentukan password yang anda gunakan untuk terhubung ke server. (Tapi pastikan bahwa option file dibaca dan ditulis hanya oleh diri sendiri, sehingga orang lain tidak bisa mengetahui password anda.) Pastikan untuk tidak menempatkan opsi dalam group [client] kecuali dikenal oleh semua program klien yang anda gunakan. Program yang tidak mengerti option keluar setelah menampilkan pesan error jika anda mencoba untuk menjalankannya.

Berikut adalah tipikal option file global:

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M

[mysqldump]
quick

Option file sebelumnya menggunakan sintak var_name=nilai untuk baris yang mengatur key_buffer_size dan variabel max_allowed_packet.

Berikut adalah tipikal option file pengguna:

[client]
# The following password will be sent to all standard MySQL clients
password=”my_password”

[mysql]
no-auto-rehash
connect_timeout=2

[mysqlhotcopy]
interactive-timeout

Jika anda ingin membuat option group yang harus dibaca oleh server mysqld dari serangkaian rilis MySQL tertentu saja, anda dapat melakukan ini dengan menggunakan group-group dengan nama-nama [mysqld-5.1], [mysqld-5.5], dan sebagainya. Group berikut menunjukkan bahwa opsi --new harus digunakan hanya oleh server MySQL dengan nomor versi 5.5.x:

[mysqld-5.5]
new

Hal ini dimungkinkan untuk menggunakan !include directives pada option file untuk memasukkan option file lain dan !includedir untuk mencari direktori khusus untuk option file. Misalnya, untuk include(menyertakan) file /home/mydir/myopt.cnf menggunakan direktif berikut:

!include /home/mydir/myopt.cnf

Untuk mencari direktori /home/mydir dan membaca option file yang ada di sana, gunakan direktif ini:

!includedir /home/mydir

Tidak ada jaminan tentang urutan di mana option file dalam direktori akan dibaca.

catatan: Saat ini, setiap file yang akan ditemukan dan dimasukkan menggunakan direktif !includedir pada sistem operasi Unix harus memiliki nama file yang berakhir dengan .cnf , Pada Windows, direktif ini memeriksa file dengan ekstensi .ini atau .cnf.

Menulis isi dari included option file seperti file opsi lain. Artinya, hal itu harus berisi group dari opsi, masing-masing didahului oleh baris [group] yang menunjukkan Program dimana opsi diterapkan.

Selama file yang disertakan sedang diproses, hanya pilihan tersebut pada group yangdicari program saat ini untuk digunakan. Group-group lain diabaikan. Misalkan file my.cnf berisi baris ini:

!include /home/mydir/myopt.cnf

Dan misalkan /home/mydir/myopt.cnf terlihat seperti ini:

[mysqladmin]
force
[mysqld]
key_buffer_size=16M

Jika my.cnf diproses oleh mysqld, hanya group [mysqld] dalam /home/mydir/myopt.cnf yang digunakan. Jika file yang diproses oleh mysqladmin, hanya group [mysqladmin] yang digunakan. Jika file diproses oleh program lain, tidak ada opsi di /home/mydir/myopt.cnf yang digunakan.

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: