Pasang MySQL di CentOS kamu itu mudah

Pasang MySQL di CentOS kamu itu mudah
Photo by Ali Shah Lakhani/Unsplash

Pasang MySQL di CentOS kamu itu mudah

Halo, Bro dan Sis! Pernah kepikiran buat pasang server database sendiri di CentOS tapi takut ribet? Udah deh, buang jauh-jauh pikiran itu. Pasang MySQL di CentOS itu gampang banget kok, bahkan buat kamu yang mungkin baru nyemplung ke dunia server. Di artikel ini, kita bakal kupas tuntas gimana caranya pasang MySQL, mulai dari nol sampai siap dipakai, dengan gaya bahasa yang santai tapi tetap informatif dan pastinya anti-galau.

Kenapa Sih Harus MySQL? Pentingnya Apa Buat Kita?

Sebelum kita nyemplung ke langkah-langkah teknis, ada baiknya kita ngerti dulu kenapa MySQL ini jadi primadona. MySQL itu ibarat gudang super rapi dan canggih buat data-data kita. Bayangin aja, kalau kamu punya toko online, semua data produk, data pelanggan, transaksi, semuanya pasti disimpan. Nah, MySQL inilah yang jadi ‘otak’ di balik penyimpanan dan pengelolaan data-data itu.

Kenapa MySQL populer banget? Pertama, dia open-source, alias gratis dan bisa dioprek sesuka hati. Kedua, performanya udah terbukti tangguh banget, bisa ngurusin data dari yang cuma seuprit sampai yang super gede dengan jutaan data. Banyak aplikasi gede kayak WordPress, Joomla, atau bahkan Facebook di awal-awal itu pakai MySQL sebagai basis datanya. Ketiga, komunitasnya gede banget, jadi kalau ada masalah atau butuh bantuan, nyari referensi atau solusi itu gampang banget. Keempat, dia multi-platform, bisa jalan di Linux (kayak CentOS ini), Windows, macOS, dan lain-lain. Jadi, MySQL itu bukan cuma sekadar database, tapi udah jadi standar industri yang wajib kamu kuasai kalau mau serius di bidang IT, apalagi di backend development atau system administration. Belajar MySQL di CentOS ini bisa jadi batu loncatan yang mantap banget buat karir kamu!

Persiapan Dulu, Biar Nggak Kaget di Tengah Jalan

Sebelum kita mulai oprek-oprek server, ada beberapa hal yang perlu kamu siapkan nih, biar prosesnya lancar jaya tanpa hambatan:

  1. Server CentOS: Pastikan kamu udah punya server CentOS yang lagi jalan. Mau itu VPS, dedicated server, atau bahkan VM di laptop kamu, yang penting CentOS-nya udah terinstal. Artikel ini diasumsikan kamu pakai CentOS 7 atau CentOS 8. Kenapa CentOS? Karena CentOS ini distro Linux yang stabil dan populer banget buat server, apalagi di lingkungan enterprise.
  2. Akses SSH: Kamu butuh akses ke server via SSH (Secure Shell). Ini semacam pintu gerbang aman buat kamu ngirim perintah ke server dari komputer kamu. Kalau di Windows, kamu bisa pakai PuTTY atau Git Bash. Kalau di Linux atau macOS, tinggal buka Terminal aja. Perintahnya simpel: ssh user@ipserverkamu.
  3. Hak Akses Root atau Sudo: Pastikan kamu punya akses root atau akun dengan hak sudo. Root itu ibaratnya administrator tertinggi di Linux, bisa ngelakuin apa aja. Kalau sudo, itu artinya kamu bisa menjalankan perintah sebagai root tapi dari akun biasa. Ini penting banget karena instalasi dan konfigurasi MySQL butuh hak akses yang tinggi. Kalau kamu baru bikin server, biasanya kamu dikasih akun root atau akun biasa dengan kemampuan sudo.
  4. Koneksi Internet: Ya iyalah, Bro! Buat download paket-paket MySQL, kamu butuh koneksi internet yang stabil di server kamu.

Oke, kalau semua persiapan udah beres, yuk kita mulai petualangan instalasi MySQL-nya!

Memilih Versi MySQL yang Pas: Bukan Sekadar Asal Pasang

