Minggu, 06 Mei 2012

Backup Semua Database

Ada beberapa cara yang bisa dilakukan untuk melakukan backup database di MySQL. Berikut adalah artikel mengenai penggunaan MySQLDump.

Menggunakan MYSQLDUMP

mysqldump adalah utilitas client yang datang bersama distribusi MySQL. Aplikasi ini akan menghasilkan script SQL di console, sehingga bisa didump ke file melalui IO pipe.

Berikut adalah contoh-contoh penggunaan mysqldump untuk backup database :
  • Backup semua database  - struktur dan data

    mysqldump -uusername -ppassword -A

    atau

    mysqldump -uusername -ppassword --all-databases

    atau jika output ke file melalui mekanisme pipe

    mysqldump -uusername -ppassword -A > backup-all.sql

  • Backup semua database - hanya struktur

    mysqldump -uusername -ppassword -A -d

    atau

    mysqldump -uusername -ppassword --all-databases --no-data

    atau jika output ke file melalui mekanisme pipe

    mysqldump -uusername -ppassword --all-databases --no-data > backup-all.sql

Mengubah Nama dan Memodifikasi Field Tabel Database MySQL



Berikut ini akan saya beri sampel bagaimana cara memodifikasi atau lebih tepatnya mengubah nama table beserta mengubah struktur field yang ada dalam suatu table Database MySQL menggunakan Query SQL.
Misalkan anda mempunyai table bernama user dan field-fieldnya (no, username, password, tgl_lahir), lebih jelasnya mempunya struktur seperti di bawah:
1CREATE TABLE user(
2no int(5),
3username varchar(100),
4tgl_lahir varchar(100)
5password varchar(100)
6)
Ketika database sudah jadi, bisa saja suatu saat anda mungkin saja ingin mengubah Nama Tabel-nya atau ingin memodifikasi struktuf field-fieldnya yang ada pada table. Nah pada tutorial ini saya akan coba memberikan contoh cara melakukan modifikasi table dan field-field menggunakan Query SQL yang diantaranya ialah
1. Mengubah Nama Table
2. Mengubah Nama Field
3. Menambah Field Baru
4. Membuat Primary Key
5. Mengubah tipe data Field
6. Mengubah property Field
7. Menghapus Primary Key
Contoh:
1. Mengubah Nama Table
Table user menjadi pengguna
1ALTER TABLE user RENAME TO pengguna;
2. Mengubah Nama Field
Field username menjadi namauser
1ALTER TABLE user CHANGE username namauser varchar(100);
3. Menambah Field Baru
Field baru bernama alamat dengan tipe data varchar(100)
1ALTER TABLE user ADD alamat varchar(100);
4. Membuat Primary Key
Field no di jadikan Primary Key
1ALTER TABLE user ADD PRIMARY KEY (no);
Atau kedua Field no dan username akan dijadikan primary key
1ALTER TABLE user ADD PRIMARY KEY (no,username);
5. Mengubah tipe data Filed
Field no dengan type data int(5) menjadi varchar(5)
1ALTER TABLE user CHANGE no no varchar(5);
6. Mengubah Property Field
Mengubah Property Field no agar tidak boleh kosong (NOT NULL)
1ALTER TABLE user CHANGE no no NOT NULL;
Mengubah Property Field no agar boleh kosong (NULL)
1ALTER TABLE user CHANGE no no NULL;
Mengubah Property Field tgl_lahir dari tipe data varchar(100) menjadi DATE dan dari NULL (boleh kosong) menjadi NOT NULL (tidak boleh kosong)
1ALTER TABLE user CHANGE tgl_lahir tgl_lahir DATE NOT NULL;
7. Menghapus Primary Key
Perlu anda ketahui bahwa untuk menghapus Primary Key pada Table tidak bisa di lakukan satu persatu.
Misalkan dua Field no dan username sebelumnya sudah diset menjadi primary key dan kemudian ingin agar Field username bukan lagi Primary Key.
Maka anda tidak bisa Menghapus Primary Key dari field username saja. tetapi harus menghapus keseluruhan Primary Key no dan username
1ALTER TABLE user DROP PRIMARY KEY;

