MySQL : Binary Logs Management

Prakata Binary Logs

MySQL sebagai database server, tidak lepas dari risiko-risiko masalah data. Risiko tersebut antara lain : kehilangan data, putus koneksi data, dan sejenisnya. Oleh karena itu MySQL memiliki fitur manajemen risiko data, salah satunya adalah dengan adanya Binary Logs. Binary Logs didesain untuk menyimpan seluruh data transaksional MySQL, baik sifatnya view (SELECT), hingga DELETE. Dalam operasionalnya, binary logs akan disimpan dalam sebuah file yang defaultnya berekstensi .bin. Lokasinya ada di datadir mysql. (Jika di linux defaultnya di /var/lib/mysql).

[bimo@wedhus ~]$ ls /var/lib/mysql/ -alh
total 6.8G
drwxr-xr-x 16 mysql mysql 4.0K Mar 1 06:45 .
drwxr-xr-x. 19 root root 4.0K Mar 1 04:02 ..
-rw-rw---- 1 mysql mysql 746M Mar 1 10:16 ibdata1
-rw-rw---- 1 mysql mysql 5.0M Mar 1 10:16 ib_logfile0
-rw-rw---- 1 mysql mysql 5.0M Mar 1 10:16 ib_logfile1
drwx------ 2 mysql mysql 4.0K Aug 16 2017 mysql
-rw-rw---- 1 mysql mysql 201M Feb 22 06:45 mysql-bin.001047
-rw-rw---- 1 mysql mysql 202M Feb 22 12:30 mysql-bin.001048
-rw-rw---- 1 mysql mysql 202M Feb 22 18:05 mysql-bin.001049
-rw-rw---- 1 mysql mysql 201M Feb 22 23:55 mysql-bin.001050
-rw-rw---- 1 mysql mysql 35M Feb 23 01:00 mysql-bin.001051
-rw-rw---- 1 mysql mysql 201M Feb 23 06:45 mysql-bin.001052
-rw-rw---- 1 mysql mysql 201M Feb 23 12:35 mysql-bin.001053
-rw-rw---- 1 mysql mysql 202M Feb 23 18:25 mysql-bin.001054
-rw-rw---- 1 mysql mysql 201M Feb 24 00:15 mysql-bin.001055
-rw-rw---- 1 mysql mysql 23M Feb 24 01:00 mysql-bin.001056
-rw-rw---- 1 mysql mysql 201M Feb 24 06:45 mysql-bin.001057
-rw-rw---- 1 mysql mysql 201M Feb 24 12:35 mysql-bin.001058
-rw-rw---- 1 mysql mysql 202M Feb 24 18:25 mysql-bin.001059

 
Continue reading “MySQL : Binary Logs Management”

Mainan For di bash Linux

Terimakasih yang mau menunggu lama artikel singkat ini, maaf requestnya baru kejawab :D. Antri. Seorang rekan bertanya : “Bagaimana bisa otomatis membuat direktori yang sama dengan isi tabel user di sebuah tabel user mysql? Syaratnya perintahnya singkat”. Ilustrasinya adalah sebagai berikut. Terdapat sebuah tabel user pada database pegawai, dengan isi sebagai berikut:

Id username
1 bimo
2 wahyu
3 sukar

Dari sejumlah nama itu akan dibuat sebuah direktori yang berisi subdirektori yang memiliki nama seperti pada tabel tersebut.
Mula-mula kita perlu tahu perintah bash shell mysql untuk menampilkan tabel. Kita tahu bahwa syntax mysql untuk menampilkan isi tabel user pada database pegawai adalah
Continue reading “Mainan For di bash Linux”

[Trik] Query SQL Apa Yang Dapat Dikenai Fetch PHP

Ada satu pertanyaan mendasar yang ditanyakan melalui email, yang mungkin dapat langsung saya balas sekarang, melalui posting. Sayangnya penanya berharap tidak dicantumkan nama di sini, tapi tidak masalah, karena ini barangkali akan penting bagi siapapun.

