Saat ini VPS semakin murah, dan dengan bertambahnya traffic dan makin bervariasi bahasa pemrograman membuat VPS menjadi salah satu alternatif yang baik dalam memilih Hosting. Dalam tulisan ini saya akan mendeskripsikan bagaimana cara melakukan setup server anda untuk dapat digunakan sebagai webserver.  Server yang digunakan dapat berupa dedicated server (DS), virtual private server (VPS), ataupun cloud virtual private server.

Tulisan ini akan terdiri dari kurang lebih 4 seri yang terdiri dari:

  1. Setup Server Pertama Kali
  2. Instalasi LAMP Stack
  3. Konfigurasi MySQL
  4. SSL Certificate

Requirement

Untuk memudahkan anda dalam memahami petunjuk ini, maka beberapa hal yang perlu diperhatikan diantaranya:

  1. Server yang digunakan dalam contoh ini adalah ubuntu server. Sehingga tutorial ini sedikit banyak berlaku pada server berbasis debian. Namun tidak menutup kemungkinan dapat digunakan juga di distro lain, terkadang anda hanya perlu mengganti apt-get menjadi yum atau dnf.
  2. Stack yang digunakan adalah LAMP Stack (Linux Apache 2.2, MySQL, PHP 7).
  3. Ubuntu yang digunakan adalah Ubuntu 16.04
  4. Root direktori apache2 yang digunakan adalah /home/ubuntu/html/

Go Ahead and Start!

 

MySQL secara otomatis berjalan pada saat instalasi LAMP. Anda dapat masuk ke console mysql anda dengan perintah berikut.

$ mysql –u root –p

Kemudian masukkan password sesuai yang anda masukkan pada saat instalasi LAMP.

Kelola User dan Password

Hal pertama dalam mengelola MySQL adalah mengelola user dan password. Anda harus masuk sebagai root untuk dapat mengelola user, dan database. Untuk mengubah password anda (root) maka dapat dapat dengan perintah berikut.

UPDATE user SET Password=PASSWORD('newpwd') WHERE User='root';
flush privileges;
exit;

Dan untuk membuat user baru dan memberikan permission dapat dengan perintah berikut.

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Apabila anda hanya ingin memberikan akses pada database terntentu maka secara garis besar formatnya sebagai berikut

GRANT [type of permission] ON [database name].[table name] TO ‘[username]’@'localhost’;
REVOKE [type of permission] ON [database name].[table name] FROM ‘[username]’@‘localhost’;

kembali permission yang telah anda berikan. Tipe Permission yang dapat diberikan antara lain:

  1. ALL PRIVILEGES- as we saw previously, this would allow a MySQL user all access to a designated database (or if no database is selected, across the system)
  2. CREATE- allows them to create new tables or databases
  3. DROP- allows them to them to delete tables or databases
  4. DELETE- allows them to delete rows from tables
  5. INSERT- allows them to insert rows into tables
  6. SELECT- allows them to use the Select command to read through databases
  7. UPDATE- allow them to update table rows
  8. GRANT OPTION- allows them to grant or remove other users' privileges

Dan terakhir untuk menghapus user dapat dilakukan dengan perintah berikut

DROP USER ‘demo’@‘localhost’;

Kelola Database

Anda dapat mengelola database dengan membuat database baru, membuat tabel seperti layaknya anda menggunakan query SQL. Namun harap diperhatikan akses yang sudah diberikan kepada anda sebagai user, anda tidak dapat membuat database jika anda tidak diberikan akses untuk itu.

Remote Database

Secara default MySQL hanya dapat diakses melalui komputer lokal atau localhost. Untuk dapat mengakses MySQL dari komputer lain (dengan akses pada klien), maka anda harus memberikan akses kepada mysql dan mengubah setting mysql anda.

Pertama kita ubah terlebih dahulu setting mysql kita pada my.cnf dengan perintah berikut.

$ sudo nano /etc/mysql/my.cnf

My.cnf akan memberikan anda setting mana saja yang berkaitan dengan mysql. Temukan tulisan berikut pada cnf anda

bind-address = 127.0.0.1

Apabila anda tidak dapat menemukan baris tersebut, maka buka file cnf lain yang diinclude dalam my.cnf yang sedang anda buka. Setelah itu beri komen pada baris tersebut sehingga menjadi seperti di bawah ini.

# bind-address = 127.0.0.1

Setelah itu anda juga harus memberikan hak akses pada ip anda agar dapat mengakses klien melalui mysql console anda dengan perintah berikut.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

Kemudian restart mysql server dengan perintah berikut

$ sudo /etc/init.d/mysql restart

Setelah itu anda dapat mengakses mysql anda dari komputer manapun, apabila anda ingin membuat mysql hanya dapat diakses pada ip tertentu maka tambahkan bind-address dan ganti % dengan alamat ip yang akan diberikan akses.


Baiklah itu tadi hal-hal penting berkaitan dengan konfigurasi MySQL anda. Semoga membantu dan Happy Coding!

Sumber:

https://www.digitalocean.com/community/tutorials/how-to-create-a-new-user-and-grant-permissions-in-mysql