Skip to main content

Siri 4 : Pasang MySQL pada Ubuntu untuk Grails

Pada artikel yang lepas saya memberi sedikit penerangan bagaimana Grails berkomunikasi dengan pangkalan data. Kali ini saya akan memberi contoh bagaimana untuk gunakan pangkalan data MySQL untuk aplikasi Grails. MySQL merupakan pangkalan data yang popular bagi aplikasi web.

Dalam artikel ini, saya akan beri penerangan ringkas mengenai:
  1. Pemasangan MySQL versi 5 pada Ubuntu versi 10.04
  2. Mendaftarkan akaun pengguna pada MySQL
  3. Konfigurasi pada Grails untuk gunakan pangkalan data MySQL 
Dalam artikel ini saya banyak menggunakan Terminal untuk konfigurasi bagi MySQL. Ini penting kerana pada kebiasaanya pada server Linux untuk database tidak perlu ada paparan Desktop, juga bagi mengetahui arahan SQL bagi mentadbir pangkalan data, perlu tahu mentadbir pangkalan data melalui kod, dan berhubung dengan server pangkalan data secara remote menggunakan SSH dari komputer yang berlainan
  1. Buka Terminal pada Ubuntu melalui panel Accessories > Terminal

  2. Mulakan pemasangan MySQL dengan menaip pada Terminal
    sudo apt-get install mysql-server

  3. Mulakan satu sesi MySQL dengan menaip pada Terminal
    mysql -u root -p
    Pada ketika ini perlu wujudkan satu katalaluan password yang baru. Berikan satu katalaluan yang unik. Selepas itu penggesa command prompt akan bertukar kepada 'mysql>'

  4. Uji sesi MySQL berkenaan bagi menyenaraikan database yang sedia ada dengan menaip pada Terminal
    SHOW DATABASES;
    Perhatikan pada penghujung setiap arahan MySQL perlu ada semi-kolon ';'.

  5. Wujudkan tiga database yang baru bagi aplikasi DemoBuku dengan menaip pada Terminal
    CREATE DATABASE demobukudev;
    CREATE DATABASE demobukutest;

    CREATE DATABASE demobuku;
  6. Sekarang daftarkan satu akaun pengguna yang baru pada pangkalan data dengan menaip pada Terminal
    GRANT ALL ON demobukudev.* TO pengguna_buku@localhost IDENTIFIED BY 'katalaluan_2011';
    GRANT ALL ON demobukutest.* TO pengguna_buku@localhost IDENTIFIED BY 'katalaluan_2011';

    GRANT ALL ON demobuku.* TO pengguna_buku@localhost IDENTIFIED BY 'katalaluan_2011';
  7. Hentikan sesi MySQL dengan menaip pada Terminal
    QUIT;
  8. Semak bahawa akaun pengguna MySQL yang baru boleh memulakan sesi dengan menaip pada terminal
    mysql -u pengguna_buku -p

  9. Semak akaun pengguna MySQL yang baru boleh capai kepada database bagi DemoBuku dengan menaip pada Terminal
    SHOW DATABASES;

  10. Buka database demobukudev dengan menaip pada Terminal
     USE demobukudev;

  11. Senaraikan tables yang terdapat pada database demobuku dengan menaip pada Terminal
     SHOW TABLES;
    Perhatikan database demobukudev tidak mempunyai sebarang table
  12. Hentikan sesi MySQL dengan menaip pada Terminal
    QUIT;


  13. Pasang perisian MySQL Connector/JDBC supaya Grails dapat berhubung dengan MySQL dengan menaip pada Terminal
    sudo apt-get install libmysql-java

  14. Salin perisian berkenaan ke projek DemoBuku dengan menaip pada Terminal
    cp /usr/share/java/mysql-connector-java-5.1.10.jar /home/iskandar/NetbeansProjects/DemoBuku/lib/
    Perhatikan saya gunakan MySQL connector versi 5.1.10 dan folder bagi projek saya adalah /home/iskandar/NetbeansProjects/DemoBuku/lib/, ini berlainan bagi anda.

  15. Sekarang saya buka projek Grails saya dalam Netbeans pada Ubuntu melalui panel Programming > Netbeans

  16. Buka fail konfigurasi Data Source bagi projek DemoBuku pada Netbeans melalui tab Projects > DemoBuku > Configuration > DataSource.groovy

  17. Pinda perenggan pertama bagi Data Source untuk MySQL pada fail Data.Source.groovy dengan menaip
    dataSource {
          //ris 20100403 pinda dari hsqldb ke mysql
          pooled = true
          //driverClassName = "org.hsqldb.jdbcDriver"
          //username = "sa"
          //password = ""
          driverClassName = "com.mysql.jdbc.Driver"
          username = "pengguna_buku"
          password = "katalaluan_2011"
    }

  18. Pinda pada perenggan environment supaya menggunakan pangkalan data MySQL dengan menaip
    environments {
          //ris 20110403 pinda hsqldb ke mysql
          development {
               dataSource {
                    //ris 20110327 pinda create-drop ke update
                    //dbCreate = "create-drop" // one of 'create', 'create-drop','update'
                    dbCreate = "update"
                    //ris 20110327 pinda mem ke file
                    //url = "jdbc:hsqldb:mem:devDB"
                    //url = "jdbc:hsqldb:file:devDB"
                    url = "jdbc:mysql://localhost/demobukudev"
               }
          }
          test {
               dataSource {
                    dbCreate = "update"
                    //url = "jdbc:hsqldb:mem:testDb"
                    url = "jdbc:mysql://localhost/demobukutest"
               }
          }
          production {
               dataSource {
                    dbCreate = "update"
                    //url = "jdbc:hsqldb:file:prodDb;shutdown=true"
                    url = "jdbc:mysql://localhost/demobuku"
               }
          }
    }

  19. Simpan pindaan yang dibuat pada Netbeans melalui menu File > Save All .

  20. Bina semula pindaan yang dibuat pada Netbeans melalui menu Run > Build Main Project .



  21. Mulakan projek DemoBuku pada Netbeans melalui menu Run > Run Main Project . Setelah 1 minit, pelayar web browser akan memaparkan muka utama DemoBuku pada http://localhost:8080/DemoBuku/

  22. Pada muka utama DemoBuku berkenaan, klik pada controller demobuku.BukuController, dan senarai rekod Buku List akan dipaparkan. Perhatikan senarai ini kosong walaupun pada sesi sebelum ini saya telah menyimpan rekod buku.

  23. Klik pada ikon New Buku untuk tambah rekod baru. Setelah maklumat rekod baru Buku diisi, klik pada butang Create untuk simpan rekod berkenaan.

  24. Klik pada ikon Buku List untuk paparkan senarai rekod Buku List. Senarai ini termasuk rekod baru yang telah disimpan.



  25. Buka Terminal pada Ubuntu melalui panel Accessories > Terminal

  26. Mulakan sesi MySQL dengan menaip pada terminal
     mysql -u pengguna_buku -p

  27. Senaraikan database bagi pengguna MySQL dengan menaip pada Terminal
     SHOW DATABASES;

  28. Buka database demobukudev dengan menaip pada Terminal
     USE demobukudev;

  29. Senaraikan tables yang terdapat pada database demobuku dengan menaip pada Terminal
     SHOW TABLES;
    Perhatikan database demobukudev sekarang sudah mempunyai table buku.

  30. Hentikan sesi MySQL dengan menaip pada Terminal
    QUIT;