Sebelum kita langsung ketik perintah instalasi, ada baiknya kamu tahu kalau MySQL itu punya beberapa versi. Ada yang namanya MySQL Community Server (versi gratis dari Oracle), ada juga MariaDB (ini adalah fork dari MySQL yang dikembangkan komunitas). Di CentOS 7 ke atas, MariaDB seringkali jadi default di repository bawaannya. Tapi, karena judul kita spesifik ke "Pasang MySQL", kita akan fokus ke instalasi Oracle MySQL Community Server yang resmi dari repository Oracle. Kenapa milih ini? Karena ini versi MySQL yang paling otentik dan sering jadi acuan utama buat pengembangan. Jadi, kamu gak perlu khawatir soal kompatibilitas atau fitur-fitur yang hilang.

Langkah 1: Tambahkan Repository MySQL Oracle

CentOS itu pakai sistem manajemen paket yang namanya YUM (Yellowdog Updater, Modified) atau DNF (Dandified YUM) di CentOS 8 ke atas. Secara default, paket MySQL resmi Oracle itu nggak ada di repository bawaan CentOS. Jadi, kita harus tambahin repository MySQL sendiri. Gampang kok caranya:

Pertama, kita download dulu paket repository MySQL dari situs resminya. Kamu bisa cek versi terbaru di dev.mysql.com/downloads/repo/yum/. Kita ambil contoh versi mysql80-community-release-el7-x.noarch.rpm untuk CentOS 7 atau mysql80-community-release-el8-x.noarch.rpm untuk CentOS 8. Ganti x dengan nomor rilis terbaru.

bash
Untuk CentOS 7:
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-8.noarch.rpmUntuk CentOS 8:
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

Perintah sudo rpm -Uvh itu artinya kita lagi nginstal atau update paket RPM (Red Hat Package Manager) dari URL yang kita kasih. Paket ini isinya cuma definisi repository MySQL-nya, bukan MySQL-nya itu sendiri. Setelah ini selesai, sekarang sistem YUM/DNF kamu udah tahu di mana harus nyari paket MySQL resmi.

Setelah repository ditambahkan, ada baiknya kamu ngecek dulu versi MySQL yang mau diinstal. Secara default, repository ini bakal ngaktifin versi MySQL terbaru (misal MySQL 8.0). Kalau kamu pengen nginstal versi lain (misal MySQL 5.7), kamu bisa non-aktifin yang versi 8.0 dan aktifin yang 5.7. Caranya gini (misal mau pakai 5.7):

bash
Cek dulu modul MySQL yang tersedia:
sudo dnf module list mysql  # Untuk CentOS 8
sudo yum module list mysql # Untuk CentOS 7 (jika ada dukungan module)Non-aktifkan MySQL 8.0 dan aktifkan MySQL 5.7 (ini contoh, sesuaikan dengan yang kamu mau)
Untuk CentOS 8:
sudo dnf module disable mysql
sudo dnf module enable mysql:5.7Untuk CentOS 7, ini lebih ke editing file repo atau mengabaikan GPG key saat instalasi
Lebih simpelnya, kalau di CentOS 7, cukup pastikan kamu nginstal dari repo yang kamu tambahin

Untuk artikel ini, kita asumsikan kamu pakai versi default (terbaru) yang diaktifkan oleh repository yang baru kita tambahin. Jadi, gak perlu pusing-pusing ganti versi kalau kamu memang mau pakai yang terbaru.

Langkah 2: Instal MySQL Server

Nah, ini dia bagian intinya! Setelah repository berhasil ditambahkan, sekarang kita bisa langsung instal MySQL server-nya pakai yum atau dnf.

bash
Untuk CentOS 7:
sudo yum install mysql-community-serverUntuk CentOS 8:
sudo dnf install mysql-community-server

Saat proses instalasi, sistem mungkin akan nanyain konfirmasi Is this ok [y/N]:. Ketik y lalu Enter. Ini akan download semua paket yang dibutuhkan, termasuk MySQL server, client, dan library pendukung lainnya. Proses ini mungkin butuh waktu beberapa menit, tergantung kecepatan internet server kamu. Tunggu sampai selesai ya.

Langkah 3: Jalankan dan Aktifkan MySQL