Sabtu, 05 Mei 2012

Copy atau Duplikasi Table Pada MySQL

Anda ingin melakukan "copy table" baik struktur maupun isinya dari satu database ke database lain ?

Tentu saja Anda bisa, ada dua perintah yang perlu dieksekusi yaitu :
  1. duplikasi struktur table dengan perintah "CREATE TABLE database_tujuan.table_tujuan LIKE database_asal.table_asal".
  2. populasi data dengan perintah "INSERT INTO database_tujuan.table_tujuan SELECT * FROM database_asal.table_asal".

Contoh Penggunaan :

Misalkan saat ini saya memiliki 2 database, yaitu database PHI_MINIMART dan database PHI_COPY.  Saya ingin menduplikasi table ms_produk dari database PHI_MINIMART ke PHI_COPY.

Maka urutan eksekusi perintah yang saya lakukan adalah sebagai berikut :

CREATE TABLE olap.ms_produk LIKE oltp.ms_produk; -- digunakan untuk duplikasi struktur
 
INSERT INTO olap.ms_produk SELECT * FROM oltp.ms_produk
-- digunakan untuk populasi data sesuai sumber
 

Membuat Stored Procedure di MySQL

Stored procedure adalah salah satu objek routine yang tersimpan pada database MySQL dan dapat digunakan untuk menggantikan berbagai kumpulan perintah yang sering kita gunakan, seperti misalkan sejumlah row ke table lain dengan filter tertentu.

Stored procedure sangat berguna ketika kita tidak ingin user mengakses table secara langsung, atau dengan kata lain membatasi hak akses user dan mencatat operasi yang dilakukan. Dengan demikian resiko kebocoran dan kerusakan data dapat lebih diminalisir.

Pembuatan Stored Procedure

Kita dapat membuat trigger dengan perintah CREATE PROCEDURE. Berikut adalah syntax lengkapnya :

CREATE
    [DEFINER = { user | CURRENT_USER }]
    PROCEDURE sp_name (proc_parameter[,...])
    
[characteristic ...] routine_body

Keterangan :
  • sp_name : nama stored procedure.
  • proc_parameter : parameter input / output dari stored procedure tersebut (opsional).
  • characteristic : menjelaskan karakteristik dari stored procedure (COMMENT, LANGUAGE SQL, dan lain-lain).
  • routine_body : kumpulan perintah pada stored procedure tersebut.
  • Jika DEFINER dispesifikasikan maka kita memutuskan trigger tersebut dijalankan hanya oleh user tertentu (dalam format penulisan user@host). Jika tidak dispesifikasikan, maka user yang melakukan perubahan (CURRENT_USER) adalah pilihan default.

Contoh Penggunaan

Berikut adalah contoh pembuatan dan penggunaan stored procedure untuk menghapus data berdasarkan "kode produk" untuk tiga table yaitu table "ms_produk", "ms_harga_harian", dan "tr_penjualan".

  1. Buatlah satu stored procedure dengan nama HapusProduk, dengan satu argumen yaitu kode_produk_param bertipe teks (varchar) dengan perintah berikut :

    DELIMITER |
     
    CREATE PROCEDURE HapusProduk(IN kode_produk_param VARCHAR(12))
    BEGIN
            DELETE FROM ms_produk WHERE kode_produk = kode_produk_param;
            DELETE FROM ms_harga_harian WHERE kode_produk = kode_produk_param;
            DELETE FROM tr_penjualan WHERE kode_produk = kode_produk_param;
    END;
     
    |
     
    DELIMITER ;

  2. Setelah selesai dieksekusi, pastikan stored procedure tersebut sudah terbentuk di database kita.

  3. Sebelum kita mengeksekusi stored procedure tersebut. Kita coba lihat hasil query untuk produk "PROD-0000002" untuk ketiga table yang disebutkan di atas. Ini untuk memastikan adanya row untuk produk tersebut.

    Add caption
  4. Sekarang coba panggil stored procedure HapusProduk dengan parameter "PROD-0000002" dan tunggu beberapa saat sampai eksekusi selesai.

    CALL HapusProduk('PROD-0000002');

  5. Coba lakukan kembali perintah pada point no. 3 dan terlihat bahwa sudah tidak terdapat data untuk produk  "PROD-0000002" pada ketiga table tersebut.

  6. Selesai