Dalam artikel ini saya gunakan akaun pengguna 'pengguna_buku' pada MySQL. Ini sebagai satu langkah keselamatan, kerana saya dapat mengawal apa yang boleh dilaksanakan oleh akaun ini. Akaun pengguna 'root' boleh lakukan apa sahaja pada pangkalan data MySQL dan tidak boleh dikawal. Ini memberi implikasi dari segi keselamatan pangkalan data.

Sekiranya server bagi aplikasi Grails anda berbeza daripada server bagi pangkalan data MySQL, anda perlukan gunakan IP bagi server Grails untuk mendaftarkan akaun pengguna berkenaan, sebagai contoh:
GRANT ALL ON demobuku.* TO pengguna_buku@12.34.56.78 IDENTIFIED BY 'katalaluan_2011';

Kemudian konfigurasi pada server-server berkenaan supaya dapat berhubung melalui port 3306.

Juga gunakan akaun pengguna MySQL dan schema yang berbeza bagi jenis penggunaan yang berbeza, contohnya bagi pengunjung awam, pengguna biasa, operator, dan pentadbir. Rujuk pada panduan keselamatan MySQL pada http://dev.mysql.com/doc/mysql-security-excerpt/5.0/en/pr01.html

Sebagai pembangun sistem, perlu bijak dan matang dalam memilih konfigurasi sesuai dengan tujuan dan keperluan.

