Monday, February 27, 2012

Tentang MYSQL Server 2008

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 :
Portabilitas. MySQL dapat berjalan stabil pada berbagai sistem operasi seperti Windows, Linux, FreeBSD, Mac Os X Server, Solaris, Amiga, dan masih banyak lagi.
Perangkat lunak sumber terbuka. MySQL didistribusikan sebagai perangkat lunak sumber terbuka, dibawah lisensi GPL sehingga dapat digunakan secara gratis.
Multi-user. MySQL dapat digunakan oleh beberapa pengguna dalam waktu yang bersamaan tanpa mengalami masalah atau konflik.
'Performance tuning', MySQL memiliki kecepatan yang menakjubkan dalam menangani query sederhana, dengan kata lain dapat memproses lebih banyak SQL per satuan waktu.
Ragam tipe data. MySQL memiliki ragam tipe data yang sangat kaya, seperti signed / unsigned integer, float, double, char, text, date, timestamp, dan lain-lain.
Perintah dan Fungsi. MySQL memiliki operator dan fungsi secara penuh yang mendukung perintah Select dan Where dalam perintah (query).
Keamanan. MySQL memiliki beberapa lapisan keamanan seperti level subnetmask, nama host, dan izin akses user dengan sistem perizinan yang mendetail serta sandi terenkripsi.
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.


Konektivitas. MySQL dapat melakukan koneksi dengan klien menggunakan protokol TCP/IP, Unix soket (UNIX), atau Named Pipes (NT).
Lokalisasi. MySQL dapat mendeteksi pesan kesalahan pada klien dengan menggunakan lebih dari dua puluh bahasa. Meski pun demikian, bahasa Indonesia belum termasuk di dalamnya.
Antar Muka. MySQL memiliki antar muka (interface) terhadap berbagai aplikasi dan bahasa pemrograman dengan menggunakan fungsi API (Application Programming Interface).
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.
Struktur tabel. MySQL memiliki struktur tabel yang lebih fleksibel dalam menangani ALTER TABLE, dibandingkan basis data lainnya semacam PostgreSQL ataupun Oracle.
Bahasa pemrograman


Terdapat beberapa API (Application Programming Interface) tersedia yang memungkinkan aplikasi-aplikasi komputer yang ditulis dalam berbagai bahasa pemrograman untuk dapat mengakses basis data MySQL antara lain: bahasa pemrograman C, C++, C#, bahasa pemrograman Eiffel, bahasa pemrograman Smalltalk, bahasa pemrograman Java, bahasa pemrograman Lisp, Perl, PHP, bahasa pemrograman Python, Ruby, REALbasic dan Tcl. Sebuah antarmuka ODBC memanggil MyODBC yang memungkinkan setiap bahasa pemrograman yang mendukung ODBC untuk berkomunikasi dengan basis data MySQL. Kebanyakan kode sumber MySQL dalam ANSI C.
Adapun tujuan dari pembuatan database adalah sebagai beikut:


1. Menyediakan penyimpanan data untuk dapat digunakan oleh organisasi saat sekarang dan masa yang akan datang.
2. Cara pemasukan data sehingga memudahkan tugas operator dan menyangkut pula waktu yang diperlukan oleh pemakai untuk mendapatkan data serta hak-hak yang dimiliki terhadap data yang ditangani.
3. Pengendalian data untuk setiap siklus agar data selalu up-to-date dan dapat mencerminkan perubahan spesifik yang terjadi di setiap sistem.
4. Pengamanan data terhadap kemungkinan penambahan, modifikasi, pencurian dan gangguan-gangguan lain.


1.2 Permasalahan Database


Disaat kita membuat suatu database, kita harus memperhatikan beberapa hal. Tidaklah untuk mendesain database, ada yang harus diperhatikan disaat mendesain database untuk mengurangi kesalahan-kesalahan yang akan mungkin terjadi. Kesalahan dalam mendesain database dapat menyebabkan masalah di kemudian hari. Permasalahan-permasalahan yang mungkin terjadi ketika kita mendesain sebuah database adalah


1.2.2 Redundansi


Pengertian redudansi adalah sebuah data yang diulang beberapa kali, apabila ada data yang diulang-ulang, maka data itu dikatakan tidak baik, karena informasi yang dihasilkan akan membuat bingun seorang user yang menggunakannya. Untuk mendesai sebuah database yang baik adalah memperkecil data yang disimpan berulang kali, tanpa kehilangan data yang diperlukan


1.2.3 Anomali


