Cara Setup MySQL Dengan Docker Di Linux

Jika Anda baru mengenal MySQL atau seseorang yang ingin menginstal database MySQL dengan cepat dan mudah, maka artikel ini cocok untuk Anda. Pada artikel ini, kita akan mempelajari cara mengatur MySQL dengan penulisan Docker dan Docker di Linux.

Mari kita mulai dengan menyiapkan lingkungan buruh pelabuhan untuk meluncurkan container.
Contents
1 MySQL. Instal Docker2. Unduh MySQL Docker Gambar3. Luncurkan MySQL Container4. Periksa Status Penampung MySQL5. Terhubung Ke Database MySQL6. Muat Data Sampel7. Setup MySQL Container Menggunakan Docker-Compose8. Terhubung ke Database MySQL Menggunakan MySQL Workbench8.1. Instal MySQL Workbench di Linux8.2. Terhubung ke Database MySQL9. Kesimpulan1. Instal Docker

Sebelum menjalankan wadah buruh pelabuhan MySQL, Anda harus menginstal buruh pelabuhan dan komposisi buruh pelabuhan di mesin Anda. Jika Anda belum menginstal docker dan docker-compose, lihat panduan berikut:
Cara Menginstal Docker Di CentOSCara Menginstal Docker di Ubuntu
Anda juga dapat merujuk tautan dokumentasi Docker resmi yang diberikan di bawah ini untuk mengetahui cara mengatur komposisi Docker dan Docker.
https ://docs.docker.com/engine/install/https://docs.docker.com/compose/install/
Anda dapat menjalankan perintah berikut untuk memeriksa versi docker dan docker-compose yang Anda jalankan.

$ docker --version Docker versi 20.10.11, build dea9396
$ docker-compose --version docker-compose versi 1.29.2, build unknown
  1. Unduh MySQL Docker Image

    Pergi ke Docker Hub untuk mendapatkan gambar MySQL docker. Yang penting adalah Anda harus memutuskan versi MySQL apa yang akan Anda jalankan.

    Jalankan perintah berikut untuk menarik gambar MySQL dari hub buruh pelabuhan ke mesin Anda.

$ docker pull mysql:latest

Heads Up: Tidak perlu menggunakan tag “terbaru”, secara default akan menarik gambar terbaru.

Untuk memeriksa apakah gambar tersedia secara lokal, Anda dapat menjalankan perintah berikut:
$ docker images mysql
Contoh output:

REPOSITORY TAG ID GAMBAR DIBUAT UKURAN mysql terbaru b05128b000dd 12 hari yang lalu 516MB

Sekarang gambar siap untuk memutar wadah. Anda juga dapat melewati langkah ini dan menjalankan perintah “docker run” seperti yang ditunjukkan di bagian berikutnya yang akan menarik gambar jika tidak tersedia secara lokal.
3. Luncurkan MySQL Container

Jalankan perintah berikut untuk menjalankan wadah buruh pelabuhan MySQL:

$ docker run --name mysql -p 3306:3306 -v mysql_volume:/var/lib/mysql/ -d -e "MYSQL_ROOT_PASSWORD=temp123" mysql

Mari kita istirahat turunkan perintah di atas dan lihat apa yang dilakukan setiap flag.

–name → Untuk memberi nama pada wadah Anda. Jika Anda tidak menentukan flag ini, buruh pelabuhan akan menetapkan beberapa nama yang dibuat secara acak.

-p → Pemetaan port. MySQL akan mendengarkan di port 3306 jadi kami memetakan port (3306 → 3306) dari mesin host Anda ke wadah buruh pelabuhan. Port host tidak harus 3306, itu bisa apa saja yang tersedia untuk digunakan.

Jalankan perintah netstat berikut di komputer lokal Anda untuk memeriksa apakah port yang dipetakan mendengarkan atau tidak setelah wadah diluncurkan.
$ netstat -tlnup | grep -i 3306
Contoh output:

tp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 168870/docker-proxy tcp6 0 0 :::3306 :::* LISTEN 168878/docker-proxy 

-v → Lampirkan volume ke wadah. Perilaku default buruh pelabuhan adalah tidak akan menyimpan data setelah wadah dihapus, sehingga Anda akan kehilangan semua data Anda.