Berikut adalah senarai rujukan yang saya telah buat bagi artikel ini. Sekiranya terdapat sebarang masalah atau anda ingin membuat perubahan, sila lihat pada rujukan berkenaan.


Rujukan :
  1. http://www.mysql.com/
  2. http://www.cyberciti.biz/faq/install-mysql-server-5-on-ubuntu-linux/
  3. http://dev.mysql.com/doc/mysql-security-excerpt/5.0/en/pr01.html
  4. http://marksman.wordpress.com/2009/03/01/setting-up-mysqljdbc-driver-on-ubuntu/
  5. http://blogs.sun.com/arungupta/entry/totd_31_crud_application_using
  6. http://weblogs.java.net/blog/caroljmcdonald/archive/2008/07/sample_store_ca_2.html 
  7. http://ubuntuforums.org/showthread.php?t=943887
  8. http://stackoverflow.com/questions/4987805/grails-cant-find-mysql-connector-class

Comments

Popular posts from this blog

Mengganti Ballast / Choke Pada Lampu Kalimantang di Rumah Presint 9B Putrajaya

Sedikit nota persendirian bagi cara untuk membaiki lampu kalimantang di rumah saya di Presint 9B, Putrajaya. Pada lampu kalimantang di rumah ini terdapat tiub lampu, starter, ballast / choke dan housing, seperti gambarajah dibawah. Kapasitor adalah opsyen yang tidak semestinya ada.



Sekiranya lampu tidak menyala, cuba dengan menukar starter, kemudian dengan menukar tiub lampu. Jika masih tidak berjaya buka housing kemudian periksa sekiranya ada dawai yang tercabut. Kod warna dawai adalah
Hitam : HidupPutih : NeutralHijau : Bumi Kod warna di sini adalah pelik kerana mengikut kod warna di Amerika Syarikat dan Kanada. Kebiasaannya di Malaysia kod warna adalah Perang untuk Hidup, Biru untuk Neutral dan Hijau & Kuning untuk Bumi.

Sekiranya dawai dipasang dengan baik dan lampu masih tidak menyala, serta terdapat kesan terbakar pada hujung dawai Hidup pada Ballast / Choke, ini bermaksud anda perlu menukar ballast berkenaan. Terdapat dua jenis ballast:
Ballast biasa berharga murah lebih kura…

5 Larian Marathon Paling Popular di Malaysia, 2017

Acara larian marathon sejauh 42.2km semakin mendapat ramai penyertaan di Malaysia. Setiap acara mempunyai identiti tersendiri dengan lokasi, laluan, masa bermula dan suasana yang berbeza-beza. 5 acara marathon sepanjang tahun 2017 yang paling popular dari segi bilangan penyertaan adalah :

