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