MYSQL
MySQL merupakan salah satu program pengolah basis data yang cukup terkenal dikalangan pembuat web (web master) hal ini disebabkan beberapa faktor:
• Free license (open source), sehingga sebagai pengembang web tidak perlu khawatir dengan masalah lisensi. Namun harus dilihat lagi lebih detail bagaimana end user license agreement-nya di situs resmi mysql (www.mysql.com)
• Ukuran file datanya relatif kecil.
• Performance-nya cukup baik.
• Pengoperasiannya mudah bahkan dengan banyaknya program client berbasis GUI (graphical user interface) membuat user lebih mudah dalam mengolah data di mysql.
• Banyaknya dukungan server web hosting di internet yang menggunakan mysql sebagai DBMS-nya, arsitekturnya sudah berbasis client-server.
• Termasuk kategori database server sehingga fitur-fitur yang berhubungan dengan database server sudah terdapat didalamnya. diantaranya fitur multi-concurent user, hot backup dan cold backup, recovery.
Untuk mendapatkan program master mysql dapat di download melalui situs resmi mysql, yaitu: http://www.mysql.com. Untuk file distribusi yang disediakan cukup banyak pilihannya. mulai dari plattform apa yang digunakan (sistem operasi), jenis file distribusi (versi instalasi atau versi no-install dalam file terkompresi).
Selain mengakses melalui console/ shell dengan menggunakan command text, mysql juga dapat diakses menggunakan program client berbasis GUI yang saat ini banyak di kembangkan oleh komunitas open source di internet. Berikut adalah contohnya: MySQL-Front (desktop-based), PHPMyAdmin (web-based). Dengan menggunakan program berbasis GUI tersebut pengguna database ini lebih mudah dan dimanjakan dengan tampilannya yang visual dan user friendly. Namun yang perlu diperhatikan walaupun program GUI seperti ini mempermudah user dalam mengoperasikan mysql tentu saja tidak semua fitur-fitur yang terdapat di dalam mysql sudah didukung oleh program GUI tersebut. Hal ini disebabkan program GUI tersebut masih dalam pengembangan dan dibuat oleh komunitas open source yang tentu saja memerlukan waktu untuk menjadi versi release (final).
Berikut adalah beberapa contoh perintah dasar di MySQL menggunakan command shell text:
• Menjalankan service MySQL, sebelum login kedatabase mysql terlebih dahulu service mysql dijalankan. biasanya service ini diaktifkan secara otomatis oleh MySQL ketika pertama kali di install. Jika otomatis dijalankan, maka service ini akan aktif secara otomatis ketika sistem operasi start up/ jalan.
C:\MySQL\Bin> mysqld [enter]
• Menjalankan / Login ke MySQL. Untuk login ke mysql perintah yang digunakan adalah [mysql] lalu diikuti parameter [-h] untuk host tempat dimana mysql tersebut di install, misal: localhost. [-u] untuk username dari user yang punya akses ke mysql, defaultnya adalah user: root atau tanpa username. [-p] untuk password dari user yang berhak mengakses mysql, defaultnya: root atau tanpa password.
C:\MySQL\Bin>mysql -h [host] -u [username] -p [enter]
masukkan password:
• Keluar/ Logout dari MyQSL
MySQL> exit [enter] atau
MySQL> quit [enter] atau
MySQL> \q [enter]
• Menampilkan versi database MySQL yang di install
MySQL> SHOW VERSION; [enter]
• Menampilkan daftar database yang ada dalam MySQL
MySQL> SHOW DATABASES; [enter]
• Memilih/ mengaktifkan database yang akan digunakan
MySQL> USE [nama database yang akan di aktifkan]; [enter]
• Menampilkan daftar tabel yang ada dalam database yang aktif
MySQL> SHOW TABLES; [enter]
• Melihat struktur tabel [misal: tabel mahasiswa]
MySQL> DESC mahasiswa; [enter]
• Melakukan backup database (dumping)
C:\MySQL\Bin>mysqldump -h [host] -u [username] [database-source] > “path” [enter]
keterangan: database-source diisi dengan nama database yang akan di backup, path diisi dengan lokasi dan nama file tempat file backup dibuat.
contoh:
C:\MySQL\Bin>mysqldump -h localhost -u root akademik > “d:\akademik.sql” [enter]
• Melakukan restore database
C:\MySQL\Bin>mysql -h localhost -u root akademik < “d:\akademik.sql” [enter] keterangan: tanda “<” [kurang dari] = memasukkan database dari luar. pada contoh nama file backupnya “akademik.sql” dan nama database tujuan didalam mysql “akademik” • Membuat user baru sekaligus memberikan hak akses MySQL> GRANT ALL PRIVILEGES ON *.* TO ‘rudy’ IDENTIFIED BY ‘rudy’; [enter]
keterangan: GRANT = perintah untuk memberikan hak akses, ALL = semua hak akses (administrator) diberikan kepada user, *.* = diijinkan untuk mengakses semua database dan semua tabel didalam database mysql, TO ‘rudy’ = user name-nya rudy, IDENTIFIED BY ‘rudy’ = passwordnya adalah rudy dengan menggunakan fungsi enkripsi password yang tersapat di mysql.
• Mengambil hak akses user yang telah diberikan sebelumnya
MySQL> REVOKE ALL PRIVILEGES FROM ‘rudy’; [enter]
keterangan: fungsi REVOKE adalah perintah untuk mengambil kembali hak akses seorang user yang diberi hak akses didalam database mySQL. penambahan atribut ALL artinya semua hak akses yang pernah diberikan kepada user tersebut akan di cabut/ ambil semuanya. fungsi ini hanya mengambil kembali hak akses user tersebut tetapi tidak menghapus account user tersebut dari daftar user yang terdapat didalam tabel user didalam database mySQL. Jadi user tersebut tetap terdaftar didalam daftar user mySQL tetapi sudah tidak memiliki hak akses lagi didalam database. Untuk melakukan penghapusan account user tersebut secara permanen dari daftar user di database mySQL, maka harus dilakukan proses penghapusan secara manual menggunakan perintah SQL DELETE.
• Mengetahui User yang Terdaftar di Database mySQL
Login ke Database mySQL terlebih dahulu sebagai administrator,
Aktifkan database mySQL menggunakan perintah: USE mysql; [enter]
Tampilkan daftar tabel-tabel didalam database mySQL yang sudah aktif: SHOW TABLES; [enter]
Dari semua tabel yang ditampilkan didalam database mySQL, terdapat tabel ‘user’ yang menyimpan informasi semua user yang terdaftar dan hak aksesnya apa saja.
Tampilkan semua user yang ada didalam tabel user: SELECT * FROM user; [enter]
Jika terlalu banyak kolom yanng ditampilkan, maka dapat dipilih kolom-kolom tertentu saja yang ingin ditampilkan dari tabel ‘user’ tersebut.
misal: SELECT user, password, host FROM user; [enter]
perintah diatas adalah perintah untuk menampilkan semua user yang terdaftar didalam tabel ‘user’ dengan menampilkan informasi username, passwordnya, dan host masing-masing user tersebut.
• Beda Host [localhost] dan Host [AnyHOst/ %] pada kolom Host di tabel ‘user’
Jika dari daftar user yang ditampilkan dari tabel ‘user’ ada informasi localhost pada host user tersebut, itu berarti user tersebut hanya dapat mengakses/ login ke database server mySQL di komputer host/ komputer dimana database mySQL tersebut di install dan tidak dapat diakses secara remote/ jarak jauh. Jika ada informasi simbol ‘%’ atau persen pada bagian host user tersebut itu artinya anyhost, bahwa user tersebut dapat mengakses database server mySQL baik secara localhost maupun secara remote/ jarak jauh.
1. Portability
MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
2. Open Source
MySQL didistribusikan secara open source (gratis), dibawah lisensi GPL sehingga dapat digunakan secara cuma-cuma.
3. Multiuser
MySQL dapat digunakan oleh beberapa user 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. Column types
MySQL memiliki tipe kolom yang sangat kompleks, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
6. Command dan functions
MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam query.
7. Security
MySQL memiliki beberapa lapisan sekuritas seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta password terenkripsi.
8. Scalability dan limits
MySQL mampu menangani database dalam skala besar, dengan jumlah 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. Connectivity
MySQL dapat melakukan koneksi dengan client menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
10. Localisation
MySQL dapat mendeteksi pesan kesalahan pada client dengan menggunakan lebih dari dua puluh bahasa. Meskipun demikian, bahasa Indonesia belum termasuk didalamnya.
11. Interface
MySQL memiliki interface (antar muka) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
12. Clients dan tools
MySQL dilengkapi dengan berbagai tool yang dapat digunakan untuk administrasi database, dan pada setiap tool yang ada disertakan petunjuk online.
13. Struktur table
MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan database lainnya semacam PostgreSQL ataupun Oracle.
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.
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.
Fitur MySQL
Kalau di seri 3.22 MySQL mulai diadopsi banyak orang dan meningkat populasi penggunanya, maka di seri 3.23 dan 4.0-lah terjadi banyak peningkatan dari sisi teknologi. Ini tidak terlepas dari tuntutan pemakai yang semakin mengandalkan MySQL, namun membutuhkan fitur-fitur yang lebih banyak lagi.
Seri 3.23. Di seri 3.23 MySQL menambahkan tiga jenis tabel baru: pertama MyISAM, yang sampai sekarang menjadi tipe tabel default; kedua BerkeleyDB, yang pertama kali menambahkan kemampuan transaksi pada MySQL; dan ketiga InnoDB, primadona baru yang potensial.
Seri 4.x. Di seri yang baru berjalan hingga 4.0 tahap alfa ini, pengembang MySQL berjanji akan menjadikan MySQL satu derajat lebih tinggi lagi. Fitur-fitur yang sejak dulu diminta akan dikabulkan, seperti subselek (di 4.1), union (4.0), foreign key constraint (4.0 atau 4.1—meski InnoDB sudah menyediakan ini di 3.23.x), stored procedure (4.1), view (4.2), cursor (4.1 atau 4.2), trigger (4.1). MySQL AB tetap berdedikasi mengembangkan dan memperbaiki MySQL, serta mempertahankan MySQL sebagai database open source terpopuler.
Keunggulan MySQL
Penyebab utama MySQL begitu popular di kalangan Web adalah karena ia memang cocok bekerja di lingkungan tersebut. Pertama, MySQL tersedia di berbagai platform Linux dan berbagai varian Unix. Sesuatu yang tidak dimiliki Access, misalnya—padahal Access amat popular di platform Windows. Banyak server Web berbasiskan Unix, ini menjadikan Access otomatis tidak dapat dipakai karena ia pun tidak memiliki kemampuan client-server/networking.
Kedua, fitur-fitur yang dimiliki MySQL memang yang biasanya banyak dibutuhkan dalam aplikasi Web. Misalnya, klausa LIMIT SQL-nya, praktis untuk melakukan paging. Atau jenis indeks field FULLTEXT, untuk full text searching. Atau sebutlah kekayaaan fungsi-fungsi builtinnya, mulai dari memformat dan memanipulasi tanggal, mengolah string, regex, enkripsi dan hashing. Yang terakhir misalnya, praktis untuk melakukan penyimpanan password anggota situs.
Ketiga, MySQL memiliki overhead koneksi yang rendah. Soal kecepatan melakukan transaksi atau kinerja di kondisi load tinggi mungkin bisa diperdebatkan dengan berbagai benchmark berbeda, tapi kalau soal yang satu ini MySQL-lah juaranya. Karakteristik ini membuat MySQL cocok bekerja dengan aplikasi CGI, di mana di setiap request skrip akan melakukan koneksi, mengirimkan satu atau lebih perintah SQL, lalu memutuskan koneksi lagi. Cobalah melakukan hal ini dengan Interbase atau bahkan Oracle. Maka dengan load beberapa request per detik saja server Web/database Anda mungkin akan segera menyerah karena tidak bisa mengimbangi beban ini.