1. Standard Chartered KL Marathon : dianggap sebagai acara marathon paling premier di Malaysia. Diadakan di ibukota Kuala Lumpur, sebahagian besar pusat bandar ibukota ini memberi laluan kepada acara premier tahunan ini.


2. Penang Bridge International Marathon : menawarkan larian paling jauh di atas jambatan, bukan sahaja di Malaysia atau Asia, malah seluruh dunia. Penang juga mempunyai berbagai tarikan yang dapat memenuhi citarasa pengunjung.


3. Borneo International Marathon : diadakan di Kota Kinabalu menarik pelari marathon Malaysia dengan keindahan Laut Cina Selatan, bayangan Gunung Kinabalu dan pembangunan bandar moden di kepulauan Borneo.


4. Twincity Marathon : merentas koridor multimedia Cyber…

Carta Larian Februari 2018 Putrajaya Running Buddies

Carta Larian Bulan Februari 2018
Putrajaya Running Buddies Garmin Group



Ranking berdasarkan :
15 pelari dari 3 Team terbaik dari bulan lepas akan dikekalkan
35 pelari terbaik akan disusun mengikut ranking individu pada bulan lepas

Projek Bela Ikan Guppy

Catatan pendek berkaitan projek saya untuk membela ikan guppy bersama anak saya yang berumur 6 tahun. Projek ini adalah sebagai pengenalan untuk pelajari cara-cara untuk membela dan menjaga ikan. Ikan guppy telah dipilih kerana ianya dikatakan agak tahan lasak dan senang dijaga oleh pengusaha kedai akuarium.

 Berikut adalah senarai kos dibundarkan ke nilai RM teratas.
