Cara Install MySQL 8 di Ubuntu Server Menggunakan Docker
Pengantar
MySQL adalah salah satu sistem manajemen database (DBMS) yang paling populer, digunakan secara luas untuk website, aplikasi web, dan sistem backend. Meskipun biasanya diinstal langsung ke sistem operasi, cara ini seringkali menimbulkan konflik versi, menyulitkan pemindahan ke server lain, dan membawa risiko pada proses upgrade. Dengan menggunakan Docker, proses instalasi MySQL 8 di Ubuntu Server menjadi lebih cepat, rapi, dan aman karena MySQL dapat berjalan di dalam container terisolasi tanpa mengganggu konfigurasi sistem utama. Beberapa manfaat menggunakan MySQL 8 dengan Docker di Ubuntu Server LTS antara lain instalasi yang lebih cepat dan mudah, tidak mengganggu konfigurasi sistem utama, kemudahan pemindahan (portable), kontrol versi MySQL yang lebih pasti, serta kesesuaian untuk server produksi maupun development. Artikel ini akan membahas cara instalasi MySQL 8 di Ubuntu Server menggunakan Docker LTS secara lengkap dan mudah dipahami.
Persiapan Sebelum Instalasi
Pastikan server sudah memenuhi syarat berikut:
- Menggunakan Ubuntu Server LTS (20.04 / 22.04 / 24.04)
- Memiliki akses sudo atau root
- Koneksi internet aktif
- Belum ada MySQL yang menggunakan port 3306 (jika ada, matikan terlebih dah
Panduan Instal Docker di Ubuntu Server
- Update sistem terlebih dahulu:
sudo apt update - Instal Docker di Ubuntu Server
- Jika Docker belum terpasang, install terlebih dahulu dengan perintah berikut:
sudo apt install -y docker.io docker-compose-plugin - Aktifkan dan jalankan Docker:
sudo systemctl enable docker sudo systemctl start docker - Cek apakah Docker dan Docker Compose sudah terpasang:
docker --version docker compose version
- Jika Docker belum terpasang, install terlebih dahulu dengan perintah berikut:
- Membuat Folder Project MySQL
- Agar lebih rapi, buat satu folder khusus untuk konfigurasi MySQL::
mkdir mysql-docker cd mysql-dockerCatatan : Folder ini akan berisi file docker-compose.yml dan data MySQL.
- Agar lebih rapi, buat satu folder khusus untuk konfigurasi MySQL::
- Menggunakan File .env untuk Keamanan Password
Agar password tidak tertulis langsung di file docker-compose.yml, gunakan file .env.-
Buat file .env:
nano .env - isi dengan :
MYSQL_ROOT_PASSWORD=strongpassword MYSQL_DATABASE=db_latihan MYSQL_USER=userdb MYSQL_PASSWORD=password123
-
- Membuat File docker-compose.yml
- Buat file konfigurasi Docker Compose::
nano docker-compose.yml - Isi dengan konfigurasi berikut:
Penjelasan konfigurasi:version: '3.8' services: mysql: image: mysql:8.0 container_name: mysql8-server restart: always ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: ${MYSQL_DATABASE} MYSQL_USER: ${MYSQL_USER} MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - ./mysql-data:/var/lib/mysql- image: mysql:8.0 - menggunakan MySQL versi 8
- container_name - nama container
- restart: always - otomatis hidup jika server restart
- ports - membuka port MySQL
- environment - Sesuaikan dengan .env
- volumes - menyimpan data MySQL di luar container agar tidak hilang
- Buat file konfigurasi Docker Compose::
- Menjalankan MySQL dengan Docker Compose
- Jalankan container MySQL dengan perintah:
docker compose up -d - Cek status container:
docker compose psJika status Up, berarti MySQL berhasil dijalankan.
- Jalankan container MySQL dengan perintah:
Mengakses MySQL di Dalam Container
- Untuk masuk ke MySQL melalui terminal:
docker exec -it mysql8-server mysql -u root -pMasukkan password root yang sudah ditentukan di file docker-compose.yml.
- Jika berhasil, akan muncul prompt:
mysql>
Tips atau Catatan Penting
Beberapa best practice yang perlu diperhatikan:
- Gunakan password yang kuat untuk root MySQL
- Selalu gunakan volume agar data tidak hilang
- Jangan membuka port 3306 ke publik tanpa firewall
- Backup database secara berkala
- Gunakan Docker Compose dibanding docker run agar konfigurasi rapi
- Hindari menjalankan MySQL tanpa autentikasi
Kesalahan umum yang sering terjadi:
- Lupa membuat volume sehingga data hilang saat container dihapus
- Port 3306 bentrok dengan MySQL lokal
- Salah mengetik password
- Firewall belum dibuka
- Container tidak berjalan karena error konfigurasi YAML
Kesimpulan
Install MySQL 8 di Ubuntu Server menggunakan Docker Compose adalah cara yang praktis, modern, dan aman. Dengan metode ini, MySQL berjalan di dalam container terisolasi sehingga tidak mengganggu sistem utama dan mudah dikelola. Melalui panduan ini, Anda telah mempelajari cara install Docker dan Docker Compose, membuat file docker-compose.yml untuk MySQL 8, menjalankan dan mengakses MySQL, menyimpan data menggunakan volume, serta meningkatkan keamanan dengan file .env. Sebagai langkah lanjutan, Anda bisa menghubungkan MySQL Docker dengan aplikasi seperti WordPress, Laravel, atau backend API, serta membuat sistem backup otomatis menggunakan cron job agar database tetap aman.