Jawaban mudahnya: Fetching Result, digunakan untuk perintah SQL yang menghasilkan keluaran data, bukan sekedar mengubah data. Contoh sintaks fetching result dalam PHP adalah

  1. mysql_fetch_row (numerik)
  2. mysql_fetch_assoc (assosiatif)
  3. mysql_fetch_array (numerik assosiatif)

Sedangkan sintaks-sintaks SQL yang dapat dikenai fetching result antara lain:
Continue reading “[Trik] Query SQL Apa Yang Dapat Dikenai Fetch PHP”

Tutorial Membuat Aplikasi Webchat dengan PHP, MySQL, JQuery

Webchat adalah sebuah media obrol interaktif memalui web. Contoh webchat sering kita lihat di meebo atau fasilitas chat Facebook. Kita pun bisa membuat. Secara konsep sederhana, chat terdiri dari sebuah halaman POST chat, yang dikirimkan ke server, dan ditampilkan melalui halaman web. Secara standard, web tidak akan bisa menerima POST chat dan menampilkannya tanpa merefresh. Maka dengan fasilitas Javascript, kita bisa merefreshkan beberapa bagian elemen web tersebut, tanpa harus merefresh halaman secara keseluruhan. Proses merefresh elemen(div) tersebut jika kurang bijak juga akan banyak memakan resource browser dan menghabiskan memori komputer.

webchat

Disini kita belajar memahami sebuah konsep web dengan menggunakan PHP, MySQL dan JQuery. JQuery sendiri adalah sebuah library Javascript yang telah disusun untuk keperluan penyederhanaan dan optimalisasi fungsi-fungsi javascript. JQuery ini juga cukup tangguh untuk pengganti ajax terutama untuk keperluan hubungan Client Server. Marilah kita mencoba merancang sebuah skenario pembuatan sistem chat berbasis web.

Di sini saya merancang menggunakan tiga (3) file script server utama yaitu :

  • index.php
  • login.php
  • logout.php

Script Server tersebut dikunci tampilan oleh file: styles.css. Sedangkan script sisi-client (diletakkan di direktori js) yang digunakan adalah:

  • library jquery
  • chat.js

Script pendukung di sisi server (diletakkan di direktori scripts) akan dipisahkan sesuai dengan tugasnya antara lain:

  • database.php (penghubung dengan database)
  • datetime.php (pengambil value waktu terakhir chat)
  • postchat.php (pengirim kalimat chat)
  • getchat.php (pengambil kalimat chat secara real-time)
  • chatlist.php (pengambil chat yang sudah ada sebelumnya)
  • chatuserlist.php (pengambil data user yang aktif)

Secara rancangan sistem ini akan berjalan dengan kendali penuh dari script chat.js.
Continue reading “Tutorial Membuat Aplikasi Webchat dengan PHP, MySQL, JQuery”

[Tips] Membuat Multi Subdomain dan Memetakan dalam Database

Kita tentu sering menggunakan fasilitas blog dengan support subdomain, seperti wordpress.com, atau blogger.com dengan layanan blogspot.com dan lain sejenisnya. Ketika mendaftarkan sebuah blog, maka kita akan diberikan sebuah blog dengan subdomain seperti yang kita daftarkan, seperti contoh: http://bimosaurus.wordpress.com. Sedangkan kita tahu bahwa biasanya proses pembuatan subdomain atau domain saja memerlukan waktu propagasi yang cukup lama, namun dalam pembuatan blog, bisa langsung. Kok bisa?

 

DNS

Untuk masalah DNS kuncinya adalah pada DNS pointernya. Selama DNS Server kita mendukung penggunaan wilcard DNS, maka tidak akan masalah. Setiap subdomain akan langsung diarahkan ke web kita tersebut. Wilcard DNS akan ditandai dengan tanda *. Untuk anda pengguna linux console dapat melakukan pointing wilcard seperti demikian

  IN   A   IP_ADDRESS
* IN   A   IP_ADDRESS

dns