Untuk membuat penyimpanan persisten, saya telah membuat volume bernama “mysql_volume”. MySQL menyimpan data di /var/lib/mysql/ di dalam wadah dan di sini dipetakan ke direktori localhost /var/lib/docker/volumes/mysql_volume1/_data, jadi data Anda akan persisten.

Jika Anda ingin tahu lebih banyak tentang volume buruh pelabuhan lihat artikel terperinci kami di same.

-d → Akan memulai dan menjalankan wadah dalam mode terpisah. Jika Anda menghilangkan tanda -d, maka Anda akan melihat log startup kontainer di terminal dan Anda harus membuka sesi terminal baru untuk terhubung ke container.

-e → Variabel lingkungan. Anda harus mengatur kata sandi pengguna root mysql menggunakan salah satu dari parameter di bawah ini.
MYSQL_ROOT_PASSWORD → Atur kata sandi Anda sendiri menggunakan variabel lingkungan ini.MYSQL_ALLOW_EMPTY_PASSWORD → Kata sandi kosong atau Null akan disetel. Anda harus mengatur MYSQL_ALLOW_EMPTY_PASSWORD=1.MYSQL_RANDOM_ROOT_PASSWORD → kata sandi acak akan dibuat ketika wadah dimulai. Anda harus mengatur MYSQL_RANDOM_ROOT_PASSWORD=1 untuk menghasilkan kata sandi acak.
Jika Anda melewatkan langkah ini, maka akan muncul kesalahan seperti yang ditunjukkan di bawah ini.
4. Periksa Status Kontainer MySQL

Anda dapat memeriksa status kontainer yang diluncurkan menggunakan perintah berikut:
$ docker ps
Contoh output:

CONTAINER ID IMAGE COMMAND NAMA PORT STATUS YANG DIBUAT e1fb895f6f0f mysql "docker-entrypoint.s..." 3 menit lalu Naik 3 menit 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp 33660/tcp mysql
  1. Connect To MySQL Database

    Jalankan perintah berikut untuk terhubung ke MySQL container.

$ docker exec -it mysql bash

Hubungkan ke database MySQL sebagai pengguna root dengan menjalankan perintah berikut. Dalam kasus saya, saya telah menyiapkan kata sandi saya sendiri melalui MYSQL_ROOT_PASSWORD.

$ mysql -u root -p

Jika Anda telah menggunakan MYSQL_RANDOM_ROOT_PASSWORD=1 saat meluncurkan wadah, maka Anda bisa mendapatkan kata sandi yang dibuat secara otomatis dari logs.

$ docker logs
$ docker logs mysql

Kata sandi root yang dibuat secara otomatis akan panjang dan tidak perlu diingat. Anda dapat mereset kata sandi root dengan menjalankan query.

mysql berikut> ALTER USER 'root'@'localhost' DIIDENTIFIKASI OLEH 'mysqlpassword';

Ganti kata sandi ‘mysqlpassword’ dengan kata sandi Anda sendiri. Anda juga dapat membuat pengguna Anda sendiri dan memberinya hak istimewa seperti yang diperlukan.
6. Memuat Contoh Data

Tujuan utama menyiapkan mysql adalah memuat beberapa data dan menjalankan kueri terhadapnya. Ada beberapa cara Anda dapat memuat data. Saya memiliki file sampel bernama “load_data.sql” dengan pertanyaan berikut di dalamnya.

CREATE DATABASE JIKA TIDAK ADA football; GUNAKAN sepak bola; BUAT TABEL JIKA TIDAK ADA pemain ( player_name VARCHAR(16) NOT NULL, player_age INT NOT NULL, player_club VARCHAR(16) NOT NULL, player_country VARCHAR(16) NOT NULL ); MASUKKAN KE DALAM NILAI pemain ("Messi",34,"PSG","Argentina"); INSERT INTO player VALUES ("Ronaldo",36,"MANU","Portugal"); MASUKKAN KE NILAI pemain ("Neymar",29,"PSG","Brasil"); INSERT INTO player VALUES ("Kane",28,"SPURS","England"); INSERT INTO player VALUES ("E Hazard",30,"MADRID","Belgia");

Pendekatan pertama adalah menyalin data dari mesin lokal ke container docker menggunakan perintah “docker cp”.

$ docker cp load_data.sql mysql:/tmp
$ docker exec -it mysql bash
$ ls -l /tmp/

Sekarang Anda dapat terhubung ke klien mysql dan menjalankan perintah sumber atau mengarahkan file ke klien mysql
p


