Membangun Lingkungan MySQL 8.0 dengan Docker
Artikel ini akan memandu Anda melalui proses membuat lingkungan MySQL 8.0 menggunakan Docker. MySQL adalah salah satu sistem manajemen database relasional open-source yang paling populer. Dengan menggunakan Docker, kita dapat dengan cepat mengatur server MySQL untuk tujuan pengembangan atau pengujian tanpa perlu melalui proses panjang instalasi dan konfigurasi manual server MySQL di sistem operasi host.
Mengatur docker-compose.yml
Untuk membuat sebuah kontainer server MySQL, pertama kita akan membuat file docker-compose.yml. File ini akan berisi konfigurasi yang diperlukan untuk menarik gambar MySQL dari Docker Hub, membuat kontainer MySQL baru, dan mengatur variabel lingkungan yang diperlukan.
Berikut adalah file docker-compose.yml
:
version: '3.9'
services:
mysql:
image: mysql:8.0.28
platform: linux/amd64
container_name: mysql-container
ports:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: demo
TZ: 'Asia/Tokyo'
Memulai Kontainer MySQL
Setelah file docker-compose.yml
sudah diatur, kita dapat memulai kontainer server MySQL kita. Docker Compose memungkinkan kita mengelola layanan aplikasi kita hanya dengan satu perintah. Di terminal, navigasikan ke direktori tempat file docker-compose.yml
Anda berada, kemudian jalankan perintah berikut:
$ docker compose up -d
Untuk memastikan bahwa kontainer server MySQL kita sudah berjalan, kita dapat menggunakan perintah docker ps
. Perintah ini akan menampilkan daftar kontainer Docker yang sedang berjalan. Berikut adalah perintah dan hasil yang diharapkan:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
baf6d46af198 mysql:8.0.28 "docker-entrypoint.s…" 26 seconds ago Up 24 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp mysql-container
Setelah memastikan bahwa kontainer MySQL berjalan, Anda dapat mengakses shell kontainer MySQL dengan menggunakan perintah docker exec
:
$ docker exec -it mysql-container
root@baf6d46af198:/#
Sekarang kita berada di dalam kontainer MySQL, kita dapat terhubung ke server MySQL dengan menggunakan MySQL client CLI. Untuk terhubung sebagai pengguna root, gunakan perintah berikut:
root@baf6d46af198:/# mysql -u root -p
Enter password: root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.28 MySQL Community Server - GPL
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Mengoperasikan MySQL
Setelah terhubung ke server MySQL, Anda dapat memeriksa database yang tersedia dengan menggunakan perintah show databases;
:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| demo |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.11 sec)
Untuk melakukan operasi pada database demo
, Anda perlu memilihnya terlebih dahulu dengan menggunakan perintah use
:
mysql> use demo
Database changed
Anda dapat memastikan database mana yang saat ini dipilih dengan menggunakan perintah select database();
:
mysql> select database();
+------------+
| database() |
+------------+
| demo |
+------------+
1 row in set (0.00 sec)
Setelah database demo
dipilih, Anda dapat melakukan berbagai operasi database seperti membuat tabel, memasukkan data, dan mengambil data. Berikut adalah contoh pembuatan tabel, memasukkan data ke dalamnya, dan kemudian mengambil data tersebut:
mysql> create table test(id int, name varchar(10));
Query OK, 0 rows affected (0.13 sec)
mysql> insert into test(id, name) values (1,"john");
Query OK, 1 row affected (0.10 sec)
mysql> select * from test;
+------+--------+
| id | name |
+------+--------+
| 1 | john |
+------+--------+
1 row in set (0.04 sec)
Pembersihan
Setelah selesai melakukan operasi, disarankan untuk mengakhiri koneksi MySQL:
mysql> exit
Bye
Perintah ini akan keluar dari server MySQL.
Setelah keluar dari koneksi MySQL, Anda akan kembali ke shell kontainer Docker. Anda juga dapat keluar dari kontainer Docker:
root@baf6d46af198:/# exit
exit
Untuk memastikan tidak ada resource yang tidak perlu digunakan, sebaiknya menghentikan dan menghapus kontainer Docker setelah selesai menggunakannya. Gunakan perintah berikut untuk menghentikan dan menghapus kontainer Docker:
$ docker compose down
[+] Running 2/2
⠿ Container mysql-container Removed 2.8s
⠿ Network my_proj_default Removed