sumber : http://mysql.phi-integration.com/sql/membuat-stored-procedure-di-mysql

Cara Replikasi Database Di MySQL

Definisi :
Replication Database adalah suatu fitur teknologi pada dunia pemrograman database yang memungkinkan suatu database untuk mereplikasi atau mengopy datanya ke database lain secara otomatis. Secara sederhana replikasi database adalah proses automatik perintah dari database satu ke database lain yang tentunya terhubung dalam jaringan.
Kegunaan :
Kegunaan dari proses replikasi ini adalah bila suatu database satu mengalami kerusakan maka secara otomatis semua data yang telah disimpan pada database satu dapat dilihat kembali di database lain. Kalau pada pembahasan diatas yaitu Proses Backup dan Restore agak kurang praktis, maka konsep inilah solusi keefektifan dalam menjawab kekurangpraktisan kedua proses diatas. Konsep ini merupakan konsep teknologi yang unik, karena secara otomatis segala perintah yang ada pada database satu akan tersimpan pada database lain sehingga bila kehilangan data pada database satu, database masih tersimpan rapih di database lain.
Praktik Proses Replikasi :
Praktik proses replikasi database ini saya lakukan dengan database MySQL. Pada MySQL sendiri sudah mendukung konsep teknologi Replikasi namun tidak secara default langsung terseting untuk melakukan proses replikasi. Kita mesti menyeting terlebih dahulu agar bisa melakukan proses ini.
Satu hal yang penting saat penyetingan proses Replikasi adalah sudah ada 2 komputer yang terkoneksi / terhubung dan 2 komputer tersebut sudah ter-install MySQL sebagai proses kegiatan database.
Dalam proses replikasi database dikenal 2 server database atau 2 MySQL pada komputer yaitu sebagai Master server dan Slave server. Master server adalah server yang biasa dipergunakan untuk melakukan kegiatan managing database. Sedangkan Slave Server adalah database yang bertindak sebagai pencatat sekaligus pereplikasi / pengopian data setiap melakukan kegiatan managing database pada Master Server. Slave Server memiliki alamat IP 192.168.1.1 sedangkan alamat Master Server memiliki alamat IP 192.168.1.2
Sebelum itu pula kita mesti membuat user pada Server Slave yang dapat diakses oleh siapapun dalam jaringan manapun. Disini kami membuat user dengan nama tamu dan password tamu serta user tamu ini memiliki akses GRANT ALL pada semua database.

[ gambar 1 ]
Bila sudah, mari kita mulai menyeting konfigurasinya :
Pada Komputer Master Server :
Pada komputer Master Server cari file my.ini, biasanya selalu ada pada installan MySQL kita. Kalau pada komputer kami berada pada path C:\Program Files\MySQL\MySQL Server
5.1\my.ini
. Bila sudah ditemukan, coba buka dengan notepad, lalu lihat konfigurasinya.
Lalu ketikan dibawah [mysqld] dengan :
log
log-bin=mysql-log.bin
binlog-do-db=nama_database_replication
server-id=1
Lengkapnya bisa dilihat gambar dibawah ini :

[ gambar2 ]
Pada gambar diatas, dataku adalah nama database yang akan dipergunakan untuk proses replikasi, database yang akan secara otomatis disimpan pada Slave Server. Bila sudah, simpan perubahan tersebut, lalu restart service mysql dengan cara mematikan dan menghidupkan lagi servicenya.

[ gambar3 ]
Bila sudah, masuk ke konsol mysql dengan user root lalu buat user yang akan melakukan proses replikasi. Caranya dengan mengetikan perintah ini :
mysql> grant replication slave on *.* to ‘tamu’@’192.168.1.1’ identified by ‘tamu’;
Bila sudah refresh perubahan user baru dengan perintah :
mysql> flush privileges
Bila sudah merefress, coba lihat status Master dengan cara mengetikan perintah ini :

