Google-এর cloud-sql-proxy (Cloud SQL Auth Proxy) ব্যবহার করে DB-তে লগইন করার প্রক্রিয়া
হ্যালো, আমি অযোগ্য।
আমি এক মুহূর্তের জন্য cloud-sql-proxy এর মাধ্যমে DB-তে সংযোগ করার চেষ্টা করতে গিয়ে হোঁচট খেয়েছিলাম, তাই এটি নোট করে রাখছি।
প্রয়োজনীয় বাইনারি ইনস্টলেশন
cloud-sql-proxy এক্সিকিউটেবল বাইনারি সংরক্ষণ করুন এবং পাথ সেট করুন
প্রথমত, আপনার cloud-sql-proxy এর এক্সিকিউটেবল বাইনারি প্রয়োজন।
যেহেতু এটি brew এর মতো প্যাকেজে বিদ্যমান নেই, তাই আপনাকে Google-এর সাইট থেকে প্রতিটি নির্দেশ সেট অনুযায়ী তৈরি এক্সিকিউটেবল বাইনারি ডাউনলোড করতে হবে।
curl -o cloud-sql-proxy https://storage.googleapis.com/cloud-sql-connectors/cloud-sql-proxy/v2.14.2/cloud-sql-proxy.darwin.arm64
chmod +x cloud-sql-proxy
sudo mv cloud-sql-proxy /usr/local/bin
which cloud-sql-proxy
যদিও খুব বেশি লোক এটি করে না, homebrew দিয়ে ইনস্টল করা এক্সিকিউটেবল বাইনারিগুলি /opt/homebrew/bin/ এর অধীনে স্থাপন করা হয়, তবে এইবার এটি ব্যবহারকারী দ্বারা ইনস্টল করা একটি অনন্য বাইনারি, তাই FreeBSD এর একটি ফর্ক MacOS এর ক্ষেত্রে, /usr/local/bin আরও উপযুক্ত বলে মনে হয়েছিল, তাই আমি এটি সেখানে রেখেছি।
MySQL বাইনারি ইনস্টল করুন
মনে হচ্ছে, যদি আপনি কোনো সংস্করণ নির্দিষ্ট না করে brew install mysql করেন, তাহলে বাইনারি অনুপস্থিত থাকবে বা সংস্করণ খুব কম হবে, যার ফলে সংযোগের সময় ত্রুটি হবে, তাই নিচে দেখানো উপায়ে ইনস্টল করুন।
এই বিষয়ে, আমার সিনিয়রের কারণে এটি সেকেন্ডের মধ্যে সমাধান হয়ে গিয়েছিল।
brew install mysql-client@8.4
এবং, তারপর,
যদি পাথ সেট করা না থাকে, তাহলে নিচে দেখানো উপায়ে খুঁজে সিম্বলিক লিঙ্ক তৈরি করুন
find /opt/homebrew -name "mysql*"
ln -s /মিলিছে/mysqlবাইনারির_পাথ /opt/homebrew/bin/mysql
DB সংযোগের তথ্য পুনরুদ্ধার
পরিবেশ যাচাইকরণ এবং প্রমাণীকরণ
ধরে নিচ্ছি আপনি ইতিমধ্যেই লগইন প্রক্রিয়া সম্পন্ন করেছেন।
gcloud auth login
gcloud auth application-default login
নিচে প্রকল্প নির্দিষ্ট করুন
gcloud config set project প্রকল্প_আইডি
প্রকল্প যাচাইকরণ নিচে দেখানো উপায়ে করুন
gcloud config get-value project
এবং নিচে দেখানো উপায়ে DB সংযোগের নাম যাচাই করুন
gcloud sql instances describe DB_ইনস্ট্যান্স_নাম | grep "^connectionName:" | awk '{print $2}'
cloud-sql-proxy এর মাধ্যমে সংযোগ করুন
এটি একটি যান্ত্রিক আলোচনা, তবে এই cloud-sql-proxy DB-কে প্রক্সি করে।
ধারণাটি হল, যদি আপনি একটি VM-এর মধ্যে বিদ্যমান DB-তে অ্যাক্সেস করার চেষ্টা করেন, তাহলে আপনাকে প্রথমে সেই OS-এ SSH করতে হবে এবং DB সার্ভারে লগইন প্রক্রিয়া সম্পন্ন করতে হবে, কিন্তু এই প্রক্সি ব্যবহার করে, এটি Cloud SQL-এ বিদ্যমান DB সার্ভারকে লোকালহোস্টে Listen করতে দেয়।
যদি DB পোর্ট খোলা থাকে, তাহলে আপনি সরাসরি সেই DB সার্ভারে সংযোগ করতে পারবেন বলে মনে হয়, তবে আমি মনে করি না এমন কোনো জায়গা আছে যেখানে DB সার্ভার এমন অরক্ষিত অবস্থায় সেট আপ করা হয়েছে।
সুতরাং, যদি আপনি যতটা সম্ভব সুরক্ষিত এবং সহজে সংযোগ করতে চান, তাহলে DB প্রক্সি করা উচিত।
তাহলে, আসুন আমরা এখন DB সংযোগের নামটি নির্দিষ্ট করি যা আমরা কিছুক্ষণ আগে যাচাই করেছিলাম।
cloud-sql-proxy --port 3306 DB_সংযোগ_নাম
উপরেরটি MySQL এর ক্ষেত্রে, তাই PostgreSQL ইত্যাদির জন্য একটি ভিন্ন পোর্ট নির্দিষ্ট করতে হবে এবং প্রয়োজনীয় বাইনারিও পরিবর্তিত হবে, তাই এখানে যথাযথ পরিবর্তন করার প্রয়োজন হতে পারে।
একবার সংযোগ প্রতিষ্ঠিত হলে, এটি সফলভাবে প্রক্সি করা হয়েছে, তাই এটিকে সেভাবেই রেখে অন্য একটি টার্মিনাল থেকে MySQL-এ সংযোগ করলেই হবে।
mysql --user="DB_ব্যবহারকারী" --password="DB_ব্যবহারকারীর_পাসওয়ার্ড" -h 127.0.0.1
তাহলে আবার দেখা হবে।
শুভেচ্ছা রইল।