Thursday, April 5, 2018

MySQL (MariaDB) ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Seven - Setelah saya menginstall MariaDB Server serta phpmyadmin pada Xubuntu 16.04. Saat hendak login via phpmyadmin saya mendapatkan pesan error "ERROR 1698 (28000): Access denied for user 'root'@'localhost'".

Ketika saya coba login ke MariaDB Server via console terminal dengan user "root" bisa login, lalu saya coba login kembali via phpmyadmin dan hasilnya tetap sama.

Setelah googling akhirnya saya menemukan pencerahan. Berdasarkan dokumentasi, MariaDB Server 10 secara default pada installasi baru MariaDB Server, user "root" tidak ter-set password dan authentikasi menggunakan unix socket sehingga hanya bisa login dengan user root dari lokal saja.

Pada dokumentasi juga dijelaskan bahwa sebaiknya tidak menghapus user "root" meskipun tidak ada password yang di set. Plugin unix_auth memastikan bahwa hanya bisa menjalankan user root dari lokal.

Solusi supaya tetap bisa login via phpmyadmin adalah dengan membuat user baru selain root yang digunakan untuk administrasi MariaDB Server.

Cara membuat user pada MariaDB Server sebagai berikut:

1. Login  MySQL/MariaDB via console terminal lokal dengan user "root"
sudo mysql -u root
2. Setelah masuk ke mysqld prompt
CREATE USER 'namauser'@'localhost' IDENTIFIED BY 'password';
namauser = nama user baru yang akan dibuat
localhost = host name localhost user baru hanya dapat login dari lokal, jika ingin login dari host lain bisa diganti dengan ip address atau range ip address dengan "base_ip/netmask" atau jika ingin bisa login dari semua host gunakan "%"
password = password yang akan digunakan oleh user baru untuk login

3. Memberikan hak akse ke user baru
GRANT ALL PRIVILEGES ON * . * TO 'namauser'@'localhost';
Karakter bintang pada command diatas mengacu ke database dan tabel. Bintang mengindikasikan bahwa user baru diijinkan untuk membaca, mengubah, mengeksekusi, dan melakukan semua pekerjaan ke semua database dan tabel. Jika ingin spesifik ke database dan tabel tertentu ganti karakter bintang dengan nama database dan tabel.

4. Setelah membuat dan memberi hak akses user baru kita harus mereload privilieges supaya perubahan yang kita buat berlaku.
FLUSH PRIVILEGES;

Bagaimana cara memberikan hak akses berbeda ke user?

Berikut daftar singkat hak akses umum yang dapat diberikan ke user.

ALL PRIVILEGES- seperti yang kita lihat sebelumnya, ini akan memungkinkan akses penuh pengguna ke database yang ditunjuk (atau jika tidak ada database yang dipilih, akses global di seluruh sistem)
CREATE- mengijinkan membuat database
DROP- mengijinkan menghapus database atau tabel
DELETE- mengijinkan menghapus baris dari tabel
INSERT- mengijinkan memasukkan baris pada tabel
SELECT- mengijinkan menggunakan perintah SELECT untuk membaca database
UPDATE- mengijinkan memperbarui baris tabel
GRANT OPTION- mengijinkan user untuk bisa memberikan/menghapus hak akses user lain

Contoh:
1. Memberikan hak akses
GRANT tipe_hak_akses ON nama_database.nama_table TO ‘namauser’@'localhost’;
2. Menghapus hak akses
REVOKE tipe_hak_akses ON nama_database.nama_table TO ‘namauser’@'localhost’;
Kita bisa melihat hak akses user jika ingin mereview hak akses pengguna
SHOW GRANTS namauser;
Menghapus user hampir sama dengan menghapus database
DROP USER ‘namauser’@‘localhost’;
NB: Pastikan untuk mereload privilieges supaya perubahan yang kita buat berlaku.

Referensi:
MariaDB Documentation
Super User Q&A
Digital Ocean Community

Script Python Untuk Mengecek Bilangan Prima

Source: python.org


Seven - Berikut adalah contoh skrip program python yang berfungsi untuk mengecek suatu bilangan apakah bilangan yang dimasukkan termasuk ke dalam bilangan prima. Dalam contoh ini saya menggunakan python versi 3.

def is_prime(x):
    # hanya bilangan positif yang diijinkan dan bilangan prima terkecil adalah 2
    if (x > 1):
        # Karena bilangan prima terkecil adalah 2, kita mulai pembagi di 3
        divisor = 2
        # Karena bilangan yang dimasukkan selalu bisa dibagi dengan bilangan itu sendiri
        # kita bisa menggunakan range function untuk mengatur range yang benar
        for i in range(divisor,x):
            if (x % i) == 0:
                return False
    else:
        return False
    return True
