Rabu, 05 Oktober 2011

Locking Record MYSQL

I. Melock record Untuk menghindari tabrakan (crash) update/delete Oleh dua User atau lebih
pada waktu yg bersamaan :

Pada kasus berikut, misalkan user A akan melakukan update terhadap tabel "tmp.my_locking" dengan "filter tbl_id = 1".
Sementara pada waktu yg bersamaan, user B juga akan melakukan update atau delete terhadap data yg sama.
Agar tidak terjadi "crash"

User A:
-------

begin;
select * from tmp.my_locking where tbl_id =1 for update;
update tmp.my_locking set kode="update user oleh A" where tbl_id =1;
...
...
commit;


User B:
-------
update tmp.my_locking set kode="update user oleh B" where tbl_id =1;


Maka yg terjadi adalah, user B akan ter "LOCK" selama user A belum menjalankan "Commit".
Setelah user A commit, baru selanjutnya perintah query user B di eksekusi.




II. Melock record Untuk menghindari update/delete Oleh User lain
pada saat salah satu user sedang mengakses record :


Pada kasus berikut, misalkan user A melihat data tabel "tmp.my_locking", misalkan berupa repot .
Sementara pada waktu yg bersamaan, user B juga akan melakukan update atau delete terhadap salah satu data atau lebih
yg merupakan data yg sedang di lihat oleh user A.


User A:
-------

begin;
select * from tmp.my_locking lock in share mode;

...
...
commit;


User B:
-------
delete from tmp.my_locking where tbl_id =14;



Maka yg terjadi adalah, user B akan ter "LOCK" selama user A belum menjalankan "Commit".
Setelah user A commit, baru selanjutnya perintah query user B di eksekusi.

Jumat, 22 April 2011

Apache Ant

Problem :
  • Pada saat melakukan compile ant aplikasi web java, muncul = warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable build.
Solusi :
  • Pada Environment Variables, tambahkan variabel baru dengan nama "ANT_OPTS", nilainya : -Dbuild.sysclasspath=ignore, OK.

Apache Ant Warning

Jumat, 25 Februari 2011

Import & Export Data MySQL Text File

Berikut contoh eksport data hasil query kedalam file, dalam kasus ini asumsi ada sebuah tabel "mst_user" dengan beberapa field dan hasil dari query akan disimpan kedalam file "mst_user.txt" pada drive "D:\" :

SELECT * FROM master.mst_user INTO OUTFILE 'D:/
mst_user.txt'
FIELDS
TERMINATED BY '\$'
LINES
TERMINATED BY '\n';


sebaliknya untuk mengimport data dari file text ke MySQL adalah seperti berikut :

LOAD DATA LOCAL INFILE '
D:/mst_user.txt' INTO TABLE master.mst_user
FIELDS
TERMINATED BY '\$'
LINES
TERMINATED BY '\n';



Semoga bermanfaat,
salam sejahtera.

Rabu, 22 Desember 2010

Set Maximum Memory Paket Data MySQL

Pada saat kita melakukan restore di MySQL, terkadang kita menemukan error "max_allowed_packet...". Hal ini disebabkan oleh daya tampung paket data di memori MySQLterlalu kecil sehingga tidak mampu untuk menampung paket data yg direstore dimana paket data tsb di tampung sementara oleh memori. Biasanya hal ini terjadi pada restore data yg file nya besar. Default nilai dari max_allowed_packet=16 .

Berikut langkah-langkah untuk mengubah nilai "max_allowed_packet" :
  1. Melalui command prompt, login ke MySQL anda.
  2. Jalankan perintah berikut : "set global max_allowed_packet=32;".
  3. Restart service MySQL, Selesai.
Langkah tersebut di atas adalah memperbesar memori paket data MySQL dari 16M menjadi 32M.



Semoga bermanfaat, salam sejahtera.

Selasa, 21 Desember 2010

Konversi Excel File MySQL

Berikut Langkah-Langkahnya:

1. Buka file Excel.

2. Asumsi table "myimport" pada database "test" sudah ada di MySQL dengan dua buah field
("Nomor" as integer type and "Nama" as varchar type).

3. Buka file Excel, Save as ".csv" file, contoh format hasil:

1,SATU
2,DUA
3,TIGA

4. Jalankan query berikut pada query MySQL :


LOAD DATA LOCAL INFILE 'D:\\tmp\\myimport.csv'
INTO TABLE test.myimport
FIELDS TERMINATED BY ','
ENCLOSED BY ';'
LINES TERMINATED BY '\r\n' (Nomor, Nama);


5. Finish.


salam sejahtera, semoga bermanfaat.

Menambahkan Nomor Urut Pada Query MySQL

Berikut Sintax Untuk Menambahkan Nomor Urut Pada Query:

select @rownum:=@rownum+1 'No.', hoststring, filename,
filedate, restoredate, appver, fn_closing, kb_closing, userrestore
from company.logrestoredata, (select @rownum:=0) row;


untuk tabel dan field di tentukan berdasarkan kebutuhan.

Semoga bermanfaat, salam....