Anomali adalah kesalahan-kesalahan dalam memanupulasi sebuah data yang disebabkan oleh desain database yang kurang baik. Anomali dapat diperkecil dengan pembuatan desain database yang baik


Anomali terbagi menjadi 3 jenis, yaitu


1. Insert Anomali (Anomali pemasukan data)


Anomali pemasukan data adalah kesalahan-kesalahan dalam memasukkan sebuah data yang disebabkan oleh desain database yang kurang baik


2. Delete Anomali (Anomali penghapusan data)


Anomali penghapusan data adalah kesalahan-kesalahan dalam melakukan operasi penghapusan data akibat desain database yang kurang baik.


3. Update Anomali (Anomali pengubahan data)


Update anomali adalah kesalahan-kesalahan dalam melakukan operasi pengubahan data akibat desain database yang kurang baik



CONTOH COMMAND
Menginstal MySQL Server
sudo apt-get install mysql-server

Mengganti Password Root

mysqladmin -u root -p passswordlama password 'inipasswordbaru'

Membuat Database

mysqladmin -u root -p password create database namadatabase


Kita cek menggunakan mysql client. Contoh keluaran,
mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 62974
Server version: 5.0.51a-3ubuntu5.4 (Ubuntu)


Type 'help;' or '\h' for help. Type '\c' to clear the buffer.


mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| namadatabase |
| openx |
| wiki |
+--------------------+
5 rows in set (0.00 sec)


mysql>


Menghapus Database


mysqladmin -u root -p password drop database namadatabase


Memberi Hak Akses


Jalankan mysql client,


mysql -u root -p
Lalu di prompt mysql client, ketikkan perintah berikut. Ingat sesuaikan dengan nama database yang mau di set.


CREATE USER 'namauser'@'localhost' IDENTIFIED BY 'my_password';
GRANT ALL PRIVILEGES ON namadatabase.* TO 'namauser'@'localhost';
FLUSH PRIVILEGES;
Untuk contoh lain, lihat di bagian selanjutnya. Cara memberi hak akses untuk remote user.


Mengakses Database dari Remote


Pertama, sunting berkas /etc/mysql/my.cnf. Cari bari berikut:


bind-address = 127.0.0.1
Ganti menjadi seperti di bawah ini. Asumsi IP server = 192.168.1.5



bind-address = 192.168.1.5
Setelah itu, restart service mysql,



sudo /etc/init.d/mysql restart
Selanjutnya Anda harus membuat user yang bisa digunakan dari remote client. Misal, IP yang akan mengakses ke server adalah 192.168.1.100 dan satu network 192.168.2.0/24.


Maka yang perlu Anda lakukan adalah, jalankan mysql client.


mysql -u root -p
Di prompt mysql, ketik seperti contoh di bawah ini.


GRANT ALL ON namadatabase.* to 'namauser'@'192.168.1.100' IDENTIFIED BY 'inipassword';
GRANT ALL ON namadatabase.* to 'namauser'@'192.168.2.%' IDENTIFIED BY 'inipassword';
FLUSH PRIVILEGES;
Mengetahui Versi MySQL
mysqladmin -u root -p password version





Melakukan Ping



mysqladmin -u root -p password ping


Melihat Status MySQL dengan Lebih Detail



mysqladmin -u root -p password extended-status
Contoh keluaran,



+-----------------------------------+------------+
| Variable_name | Value |
+-----------------------------------+------------+
| Aborted_clients | 0 |
| Aborted_connects | 2 |
| Binlog_cache_disk_use | 0 |
| Binlog_cache_use | 0 |
| Bytes_received | 459162673 |
| Bytes_sent | 1128082649 |
| Com_admin_commands | 129 |
| Com_alter_db | 0 |
| Com_alter_table | 78 |
| Com_analyze | 0 |
| Com_backup_table | 0 |
| Com_begin | 817 |
| Com_call_procedure | 0 |
...


Melihat Nilai Variable Sistem



mysqladmin -u root -pinipassword variables
Contoh keluaran,


+---------------------------------+-----------------------------+
| Variable_name | Value |
+---------------------------------+-----------------------------+
| auto_increment_increment | 1 |
| auto_increment_offset | 1 |
| automatic_sp_privileges | ON |
| back_log | 50 |
| basedir | /usr/ |
| binlog_cache_size | 32768 |
| bulk_insert_buffer_size | 8388608 |
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
...


Membackup Database


mysqldump -u root -pinipassword namadatabase > file_namadatabase.sql



2 comments:

  1. Artikelnya keren dan bermanfaat banget.. :D kunjungi juga yaah
    https://ayulestari27.wordpress.com

    ReplyDelete