print (is_prime(int(input("Bilangan:"))))

Script Python Untuk Mencari Faktorial Suatu Bilangan

Source: python.org


Seven - Berikut adalah contoh script python untuk mencari faktorial suatu bilangan. Dalam contoh ini saya menggunakan python versi 3.


def factorial(x):
    produk = 1 
    for i in range(x): 
        produk = produk * (i + 1) 
    return produk
print (factorial(int(input("Factorial:"))))


Script Python Untuk Membalik Kata

Seven - Python adalah bahasa pemrograman interpretatif multiguna dengan filosofi perancangan yang berfokus pada tingkat keterbacaan kode. Python diklaim sebagai bahasa yang menggabungkan kapabilitas, kemampuan, dengan sintaksis kode yang sangat jelas, dan dilengkapi dengan fungsionalitas pustaka standar yang besar serta komprehensif. Wikipedia

Contoh Script Python Untuk Membalik Kata, dalam contoh ini saya menggunakan python versi 3.

def balikan(teks):
    balik=""
    for i in teks:
        balik=i+balik
    return balik
print(balikan(str(input("Teks:"))))

Copy + paste script diatas ke editor favorit Anda, lalu simpan dengan ekstensi .py seperti balik-kata.py. Kemudian jalankan script diatas via console (saya menggunakan OS Ubuntu) seperti gambar dibawah ini:

Solusi Masalah NginX: 413 Request Entity Too Large Error

Seven - Apakah Anda pernah mengalami error '413 Request Entity Too Large Error' pada NginX ketika mencoba upload file yang berukuran besar?



Error '413 Request Entity Too Large Error'  pada NginX muncul dikarenakan ukuran file yang diupload melebihi batas maksimal default 'client_max_body_size' pada web server NginX, yaitu sebesar 1 MB.

Instruksi client_max_body_size menetapkan ukuran maksimal permintaan klien yang diterima, ditunjukkan oleh baris 'Content-Length' pada header permintaan. Jika ukurannya melebihi dari batas yang sudah ditentukan, maka klien akan mendapatkan error '413 Request Entity Too Large'.

Solusi Mengatasi Error '413 Request Entity Too Large Error'


Solusi untuk mengatasinya adalah dengan mengubah konfigurasi NginX dan menyesuaikan client_max_body_size sesuai dengan kebutuhan. Berikut langkah-langkahnya:

Pertama login sebagai root ke server Anda (Saya menggunakan OS Ubuntu) lalu edit file 'nginx.conf' menggunakan teks editor (saya menggunakan nano)
# nano /etc/nginx/nginx.conf
Kemudian pada bagian http atau server atau location (sesuaikan dengan kebutuhan) tambahkan baris berikut ini untuk menambah batasan pada nginx.conf:
# setting client_max_body_size ke 5M#
client_max_body_size 5M;



Simpan file dan tutup teks editor serta reload web server NginX:
nginx -s reload 
atau
service nginx reload
atau
/etc/init.d/nginx reload
 NB: Sesuaikan client_max_body_size dengan kebutuhan Anda.

Semoga bermanfaat. Terimakasih

Script PHP Koneksi Database MySQL/MariaDB

Seven - Contoh script PHP untuk membuat koneksi database MySQL/MariaDB.

Fungsi Header PHP

Seven - Fungsi header() pada bahasa pemrogramman PHP berfungsi untuk mengirim data mentah header HTTP.

Ingat! Fungsi header() harus dipanggil sebelum keluaran lainnya dikirim, baik itu hanya baris kosong dalam berkas, tag HTML biasa atau dari PHP. Dan ini adalah kesalahan yang sangat umum terjadi pada kode dengan fungi include atau require, function atau fungsi akses berkas lainnya. Lihat >> PHP: header - Manual untuk informasi lebih lanjut.

Contoh:



Contoh diatas akan menghasilkan error karena ada tag HTML yang dipanggil sebelum fungsi header().

Parameter:

string

Ada 2 kasus khusus pemanggilan header.

Pertama adalah sebuah header yang dimulai dengan string "HTTP/" (kasus ini tidak begitu signifikan), yang akan digunakan untuk mencari tahu kode status HTTP untuk dikirim. Contoh:



Kode diatas digunakan untuk menangani request berkas yang tidak ada/tidak ditemukan dan akan mengirimkan kode status HTTP 404.