[ gambar4 ]
Pada gambar, terdapat file log yang berisi perintah-perintah Master Server disimpan, posisi Master Server dan Database yang di replikasi. Sampai sini, sekarang kita setting di Slave Server.

Pada Komputer Slave Server :
Cari file my.ini pada Komputer Slave Server. Sama seperti pada komputer Master Server, file my.ini saya berada pada path C:\Program Files\MySQL\MySQL Server 5.1\my.ini. Bila sudah buka dengan notepad lalu tambahkan dibawah [mysqld] beberapa setingan dibawah ini :
server-id=2
master-host=IP-MASTER SERVER
master-user=user_slave
master-password=passwd_slave
master-connect=60
replicate-do-db=nama_database_replication
Yang terpenting adalah samakan nama database replikasinya dengan setingan pada Master Server dan server-id mesti berbeda valuenya dengan server-id pada setingan di Master Server.
Sesuaikan juga user_slave_server dan passwordnya yang telah kita buat pada langkah diatas.
Lengkapnya bisa dilihat disetingan kami pada gambar dibawah ini:

[ gambar5 ]
Bila sudah simpan perubahan pada file my.ini, lalu lakukan restart service mysqlnya seperti pada gambar 2.

sumber : http://terusbelajar.wordpress.com/2010/03/04/cara-replikasi-database-di-mysql/

MySQL


MySQL.png












MySQL adalah sebuah perangkat lunak sistem manajemen basis data SQL (bahasa Inggris: database management system) atau DBMS yang multithread, multi-user, dengan sekitar 6 juta instalasi di seluruh dunia. MySQL AB membuat MySQL tersedia sebagai perangkat lunak gratis dibawah lisensi GNU General Public License (GPL), tetapi mereka juga menjual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok dengan penggunaan GPL.
Tidak sama dengan proyek-proyek seperti Apache, dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh penulisnya masing-masing, MySQL dimiliki dan disponsori oleh sebuah perusahaan komersial Swedia MySQL AB, dimana memegang hak cipta hampir atas semua kode sumbernya. Kedua orang Swedia dan satu orang Finlandia yang mendirikan MySQL AB adalah: David Axmark, Allan Larsson, dan Michael "Monty" Widenius.

Keistimewaan MySQL

MySQL memiliki beberapa keistimewaan, antara lain :
  1. Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
  2. Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
  3. Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
  4. 'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
  5. Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
  6. Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
  7. Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
  8. Skalabilitas dan Pembatasan. MySQL mampu menangani basis data dalam skala besar, dengan jumlah rekaman (records) lebih dari 50 juta dan 60 ribu tabel serta 5 milyar baris. Selain itu batas indeks yang dapat ditampung mencapai 32 indeks pada tiap tabelnya.
  9. Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
  10. Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
  11. Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
  12. Klien dan Peralatan. MySQL dilengkapi dengan berbagai peralatan (tool)yang dapat digunakan untuk administrasi basis data, dan pada setiap peralatan yang ada disertakan petunjuk online.
  13. Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.

Penggunaan

MySQL sangat populer dalam aplikasi web seperti MediaWiki (perangkat lunak yang dipakai Wikipedia dan proyek-proyek sejenis) dan PHP-Nuke dan berfungsi sebagai komponen basis data dalam LAMP. Popularitas sebagai aplikasi web dikarenakan kedekatannya dengan popularitas PHP, sehingga seringkali disebut sebagai Dynamic Duo. Text dicoret{{}}

Administrasi

Untuk melakukan administrasi dalam basis data MySQL, dapat menggunakan modul yang sudah termasuk yaitu command-line (perintah: mysql dan mysqladmin). Juga dapat diunduh dari situs MySQL yaitu sebuah modul berbasis grafik (GUI): MySQL Administrator dan MySQL Query Browser. Selain itu terdapat juga sebuah perangkat lunak gratis untuk administrasi basis data MySQL berbasis web yang sangat populer yaitu phpMyAdmin. Untuk perangkat lunak untuk administrasi basis data MySQL yang dijual secara komersial antara lain: MySQL front, Navicat dan EMS SQL Manager for MySQL.