Berikut ini adalah langkah-langkah konfigurasi MySQL Database setelah prosedur instalasinya selesai dilaksanakan pada Part 1. Tapi sebelumnya, ada baiknya juga Anda download dulu contoh datanya, dengan command:
[rinjani@nusantara ~]$ wget https://raw.githubusercontent.com/andyprasetya/webmap-development-server/master/files/sampledata.sql
Alternatif:
[rinjani@nusantara ~]$ wget https://gitlab.com/andyprasetya/missing-files/raw/master/files/sampledata.sql
Pastikan file ini berada di direktori /home/rinjani, dan nanti akan kita gunakan untuk contoh data di MySQL.
Langkah awal yang harus kita lakukan adalah enable service-nya, dan langsung di-start:
[rinjani@nusantara ~]$ sudo systemctl enable mysqld.service
[rinjani@nusantara ~]$ sudo systemctl start mysqld.service
Saat pertama kali dijalankan, MySQL Community Server akan membuat temporary password untuk root (administrator) user-nya. Kita harus mengganti password ini, dengan login sebagai root dengan temporary password yang bisa kita lihat di log-nya dengan menjalankan shell command:
[rinjani@nusantara ~]$ sudo grep 'A temporary password is generated for root@localhost' /var/log/mysqld.log | tail -1
Temporary password-nya akan terlihat seperti pada gambar berikut:
Selanjutnya login sebagai root:
[rinjani@nusantara ~]$ mysql -u root -p
Masukkan temporary password tersebut, dan Anda akan langsung masuk ke shell MySQL Client. Jalankan queries berikut ini untuk mengganti password root-nya:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '__password__';
mysql> FLUSH PRIVILEGES;
Password sebaiknya minimal 8 karakter dan mengandung kombinasi dari upper [A-Z] dan lower [a-z] case characters, numerik [0-9] dan alphanumerik [!#$%^&*()-_=+]. Misal:
EPeEsGe!4326.
Sebagai catatan, query di atas masih menggunakan mysql_native_password untuk mendukung kompatibilitas dengan MySQL driver versi sebelum 8.0. Jika Anda yakin benar bahwa yang akan mengakses pasti menggunakan driver versi 8.0 atau yang lebih baru, query-nya:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '__password__';
mysql> FLUSH PRIVILEGES;
Melanjutkan penggantian password untuk root, langsung saja Anda create user untuk mengakses MySQL dengan queries:
mysql> CREATE USER 'webmap'@'localhost' IDENTIFIED WITH mysql_native_password BY '__password__';
mysql> FLUSH PRIVILEGES;
mysql> CREATE USER 'webmap'@'%' IDENTIFIED WITH mysql_native_password BY '__password__';
mysql> FLUSH PRIVILEGES;
atau:
mysql> CREATE USER 'webmap'@'localhost' IDENTIFIED BY '__password__';
mysql> FLUSH PRIVILEGES;
mysql> CREATE USER 'webmap'@'%' IDENTIFIED BY '__password__';
mysql> FLUSH PRIVILEGES;
Mengapa pada contoh di atas create user-nya 2X? 'webmap'@'localhost' untuk akses dari localhost/mesin yang sama, dan 'webmap'@'%' untuk akses dari host/mesin lain.
Selanjutnya, create database dengan nama webmap_db (sama dengan nama database di PostgreSQL, untuk memudahkan dalam mengingatnya saja) dengan menjalankan query:
mysql> CREATE DATABASE webmap_db;
Setelah database-nya Anda create, lakukan pengaturan akses untuk user (webmap):
mysql> GRANT ALL PRIVILEGES ON webmap_db.* TO 'webmap'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> GRANT ALL PRIVILEGES ON webmap_db.* TO 'webmap'@'%';
mysql> FLUSH PRIVILEGES;
Dalam pengaturan akses ini, ya harus dilakukan 2X, karena dalam MySQL 'webmap'@'localhost' dan 'webmap'@'%' adalah 2 user yang berbeda.
Kenapa banyak
FLUSH PRIVILEGES;-nya ya? Ya biar pasti saja hasilnya. Kadang MySQL lemot dalam meng-update user privileges-nya. Hahahaha...
Kalau di bagian awal tadi Anda telah melaksanakan download contoh data untuk MySQL, maka berikut ini adalah langkah-langkah importing datanya ke database webmap_db:
(...masih melanjutkan dari bagian sebelumnya...)
mysql> USE webmap_db;
mysql> source /home/rinjani/sampledata.sql;
Tunggu hingga selesai, dan kini database webmap_db Anda sudah memiliki 1 contoh table, yaitu points. Langsung saja di-test:
mysql> SHOW TABLES;
mysql> DESCRIBE points;
mysql> SELECT * FROM points LIMIT 10 OFFSET 500;
Anda dapat mencoba dengan query yang lain, untuk mencoba table points ini. Jika Anda hendak keluar dari MySQL console, jalankan:
mysql> QUIT;
Sehingga shell-nya kembali menjadi:
[rinjani@nusantara ~]$
Jika Anda menghendaki MySQL-nya bisa diakses dari mesin lain (asumsi: tanpa menggunakan koneksi via SSH), port 3306-nya (port default-nya MySQL) dibuka dengan commands:
[rinjani@nusantara ~]$ sudo firewall-cmd --permanent --zone=FedoraServer --add-port=3306/tcp
[rinjani@nusantara ~]$ sudo firewall-cmd --reload
Tapi membuka port 3306 di firewalld ini tidak disarankan, lebih baik diakses via SSH saja. Ini yang pada bagian berikutnya akan kita bahas.
Sedikit mengulas DB manager untuk MySQL yang support koneksi via SSH, kita bisa menggunakan MySQL Workbench, yang bisa di-download di download page-nya ini.
Setelah instalasinya selesai, create connection ke server dengan meng-klik button [+], seperti pada berikut:
Dialog Setup New Connection muncul, isi Connection Name: webmap_db @ Webmap Development Server, dan pada drop-down Connection Method pilih Standard TCP/IP over SSH:
Kemudian lanjutkan dalam tab Parameters, isikan SSH Hostname: 192.168.1.23:22 (port 22 adalah default port untuk SSH), dan SSH Username: rinjani.
Untuk koneksi ke MySQL-nya, ubah entry 127.0.0.1 menjadi localhost pada MySQL Hostname, MySQL Server Port-nya tetap di 3306, Username: webmap, dan Default Schema diisi dengan nama database yang akan kita akses, yaitu webmap_db.
Pastikan isian Anda sudah sesuai dengan environment yang Anda miliki, dan akhirnya klik OK.
Untuk memulai koneksi, double-click pintasan yang ada, seperti pada gambar berikut (box merah):
Pertama kali yang muncul adalah Anda akan diminta untuk mengisi password user SSH-nya, yang dalam contoh ini adalah password-nya rinjani.
Setelah sukses login via SSH, baru Anda diminta untuk mengisi password user webmap untuk masuk ke MySQL-nya.
Akhirnya, MySQL Workbench Anda sudah terhubung ke database webmap_db, dan Anda dapat melakukan operasi-operasi database sesuai kebutuhan Anda.
Sampai tahap ini, Anda berarti sudah memiliki 2 database server yang berjalan, yaitu PostgreSQL/PostGIS dan MySQL Community Server. Selanjutnya, kita akan membahas komponen-komponen yang terkait-erat dengan webmap frontend development. Terima kasih sudah bersabar mengikuti tutorial ini!
Instalasi dan konfigurasi sebuah tech-stack adalah sebuah craftmanship -- semakin mendalam Anda menggali bagaimana sebuah komponen bekerja dalam ekosistemnya, in-and-out, maka semakin paham pula Anda terhadap seluruh ketidaksempurnaan yang pernah Anda jumpai dalam hidup.
- Part 1: Post-Installation / OS Configuration
- Part 2: Configuring Apache Tomcat for GeoServer
- Part 3: GeoServer Installation / Configuration
- Part 4: Configuring PostgreSQL and PostGIS
- Part 5: Configuring MySQL Database (this file)
- Part 6: Configuring PHP, PHP-FPM and Nginx
- Part 7: Configuring Nginx as a Reverse-Proxy
- Part 8: Configuring Pure-FTPd