Setelah instalasi beres, MySQL server belum langsung jalan otomatis. Kita perlu start service-nya dan juga set agar MySQL otomatis jalan tiap kali server restart. Kita pakai systemctl, sebuah tool untuk mengelola service di Linux.

bash
Start MySQL service:
sudo systemctl start mysqldCek statusnya (pastikan udah aktif/running):
sudo systemctl status mysqld

Kalau statusnya active (running), berarti MySQL kamu udah jalan! Keren! Sekarang, biar MySQL otomatis jalan kalau servernya di-restart (penting banget ini, Bro!), kita enable service-nya:

bash
Aktifkan MySQL biar otomatis jalan tiap restart:
sudo systemctl enable mysqld

Perintah systemctl enable ini bikin symlink yang ngarahin ke lokasi service MySQL, jadi tiap server booting, MySQL langsung ikut jalan. Ini praktis banget, kamu gak perlu start manual lagi.

Langkah 4: Amankan Instalasi MySQL (Penting Banget!)

Oke, MySQL kamu udah terinstal dan jalan. Tapi, ini belum aman! Secara default, instalasi MySQL itu masih punya beberapa celah keamanan. Ada script khusus yang disediain MySQL buat nge-secure instalasi kamu, namanya mysqlsecureinstallation. Ini mandatory banget kamu jalanin.

bash
sudo mysqlsecureinstallation

Setelah kamu jalanin perintah itu, kamu bakal ditanya beberapa hal:

  1. VALIDATE PASSWORD COMPONENT? Press y|Y for Yes, any other key for No:

* Ini fitur buat mastiin password yang kamu pakai itu kuat. Kalau kamu ketik Y, kamu bakal diminta pilih level kekuatan password (Low, Medium, Strong). Saran gue, pilih aja Y terus pilih Medium atau Strong. Nanti kamu bakal diminta masukin password root yang baru. PENTING: Untuk MySQL 8.0 ke atas, password root untuk pertama kali itu di-generate otomatis saat instalasi dan disimpan di log error*. Kamu bisa cari password sementara itu di: sudo grep 'temporary password' /var/log/mysqld.log Catat password itu, lalu gunakan untuk login pertama kali atau saat mysqlsecureinstallation meminta current password for root. Setelah itu, kamu bisa ganti password root yang lebih mudah diingat tapi tetap kuat. Jika grep tidak menemukan, coba sudo cat /var/log/mysqld.log | grep 'password'. Atau, jika tidak ada password sementara, kemungkinan kamu bisa langsung set password baru.

  1. Remove anonymous users? Press y|Y for Yes, any other key for No:

* Pilih Y. User anonim ini bisa ngakses database tanpa password, bahaya banget!

  1. Disallow root login remotely? Press y|Y for Yes, any other key for No:

Pilih Y. Ini buat ngelarang user root MySQL login dari komputer lain selain server lokal. Jadi, root cuma bisa diakses dari server itu sendiri. Sangat disarankan untuk keamanan. Kalau nanti kamu butuh akses root dari luar, kamu bisa bikin user lain dengan hak akses super admin atau konfigurasi firewall*.

  1. Remove test database and access to it? Press y|Y for Yes, any other key for No:

* Pilih Y. Database test ini bawaan MySQL dan nggak dibutuhkan buat produksi. Lebih baik dihapus aja.

  1. Reload privilege tables now? Press y|Y for Yes, any other key for No:

* Pilih Y. Ini buat nge-refresh hak akses yang baru aja kamu atur. Penting biar perubahan langsung berlaku.

Setelah semua pertanyaan dijawab, instalasi MySQL kamu udah jauh lebih aman. Jangan sampai skip langkah ini ya!

Langkah 5: Penggunaan Dasar MySQL (Login dan Bikin User Baru)

Sekarang MySQL kamu udah jalan dan aman. Gimana cara pakai dan bikin user baru?

Untuk login ke MySQL sebagai user root (dari server itu sendiri):

bash
mysql -u root -p

Kamu bakal diminta masukkin password root yang tadi kamu set di mysqlsecureinstallation. Setelah berhasil, kamu bakal masuk ke prompt mysql>. Ini artinya kamu udah siap ngoprek database!