Disana artinya bahwa untuk seluruh subdomain dari domain anuanucoba.com akan diarahkan ke IP Address 111.111.222.222. Artinya segala akses semua subdomain akan diarahkan pada IP Address tersebut. Bisa juga IP tersebut adalah komputer yang digunakan untuk DNS itu sendiri. Selanjutnya, setelah data tersebut terarah ke IP Address itu, segala request web akan dilayani oleh Webserver (Apache, LightHTTPD, HTTPD dsb). Setelah membentuk wilcard DNS, proses propagasi hanya untuk propagasi wilcardnya. Sehingga setelah proses propagasi (penyebaran domain ke server server DNS) itu selesai, seluruh subdomain akan dianggap sama dengan wilcard DNS. Untuk yang biasa dengan setting WordPressMU tentu telah terbiasa cara ini.

 
Continue reading “[Tips] Membuat Multi Subdomain dan Memetakan dalam Database”

Berkreasi dengan Peta HTML dan tag Map Area [Bagian 2]

MENGAMBIL KOORDINAT SEBUAH TITIK DARI SEBUAH GAMBAR

Jika pada Posting lalu https://blogit.bimosaurus.com/2013/03/16/berkreasi-dengan-peta-html-dan-tag-map-area-bagian-1/ telah dipaparkan bagaimana cara menyajikan sebuah gabungan antara gambar peta dan data koordinat dalam source HTML, maka di bagian ini akan dijelaskan bagaimana cara mengambil koordinat sebuah gambar. Untuk mengambil value koordinat yang diperlukan oleh MAP AREA, kita akan menggunakan bantuan Javascript untuk menentukannya.

Format koordinat MAP AREA untuk kategori POLYGON adalah sebagai berikut :

x1,y1,x2,y2,x3,y3,x4,y4………xn,yn
Continue reading “Berkreasi dengan Peta HTML dan tag Map Area [Bagian 2]”

[Tips] Mengatur Grant User MySQL

Jika kita adalah seorang system administrator, atau network engineer, atau software engineer, maka kita akan sering berhadapan dengan proses administrasi installasi database server, misal : Installasi MySQL. Proses installasi MySQL memiliki beberapa tahap. Setelah melakukan installasi software MySQL Server, akan dilanjutkan installasi database mysql itu sendiri. Selanjutnya pekerjaan penting seorang system administrator adalah mengatur Grant atau hak akses masing-masing user.

Pengaturan hak akses itu sendiri dilakukan di dalam prompt MySQL dengan mode “root”. Pengaturan hak akses dapat dilakukan dengan melakukan perintah utama mysql : GRANT. Untuk user root, akan selalu memiliki hak akses terhadap apapun, termasuk membuat GRANT. Contoh membuat grant adalah:

 

GRANT ALL PRIVILEGE ON `namadatabase`.* to 'namauser'@'host' identified by 'password';

Artinya adalah bahwa dibuat grant baru yang memberikan segala hak kepada ‘namauser’ yang login di ‘host’ dengan password ‘password’. Grant yang diberikan termasuk MEMBUAT, dan MENGHAPUS. Untuk memberikan grant sebagian dapat diberikan perintah seperti berikut :

GRANT SELECT on `namadatabase`.`satu` to namauser@localhost identified by 'pass1';

Yang artinya adalah user ‘namauser’ yang hanya boleh login dari localhost dengan password = pass1 hanya boleh melakukan SELECT terhadap tabel ‘satu’ dalam database ‘namadatabase’

Kadang terdapat kebutuhan agar seorang user dapat membuat database dan menghapus database tertentu. Maka kita dapat membuat grant seperti demikian :

use mysql;
GRANT ALL PRIVILEGES on `bimo_%`.* to bimo@'%' identified by 'bimpass';

Artinya adalah saya membuat grant untuk user ‘bimo’ agar dapat membuat segala database selama diawali dengan prefix “bimo_” dan dilakukan dengan login password ‘bimpass’

Jangan lupa seteah melakukan granting, lakukanlah perintah :

flush privileges;

agar aturan granting yang baru segera dapat diberlakukan..

Semoga berguna