Sabtu, 25 Feb 2012Tangki lebar sekaki RM10Hiasan pokok plastik RM5Hiasan pasir berwarna RM5Penapis air RM30Selasa, 28 Feb 2012Ikan Guppy jantan RM2 seekor (asal 3 ekor tapi seekor mati)Makanan ikan RM5Jumaat, 2 Mac 2012Ikan Guppy betina RM2 seekor (beli 2 ekor tapi keesokannya mati kedua-duanya)Pam udara RM10
Perkara yang telah kami pelajari adalah: Sentiasa jaga kebersihan air, air yang kotor akan akibatkan ikan mati (apa yang terjadi pada 2 ekor ikan guppy betina)Air perlu digantikan setiap seminggu, sambil itu bilas tangki sehingga bersihApabila mengganti air, gunakan air dari paip air yang bertapis (untuk kurangkan kes…

Ringkasan Keputusan Larian Twincity Marathon 2018

Larian Twincity Marathon tahunan yang ke empat telah diadakan pada Ahad, 21 January 2018 bertempat di perkarangan Magic, Cyberjaya.
Berikut adalah ringkasan keputusan larian berkenaan :



Perbandingan Maybank2U dan Maybank2E Untuk Syarikat

Bagi syarikat Sendirian Berhad (Sdn Bhd), pihak Malayan Banking Berhad (Maybank) ada menawarkan dua jenis perkhidmatan bagi perbankan internet iaitu, Maybank2U dan Maybank2E. Terdapat perbezaan ketara antara dua perkhidmatan berkenaan.

Pertamanya antaramuka pengguna amat berbeza dimana Maybank2U mengguna menu channels melintang dan menu fungsi di sisi, manakala Maybank2E menggunakan tree menu disisi.

Keduanya, sepertimana untuk individu, Maybank2U memboleh semua pengguna untuk melaksanakan transaksi. Berbeza dengan Maybank2E di mana pengguna terbahagi kepada Data Entry dan Authoriser.

Maybank2U untuk syarikat mempunyai fungsi yang hampir sama dengan Maybank2U untuk individu, dengan satu perbezaan yang besar, iaitu pengurusan penerima. Bermaksud untuk menambah penerima, pihak syarikat perlu mengemukakan borang pendaftaran penerima ke cawangan bank Maybank berkenaan.

Senarai Larian Marathon di Malaysia, 2018

Berikut adalah senarai acara larian marathon sejauh 42km di Malaysia yang telah berlangsung atau diumumkan sepanjang tahun 2018.



1. Twincity Marathon : pembuka tirai bagi tahun 2018 dengan laluan merentas koridor multimedia Cyberjaya dan pusat pentadbiran kerajaan Putrajaya. Ianya menjadi pilihan pelari kerana amat bermurah dengan tempoh masa 8 jam yang diberikan dan sajian makanan sepanjang laluan dan garisan penamat. Bagi tahun 2018, seramai 1,674 pelari marathon telah menamatkan larian mereka dalam tempoh masa yang ditetapkan. Ringkasan keputusan larian acara Twincity Marathon boleh dibaca di sini.

Bertukar Dari Yes4G ke Maxis Home Fibre di Putrajaya

Pada hari Sabtu, 23 Mac 2013, saya telah memasang perkhidmatan jalur lebar Maxis Home Fibre di rumah Putrajaya. Sebelum ini saya menggunakan perkhidmatan Yes 4G. Pertukaran ini atas sebab kos.

Perkhidmatan Yes 4G menawarkan capaian internet sebanyak 10GB pada kelajuan 5Mbps untuk harga RM150 sebulan. Menggunakan rangkaian 4G, perkhidmatan ini mobile dan boleh digunakan di mana-mana tempat yang mempunyai liputan. Di sepanjang lebuhraya PLUS Utara-Selatan boleh menonton video YouTube sambil bergerak dalam kenderaan.

Saya mula menggunakan perkhidmatan Yes 4G apabila berpindah ke Putrajaya pada 2011. Ketika itu perkhidmatan broadband lain dari Maxis dan Celcom sangat buruk di kawasan rumah saya di Presint 9. Kelajuan Yes 4G di rumah saya pada purata adalah 5Mbps (adakala lebih dari itu).

Cuma kuota 10GB ini tidak memadai bagi kami sekeluarga, dan kadang-kadang perlu top-up lagi walaupun belum cukup sebulan. Adakala sehingga berbelanja RM300 (RM150 x 2) sebulan. Maklumat berkaitan kadar pe…

Carta Bulan Januari 2018 Putrajaya Running

Carta Bulan Januari 2018
Garmin Group Leaderboard
Putrajaya Running Buddies

Tahniah dan terima kasih kepada semua yang telah sertai carta larian ini yang telah mencatat 6,312km untuk bulan Januari 2018.



3 Pasukan Terbaik untuk bulan Januari 2018
Team C (Zulhafizy, Mohd Razlan, Farrah Fadir, Jasmin Lee, Azlan Ishak) mencatat 825km.
Team G (Alfi Jamilin, Fadzil Yusoff, Akob Ariffin, Nuzid Mohari, Azrul Amin) mencatat 741km.
Team I (Naszwan, Azizul Ab Ghani, Wani Latif, Muhammad Firdaus, Ramrod) mencatat 695km.

Hari Pendaftaran Tingkatan 1 MRSM Parit, Perak

Syukur, pada hari Selasa 15 Januari 2013, saya sekeluarga telah menghantar anak sulung saya mendaftar sebagai pelajar tingkatan 1 di MRSM Parit yang terletak di daerah Perak Tengah. MRSM Parit baru dibuka mengambil pelajar pada pertengahan tahun 2012. Bagi pelajar tingkatan 1 MRSM Parit, mereka akan mengikuti program iGCSE dan akan menduduki peperiksaan taraf O Levels pada tingkatan 4.

Sekolah tampak bersih dan kemas, serta teratur. Manakala pelajar sediaada nampak selesa dan gembira bersama rakan sebaya. Isteri saya berkata Pengetua agak sampoi apabila menyampaikan taklimat kepada ibubapa pelajar baru. Saya juga berkesempatan berbual dengan Timbalan Pengetua. Semoga urusan dan perancangan pihak sekolah dipermudahkan.