Bikin User Baru dan Beri Hak Akses Login pakai user root itu riskan banget kalau buat aplikasi. Lebih baik bikin user khusus buat aplikasi atau user yang cuma punya hak akses tertentu. Contohnya, kita bikin user developer dengan password strongpasswordhere yang bisa ngakses dari mana aja (%) dan kita kasih hak akses penuh ke semua database:

sql
CREATE USER 'developer'@'%' IDENTIFIED BY 'strongpasswordhere';
GRANT ALL PRIVILEGES ON . TO 'developer'@'%';
FLUSH PRIVILEGES;
  • CREATE USER 'developer'@'%' IDENTIFIED BY 'strongpasswordhere'; : Ini bikin user baru namanya developer yang bisa login dari IP manapun (%) dengan password yang kamu tentuin. Ganti strongpasswordhere dengan password yang kuat dan unik ya! Kalau cuma mau bisa login dari lokal, ganti '%' jadi 'localhost'.

GRANT ALL PRIVILEGES ON . TO 'developer'@'%'; : Ini ngasih hak akses penuh (ALL PRIVILEGES) ke user developer di semua database (.). Kalau kamu mau lebih spesifik, misal cuma di database mydb aja, ganti . jadi mydb..

  • FLUSH PRIVILEGES; : Ini buat nge-refresh hak akses agar perubahan langsung berlaku. Penting!

Setelah itu, kamu bisa EXIT dari prompt MySQL:

sql
EXIT;

Coba login lagi pakai user developer yang baru kamu bikin:

bash
mysql -u developer -p

Masukkan password strongpasswordhere. Kalau berhasil, berarti user kamu udah siap dipakai!

Mengatasi Masalah yang Sering Muncul

Meski udah kita bikin semudah mungkin, kadang ada aja kendala di lapangan. Jangan panik! Ini beberapa masalah umum dan solusinya:

  1. Firewall Memblokir Akses:

Kalau kamu mau ngakses MySQL dari komputer lain (bukan dari server itu sendiri), kamu harus buka port MySQL (standarnya port 3306) di firewall server kamu.

bash
    # Untuk CentOS 7 (FirewallD):
    sudo firewall-cmd --permanent --add-port=3306/tcp
    sudo firewall-cmd --reload

Pastikan juga di konfigurasi MySQL (my.cnf), baris bind-address itu diatur ke 0.0.0.0 atau IP server kamu agar bisa diakses dari luar. Default-nya biasanya sudah diatur untuk hanya bisa diakses dari localhost. Cari file my.cnf (biasanya di /etc/my.cnf atau /etc/mysql/my.cnf) dan ubah/tambahkan: bind-address = 0.0.0.0 Setelah diubah, restart MySQL: sudo systemctl restart mysqld.

  1. SELinux Memblokir Akses:

SELinux (Security-Enhanced Linux) itu fitur keamanan tambahan di CentOS yang kadang bisa jadi sedikit ribet. Kalau kamu ngalamin error aneh terkait akses file atau port, coba cek log SELinux. Atau, sementara waktu, kamu bisa non-aktifkan SELinux (tapi ini gak disarankan buat produksi):

bash
    sudo setenforce 0  # Non-aktifkan sementara
    # Untuk non-aktifkan permanen, edit /etc/selinux/config, ubah SELINUX=enforcing jadi SELINUX=disabled, lalu reboot.

Solusi yang lebih baik adalah dengan mengatur policy SELinux yang tepat, tapi ini agak lebih kompleks. Kalau kamu pemula, coba dulu non-aktifkan sementara buat ngecek apakah SELinux penyebabnya.

  1. Lupa Password Root MySQL:

Ini sering banget kejadian! Jangan khawatir. Kamu bisa reset password root MySQL. * Stop service MySQL: sudo systemctl stop mysqld * Jalankan MySQL dalam mode aman (tanpa verifikasi hak akses): sudo mysqld_safe --skip-grant-tables & * Login ke MySQL sebagai root tanpa password: mysql -u root * Ganti password root:

sql
        ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
        FLUSH PRIVILEGES;

* Keluar dari MySQL: exit; Kill proses mysqld_safe (kalau ada) atau langsung restart* MySQL: sudo systemctl restart mysqld