Kedua adalah header "Location:". Tidak hanya mengirim header ini kembali ke browser, tapi juga mengembalikan kode status REDIRECT (302) ke browser terkecuali jika kode status 201 atau 3xx sudah diset sebelumnya.



Kode diatas akan mengirimkan kode status REDIRECT (302) ke browser dan akan di redirect ke https://www.seven.web.id/.

replace

Parameter replace mengindikasikan apakah header yang dikirim harus mengganti header serupa yang sudah dikirim sebelumnya, atau menambahkan header kedua dari tipe yang sama. Secara default akan menggantikan header yang sebelumnya, tapi jika menambahkan FALSE sebagai argumen kedua maka dapat memaksa beberapa header dengan tipe yang sama.

Contoh:

http_response_code

Memaksa kode respon HTTP ke nilai yang ditentukan. Perhatian! Parameter ini hanya akan memiliki efek jika string tidak kosong.

Referensi:

http://php.net/manual/en/function.header.php

https://docs.microsoft.com/en-us/dotnet/framework/wcf/feature-details/understanding-http-authentication

Sunday, April 1, 2018

Lirik lagu Sawangen - Tasya Rosmala


Seven - Lirik lagu Sawangen - Tasya Rosmala

Title: Sawangen
Artist: Tasya Rosmala
Songwriter: Ali PX
Record label: ONE NADA Record

Opo aku kurang gati
Apo aku iki kurang sayang
Katone tresnomu ngambang
Katone atimu bimbang

Sing tak jaluk mung atine
Yen tresnoku mung karo kowe
Ora ono liyane
Ning atiku mung ono kowe

Haaa... Haaa... Haaa...

Sawangen kae sawangen
Mbulan ra kiro ninggalne bumine
Sawangen kae sawangen
Lintang ra kiro ninggalno langite

Koyo gati ku ning kowe
Koyo sayangku ning kowe
Selawase mung karo kowe

Opo aku kurang gati
Apo aku iki kurang sayang
Katone tresnomu ngambang
Katone atimu bimbang

Sing tak jaluk mung atine
Yen tresnoku mung karo kowe
Ora ono liyane
Ning atiku mung ono kowe

Haaa... Haaa... Haaa...

Sawangen kae sawangen
Mbulan ra kiro ninggalne bumine
Sawangen kae sawangen
Lintang ra kiro ninggalno langite

Koyo gati ku ning kowe
Koyo sayangku ning kowe
Selawase mung karo kowe

Sawangen kae sawangen
Mbulan ra kiro ninggalne bumine
Sawangen kae sawangen
Lintang ra kiro ninggalno langite

Koyo gati ku ning kowe
Koyo sayangku ning kowe
Selawase mung karo kowe

Koyo gati ku ning kowe
Koyo sayangku ning kowe
Selawase mung karo kowe

Lirik Lagu Banyu Langit - Didi Kempot

Seven - Lirik Lagu Banyu Langit - Didi Kempot

Title: Banyu Langit
Artist: Didi Kempot
Songwriter: Didi Kempot
Record label: Suara Musik Buana (sumbu record)


Sworo angin, angin sing ngreridu ati
Ngelingake sliramu sing tak tresnani
Pingin nangis ngetokke eluh neng pipi
Suwe ra weruh senajan mung ono ngimpi
Ngalemo, ngalem neng dodoku
Tambanono roso kangen neng atiku
Ngalemo, ngalemo neng aku
Ben ra adem kesiram udaning dalu

Banyu langit sing ono nduwur khayangan
Watu gedhe kalingan mendunge udan
Telesono atine wong sing kasmaran
Setyo janji seprene tansah kelingan

Ademe gunung merapi purba
Melu krungu swaramu ngomongke opo
Ademe gunung merapi purba
Sing neng Nglanggeran Wonosari Yogjokarto

Janjine lungane ra nganti suwe suwe
Pamit esuk lungane ra nganti sore
Janjine lungo ra nganti semene suwene
Nganti kapan tak enteni sak tekane

Udan gerimis teles ono klambi iki
Jroning dodo ben ra garing ngekep janji
Ora lamis gedhening nggonku nresnani
Nganti kapan aku ora biso lali

Ademe gunung merapi purbo
Melu krungu suaramu ngomongke opo
Ademe gunung merapi purbo
sing neng Nglanggeran Wonosari Yogjokarto

Janjine lungane ra nganti suwe suwe
Pamit esuk lungane ra nganti sore
Janjine lungo ra nganti semene suwene
Nganti kapan tak enteni sak tekane