Tampilkan postingan dengan label mysql. Tampilkan semua postingan
Tampilkan postingan dengan label mysql. Tampilkan semua postingan

Selasa, 07 Agustus 2007

MySQL Crash & Recovery

Ada bencana yang tak terduga tadi malam. Entah karena sudah terlalu mengantuk dan tangan sudah mulai gemetar, bencana yang saya takutkan terjadi. Karena saya adalah shell mania dan lebih menyukai hal-hal yang rumit, maka saya lebih suka untuk melakukan administrasi database melalui shell dan bukan tool seperti yang sering orang lain sukai; maka kelangkaan bodoh terjadi saat saya lupa untuk melakukan proses delete table tanpa tambahan perintah WHERE.


DELETE FROM user;


WEw ... akhirnya semua informasi tentang user yang ada di database SISKUM yang saya kelola habis terhapus tanpa sisa. Kepala agak pusing dan mata yang sudah mengantuk menambah gejala kronis sakit hati karena pacar yang tak mau mengerti kegiatan komputer dari pagi sampai malam semakin menjadi!! Sayapun tertidur tanpa ada rasa bersalah sama sekali!

Thanks GOD karena tulisan diatas hanya merupakan sebuah disaster drama that could be happen into your real life ... Namun sebenarnya bukan hanya kesalahan yang dikarenakan human error, tapi juga kesalahan system OS dan berbagai kemungkinan yang terjadi. Karena itulah kemampuan untuk melakukan backup DB adalah kemampuan yang harus dimiliki oleh kita para pengembang.

DI MySQL kita diperkenalkan dengan beberapa materi tentang backup dan recovery DB menggunakan berbagai tool. Tapi saya tidak ingin bersusah menuliskan dan membahas hal tersebut sendiri karena sudah ada manual resmi yang diikutsertakan di instalasi. Selain itu untuk saya sendiri, ada 2 perintah yang paling saya sukai dari pertama saya mengetahui cara backup dan recovery MySQL.

Untuk Backup database.

MSShell> mysqldump -u root -prahasia SISKUM > hasil_dump_formatnya_SQL.sql

Sekarang coba check file hasil proses diatas dan perhatikan bahwa MySQL melakukannya dengan menuliskan langsung perintah SQL yang merupakan kumpulan perintah yang sama persis dengan perintah yang kita jalankan untuk membuat database yang kita miliki. Kalau pada tempat saya file tersebut dibuat di dalam folder bin pada tempat instalasi mysql.

Sedangkan untuk restore keseluruhan database SISKUM saya mempergunakan perintah seperti dibawah ini.

MSShell> mysql -u root -prahasia < hasil_dump_formatnya_SQL.sql

Namun apabila ada error seperti ini :

ERROR 1046 at line 11: No Database Selected

Berarti kita harus menambahkan proses pembuatan database secara manual di file kita tadi. Saya biasanya menambahkan ini pada file tersebut pada bagian paling atas.

CREATE DATABASE SISKUM;
USE SISKUM;

Perintah tersebut sama saja dengan membuat database SISKUM dan kemudian memilihnya agar baris perintah SQL dibawahnya dijalankan. Tapi yang harus diperhatikan, bahwa saya sudah yakin bahwa database SISKUM tidak ada, atau Anda akan mengalami error saat melakukannya lagi.

Lalu barulah kita mengulang perintah tadi yang seharusnya dijalankan tanpa ada pesan error.

MSShell> mysql -u root -prahasia < hasil_dump_formatnya_SQL.sql

Untuk melakukan testing, masuk saja ke mysql dan seharusnya database telah ada.

Thats all ....

Kamis, 02 Agustus 2007

First Night w. MySQL

Karena keperluan sebuah project Sistem Informasi yang menggunakan data yang terlalu banyak untuk Access namun tidak terlalu banyak untuk ORACLE dan tidak juga untuk memilih menggunakan MS SQL Server, maka sebuah perhitungan sederhana dilakukan dan perhatianpun dialihkan untuk menggunakan MySQL.

Pada awalnya diputuskan menggunakan MySQL v.5 yang merupakan versi terbaru. Akan tetapi karena nantinya client dan bahasa yang digunakan adalah MS Based serta mengatasnamakan maintenance dan personil yang terbatas pengetahuannya apabila menggunakan weird OS like LINUX, then permasalahan yang muncul adalah penggunaan ODBC; karena versi yang digunakan untuk versi 5 masih dalam tahap pengembangan dan belum direkomendasikan digunakan untuk keperluan produksi. Sehingga diputuskanlah untuk menggunakan MySQL versi 4.0.12 yang akan dijalankan di mesin berbasiskan NT. Tokh masalah yang akan timbul nanti biasanya lebih banyak terkait dengan proses deployment di mesin ber-OS MS dan proses pembelajaran tentang mekanisme yang ada di MySQL sendiri dibanding MS Access yang lebih sederhana.

Maka pembelajaran pertama terkait dengan penginstalan MySQL dan proses inipun berjalan dengan indah tanpa adanya kendala yang berarti, dimana MySQL ini saya install ke "C:\mysql\" dan menggunakan proses instalasi standart saja. Karena saya ini menggunakan OS berbasis NT, maka MySQL harus saya install sebagai service lebih dahulu (walau ada yang mengatakan bahwa hal ini sudah dilakukan otomatis- tapi karena saya bukan orang yang bertipe terlalu praktis maka demi pembelajaran saya juga ingin melakukannya ;) ).

MSShell> c:\mysql\bin\mysqld-nt --install

Lalu karena tidak terlihat pesan error, saya melanjutkan dengan menjalankan service tersebut yang secara default untuk instalasi saya (dan Anda ? ;) ) adalah MySQL.

MSShell> NET START mysql
The MySql service is starting.
The MySql service was started successfully.

Yah berhasil, tapi untuk meyakinkan saya bahwa saya bisa mematikannya :), maka saya mencoba perintah untuk menghetikan service mysql ini.

MSShell> NET STOP mysql
The MySql service is stopping.
The MySql service was stopped successfully.

kemudian untuk proses lebih lanjut saya menjalankan servicenya lagi ...

Kemudian pembelajaran saya masuk ke dalam proses user management; dikarenakan ini masih dalam proses development maka diputuskan untuk menggunakan super user root dengan password 'rahasia'.

MSShell> c:\mysql\bin\mysql -u root mysql
mysql> update user SET password=PASSWORD('rahasia') WHERE user='root';
mysql> FLUSH PRIVILEGES;

Langkah kemudian dilanjutkan dengan membuat database yang akan digunakan untuk SIM ini nantinya, yang diberi nama SISKUM (Dari namanya mungkin Anda sudah tahu untuk apa ini :)) ...

mysql> CREATE DATABASE SISKUM;

Sampai saat ini saya cukup paham dengan apa yang telah terjadi. Maka saya keluar untuk melihat apa yang telah terjadi dengan komputer saya.

mysql> exit;

Menggunakan explorer saya menjelajah menuju ke foder mysql dan melihat ada beberapa folder lainnya. Namun yang menarik perhatian saya adalah folder data yang kemudian ketika dibuka akan terlihat beberapa folder lainnya yang ternyata bernama sama dengan database yang telah dibuat di mysql apabila saya menggunakan perintah "SHOW DATABASES;".

Hmm ... saya rasa cukup karena hari yang kian menanjak naik dan perut sudah memanggil untuk minta isi. Paling tidak, pengalaman saya menggunakan MS SQL Server sebelumnya dan pemahaman saya akan bahasa SQL pasti akan berguna, demikian gumam saya :) ....