Tips Optimasi Dasar untuk MySQL Kamu

Meskipun instalasinya gampang, biar performa MySQL kamu makin ngebut, ada beberapa optimasi dasar yang bisa kamu lakuin:

  1. Atur innodbbufferpool_size: Ini parameter paling penting buat MySQL yang pakai engine InnoDB (defaultnya). Parameter ini nentuin berapa banyak RAM yang dipakai MySQL buat nyimpan data dan indeks yang sering diakses. Makin gede, makin bagus performanya (asal gak bikin server kehabisan RAM). Kamu bisa edit di /etc/my.cnf (di bawah bagian [mysqld]):

innodbbufferpool_size = 2G (Ganti 2G dengan ukuran yang pas, biasanya 50-70% total RAM server kamu).

  1. querycachesize (untuk MySQL 5.7 ke bawah): Fitur ini bisa mempercepat query yang sering diulang. Tapi di MySQL 8.0, query_cache udah dihapus karena cenderung jadi bottleneck di beban kerja yang tinggi. Jadi, kalau kamu pakai MySQL 8.0, lupakan ini.
  2. Monitoring: Selalu pantau kinerja MySQL kamu. Kamu bisa pakai top, htop buat lihat penggunaan CPU dan RAM. Untuk MySQL, bisa pakai mysqladmin processlist -u root -p buat lihat query apa aja yang lagi jalan.
  3. Backup Rutin: Jangan pernah lupakan backup! Data itu aset paling berharga. Kamu bisa pakai mysqldump buat backup database:

mysqldump -u root -p namadatabase > namadatabase_backup.sql Jadwalkan backup ini pakai cronjob biar otomatis.

Keamanan MySQL: Jangan Pernah Diremehkan!

Oke, instalasi udah, optimasi dasar juga udah. Sekarang soal keamanan, ini bagian yang paling krusial. Beberapa tips keamanan lanjutan:

  1. Gunakan Password yang Kuat dan Unik: Ini udah pasti ya. Jangan pakai password yang gampang ditebak, kombinasi huruf besar-kecil, angka, dan simbol.
  2. Batasi Hak Akses User: Jangan kasih GRANT ALL PRIVILEGES ke semua user, apalagi user aplikasi. Berikan hak akses seperlunya aja. Kalau aplikasi cuma butuh SELECT, INSERT, UPDATE, DELETE di database tertentu, ya kasih itu aja. Jangan kasih hak DROP atau ALTER kalau gak perlu.
  3. Akses Jaringan Terbatas (Firewall): Seperti yang udah disebutin, kalau kamu gak butuh MySQL diakses dari luar, jangan buka port 3306. Kalau butuh, batasi IP mana aja yang boleh ngakses. Misalnya, cuma dari IP server web kamu aja.
  4. Update MySQL Secara Berkala: MySQL itu software. Seperti software lainnya, pasti ada bug atau celah keamanan yang ditemukan. Pastikan kamu selalu update ke versi terbaru yang stabil untuk mendapatkan patch keamanan.
  5. Log Aktivitas: Aktifkan dan pantau log MySQL (error log, slow query log, general log). Log ini bisa bantu kamu ngedeteksi aktivitas mencurigakan atau masalah performa.
  6. Jangan Pakai User Root untuk Aplikasi: Ini udah kita bahas di awal. Selalu pakai user dengan hak akses terbatas untuk koneksi aplikasi.

Penutup: Kamu Sekarang Udah Jadi Admin Database Mini!

Gimana? Ternyata pasang MySQL di CentOS itu gak seseram yang dibayangkan, kan? Dengan mengikuti langkah-langkah di atas, kamu sekarang udah berhasil punya server database MySQL yang siap pakai dan lumayan aman. Ini adalah pondasi penting kalau kamu mau ngembangin aplikasi web, belajar backend, atau bahkan jadi system administrator.

Kunci utamanya adalah praktik dan jangan takut nyoba. Kalau ada error atau mentok, jangan langsung nyerah. Cari di Google, baca dokumentasi resmi MySQL, atau tanya di forum-forum komunitas. Pasti ada jalan keluarnya. Terus semangat, Bro dan Sis! Petualangan kamu di dunia server dan database baru aja dimulai!