. $ mysql -u root -p
mysql> source /tmp/load_data.sql

Or

$ mysql -u root -p < /tmp/load_data.sql

-hubungkan ke database dan kueri tabel Anda

mysql> tampilkan database;
mysql> gunakan football;
mysql> tampilkan tabel;
mysql> pilih * dari pemain;

pendekatan kedua adalah dengan mengarahkan ulang file .sql command.

$ docker exec -i mysql mysql -u root -p < load_data.sql

7. Setup MySQL Container Menggunakan Docker-Compose

Alih-alih menarik image dan menjalankan perintah docker run, Anda dapat menggunakan docker-compose untuk memutar container dengan cepat. Docker-compose paling cocok jika Anda memiliki lebih dari satu container yang akan dibuat.

Buat file bernama file docker-compose.yml atau docker-compose.yaml. Copy dan paste kode yaml berikut. Ini sama dengan apa yang saya jalankan secara manual di bagian sebelumnya.

version: '3.8' services: database: image: mysql:latest container_name: mysql environment: MYSQL_ROOT_PASSWORD: temp1234 ports: - "3306:3306" volumes: - mysql_volume :/var/lib/mysql volumes: mysql_compose_volume:

Sekarang jalankan perintah berikut yang akan menjalankan MySQL docker container.

$ docker-compose up

Jalankan perintah berikut untuk memeriksa status container yang diluncurkan compose:

$ docker-compose ps

Keluaran contoh:

Name Command State Ports --------------------------------- -------------------------------------------------- -------------- mysql docker-entrypoint.sh mysqld Naik 0.0.0.0:3306->3306/tcp,:::3306->3306/tcp, 33060/tcp

8. Hubungkan ke Database MySQL Menggunakan MySQL Workbench

Sampai sekarang kita telah melihat bagaimana menghubungkan ke database menggunakan klien mysql dari dalam wadah. Anda juga dapat terhubung ke database menggunakan klien GUI apa pun seperti meja kerja mysql, dbeaver, Heidi SQL, dll.

Dalam kasus saya, saya telah memetakan localhost (3306) -> container (3306). Jadi jika saya harus membuat koneksi ke database, saya harus terhubung ke localhost:3306 atau 127.0.01:3306.

Saya menggunakan MySQL Workbench sebagai klien GUI saya. Jika Anda belum menginstal MySQL workbench di mesin Anda, maka Anda dapat menggunakan instruksi di bawah ini untuk menginstal same.

8.1. Instal MySQL Workbench di Linux

Arahkan ke situs resmi untuk mengunduh file paket. Anda harus memilih sistem operasi Anda untuk mengunduh file .deb atau .rpm.

Pada langkah berikutnya, Anda akan diminta untuk Login atau Signup. Anda dapat melewati login atau mendaftar dengan mengklik opsi “No thanks, Just Start my download”.

Pada sistem berbasis Debian, instal MySQL Workbench seperti di bawah ini:

$ cd 
$ sudo apt install .-mysql-work community_8.0.27-1ubuntu21.04_amd64.deb

Pada sistem berbasis RHEL, instal MySQL Workbench seperti di bawah ini:

$ cd 

<

pre>$ sudo dnf localinstall

Setelah instalasi selesai, Anda dapat meluncurkan meja kerja mysql baik dari menu atau dash.

8.2. Hubungkan ke Database MySQL

Hubungkan ke database yang berjalan di dalam wadah buruh pelabuhan. Anda harus mencoba untuk terhubung ke localhost:3306 atau localhost: tergantung pada bagaimana wadah Anda diatur.

Sebelum menghubungkan ke database Anda dapat menekan “Test Connection” untuk memeriksa MySQL workbench berhasil terhubung ke instance database.

Sekarang Anda dapat mulai menjalankan kueri terhadap tabel yang Anda buat.

9. Kesimpulan

Pada artikel ini, kita telah melihat secara singkat cara meluncurkan container MySQL di docker menggunakan metode docker run dan docker-compose. Jika Anda ingin mengatur MySQL untuk tujuan pengujian atau pembelajaran, Docker lebih dari cukup.

Semoga ini membantu.

Wagiman Wiryosukiro

Petani Sistem Informasi, tukang las plugin & themes Wordpress. Co-Founder SistemInformasi.biz. Saat ini aktif sebagai Developer & kontributor di OpenMandriva Linux.

You may also like...

%d bloggers like this: