Part-1: Why & What I Built?
আজকে SQL শেখা শুরু করলাম একটু অন্যভাবে আর এইবারটা ছিল pure curiosity থেকে করা একটা experiment 😄
সবকিছু শুরু হয়েছিল আমারপুরনো ম্যাকবুক (MacBook Pro 2017, Ventura 13) নিয়ে ছোট্ট এক সমস্যায়ভার্সিটিতে সবাই MySQL Workbench দিয়ে প্র্যাকটিস করছিল, কিন্তু আমার ল্যাপটপে ওটা একদমই install হচ্ছিল না।
একবার চেষ্টা করলাম Homebrew দিয়ে কিন্তু brew download শেষই হতে চায় না। Dependency-এর পর dependency! শেষে দেখি আমার macOS ভার্সনের সঙ্গে brew-এর নতুন package গুলো ঠিকমতো compatible না।
সেদিন honestly, মাথা একটু গরম হয়েছিল 😅
ভাবছিলাম “সবাই পারছে, আমিই কি শুধু পারছি না ?”
একটা frustration, কিন্তু curiosity ও ছিল আর কোনো উপায় কি নেই?
কিন্তু এখানেই আসল twist হাল না ছেড়ে search শুরু করলাম।
তারপর হঠাৎ মাথায় অসলো Docker কথা! 🐋
ভাবলাম, “যদি database টা আলাদা একটা container এ চালানো যায়, তাহলে system নোংরা হবে না, কিছু install/uninstall করতেও হবে না।”
তখনই শুরু হলো আসল adventure।
Docker install করতে গিয়েও আরেকটা বাঁধা নতুন version (4.49) আমার MacBook support করে না! অনেক খোঁজাখুঁজির পর পেয়ে গেলাম পুরনো stable version Docker 4.47 যা আমার system-এর সঙ্গে একদম perfectly কাজ করছিলো।
Docker install করার পর ভাবলাম, এবার MySQL container এ চালাই clean, isolated, no mess setup. আমি এমন একটা system চাইছিলাম যেখানে আমার data, container, আর code তিনটা জিনিস আলাদা থাকবে। যেহেতু আমি তো শুধু শেখার জন্য করছি, তাই data persist না থাকলেই ভালো প্রতিবার fresh start!
তারপর ধীরে ধীরে পুরো setup টা বানালাম নিজের মতো করে:
🐋 Docker Desktop
💻 VS Code
⚙️ SQLTools + MySQL/MariaDB Driver Extension
এখন আমি শুধু docker compose up দিই, আর database এক মুহূর্তেই তৈরি হয়ে যায়।
No installation hassle, no clutter, clean and portable workspace ঠিক যেমনটা আমি চেয়েছিলা।
সবচেয়ে satisfying মুহূর্ত ছিল যখন প্রথমবার VS Code থেকে SQL query রান করলাম। পুরনো device হলেও, সেই মুহূর্তে মনে হচ্ছিল “আমি পেরেছি!”
Next part এ দেখাবো কিভাবে আমি docker-compose.yml ফাইল বানিয়েছি এবং কীভাবে VS Code থেকেই MySQL চালানো যায়।
আমি পুরো setup process লিখে রেখেছি আমার GitHub repo তে। চাইলে এখান থেকে দেখে নিতে পারেন।
https://github.com/arasruislam/Learn_Stack/blob/master/SQL/SQL_GUIDE.md

Top comments (0)