Skip to main content

MySQL | Catatan Pengingat

Saya sangat jarang menggunakan MySQL, karena saya lebih menyukai PostgreSQL untuk development. Saya intensif menggunakan MySQL di semester ke-2, karena ada mata kuliah database (database model design dan querying) yang mana saat itu menggunakan Oracle.
Dikarenakan komputer saya saat itu speknya minim (komputer bekas yang saya beli dari teman kuliah seharga 350ribu rupiah, lengkap), maka saya hanya bisa menginstall MySQL untuk belajar, yang mana saat itu versinya belum mensupport subquery, sehingga saya harus banyak membuat view sebagai alternatif subquery.

Belakangan saya mulai melirik lagi MySQL, namun hanya untuk tujuan belajar.
Berikut catatan atas problem yang saya hadapi, sebagai catatan pengingat jika nanti saya lupa

  • Lupa password user root

    Hari ini saya kelupaan password user root dari MySQL, karena sudah cukup lama tidak tersentuh. Hasil googling mengarahkan saya ke laman ini

    (workstation saya adalah Ubuntu 14.04)
    Langkah pertama adalah stop mysql service

    sudo service mysql stop

    Berikutnya adalah start service mysql dengan opsi --skip-grant-tables
    yang berguna untuk mendisable authentikasi untuk mengakses mysql prompt.
    Di PostgreSQL ini sama dengan mengeset authentikasi user postgres menjadi trust.
    Saya mencoba mengedit script di /etc/init.d/mysql, namun ketika start, opsi tersebut tidak berjalan, sehingga saya harus menstart mysql server dengan command

    sudo mysqld_safe --skip-grant-tables

    selanjutnya ketika bisa langsung masuk ke mysql prompt dengan mengetik mysql
    mysql

    setelah masuk di mysql prompt jalankan perintah berikut

    mysql> FLUSH PRIVILEGES;

    #untuk mysql versi 5.7.6 keatas, ketik perintah berikut untuk mengganti password user root
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password_baru';

    #sedangkan untuk mysql versi 5.7.5 kebawah, ketik perintah berikut
    mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password_baru');


    Setelahnya tutup proses mysqld_safe --skip-grant-tables dan restart mysql secara normal

    sudo service mysql start

    maka kita bisa login kembali ke mysql prompt sebagai user root dengan password baru
  • Menjalankan file sql di dalam mysql prompt

    Jika di PostgreSQL kita bisa menjalankan file sql dalam psql prompt dengan mengetik

    \i path_to_file.sql


    Dan untuk di MySQL kita harus mengetik

    \. path_to_file.sql


    Berbeda dengan psql prompt yang mempunyai autocomplete path dengan menekan tab,
    di mysql prompt kita harus mengetik manual lokasi file sql, jika posisi directory saat kita mengakses mysql prompt berbeda dengan lokasi file.

*The end

Comments

  1. Sekarang dah ada MariaDB, fork dari MySQL yang sejak dibeli Oracle perkembangannya berhenti. Diklaim jauh lebih cepat dari MySQL.

    ReplyDelete
    Replies
    1. Wah blog saya dapat kunjungan dari seleb blog yang saya ikuti :)

      Terima kasih Mas untuk informasinya

      Delete

Post a Comment

Popular posts from this blog

Java | Menambahkan Dialog Konfirmasi Sebelum Keluar dari Aplikasi

Kali ini saya ingin berbagi cara sederhana untuk menampilkan dialog konfirmasi sebelum keluar dari aplikasi. Dengan syarat aplikasi yang kita buat harus menggunakan JFrame sebagai frame utama. Langkah-langkah yang harus kita lakukan adalah sebagai berikut: 1. Ganti property default close operation dari JFrame menjadi DO_NOTHING_ON_CLOSE, value ini dimaksudkan agar ketika button close dari JFrame diklik tidak akan terjadi apa-apa. Sebaliknya jika valuenya adalah EXIT_ON_CLOSE, maka ketika button close dari JFrame diklik maka program akan tertutup. setDefaultCloseOperation(DO_NOTHING_ON_CLOSE); 2. Yang kedua adalah kita harus menambahkan WindowListener pada JFrame. Interface WindowListener memiliki beberapa method terkait event terhadap window (yakni JFrame), namun yang harus kita override hanyalah method windowClosing, method ini akan dipanggil ketika button close diklik.   Sebagai informasi, apabila kita menambahkan WindowListener secara langsung maka semua method dari i

PostgreSQL | Membuat Nomor Urut dengan Window Function ROW_NUMBER()

Pengguna Oracle Database mungkin sudah sangat familiar dengan clausa ROWNUM. Bagi yang belum tahu apa itu ROWNUM,  ROWNUM  adalah  pseudo column  (kolom bayangan) yang berisi nomor urut dari hasil eksekusi query. Sayangnya fitur ini belum tersedia pada PostgreSQL . Namun ada kabar gembira bagi kita pengguna  PostgreSQL , dimana sejak versi 8.4, PostgreSQL telah menyediakan 1 window function  yang mengakomodasi masalah ROWNUM, yakni ROW_NUMBER() . Sesuai dengan dokumentasi yang disediakan, cara menggunakan fungsi ini adalah dengan menggabungkannya dengan clausa OVER  yang didalamnya berisi clausa ORDER BY . Supaya lebih jelas dan lebih mudah dipahami, lebih baik langsung kita praktekkan saja. Saya membuat sebuah table dengan struktur sebagai berikut CREATE TABLE name ( code CHAR(1) ); yang kemudian saya isi kolom code dengan alfabet mulai dari a s/d z  dan angka 0 (nol). Sebelumnya kita lakukan query ke table name tanpa clausa ORDER BY : SELECT code FROM name; Outputny

PostgreSQL | Ekspresi Kondisional CASE Pada Query

Salah satu fitur yang saya sukai dari PostgreSQL adalah dapat digunakannya ekspresi kondisional pada query. PostgreSQL menyediakan ekpresi CASE yang memiliki fungsi yang sama dengan statemen IF/ELSE pada bahasa pemrograman. Berikut adalah bentuk dari ekspresi CASE pada PostgreSQL CASE WHEN condition THEN result      [WHEN ...]      [ELSE result] END Untuk melihat bagaimana cara menggunakan ekspresi CASE, saya memiliki sebuah tabel number dengan sebuah kolom nomor yang memuat data bertipe integer. SELECT nomor FROM number ORDER BY nomor;  nomor -------      1      3     32     37     38     97 (6 rows) Sekarang mari kita gunakan ekspresi CASE untuk menentukan apakah nomor tersebut merupakan bilangan ganjil atau genap. SELECT nomor, (CASE WHEN nomor % 2 = 0 THEN 'Bilangan Genap' ELSE 'Bilangan Ganjil' END) AS status FROM number ORDER BY nomor; dan hasilnya adalah sebagai berikut:  nomor |     status     -------+-----------------      1 | Bilangan