ডাটাবেস কানেকশন এরর হচ্ছে ওয়ার্ডপ্রেস এর খুবই সাধারণ একটি সমস্যা। ডেভেলপারদের এই সমস্যায় প্রায়ই পড়তে হয়। এক্সপার্ট ডেভেলপাররা এটিকে কোন সমস্যা মনে না করলেও নতুনদের কাছে এটি খুবই জটিল একটি কেস মনে হয়। এই সমস্যার কারনে ওয়ার্ডপ্রেস এর ড্যাশবোর্ড বা ফ্রন্ট এন্ড এর কিছুই এক্সেস করা যায় না। তাই সমস্যা বের করতেও নতুনদের অনেক বেগ পেতে হয়।
এই সমস্যার মূল কারণ হচ্ছে আমাদের ওয়েবসাইট তার ডাটাবেজ এর সাথে যুক্ত হতে পারছে না। এর অনেকগুলো কারণ থাকতে পারে। যেমন,
১/ ডাটাবেজ এর ইউজারনেম পাসওয়ার্ড ভুল
২/ ইউজারনেম পাসওয়ার্ড সঠিক কিন্তু, সেই ইউজারকে ডাটাবেজ এর এক্সেস (রিড, রাইট ইত্যাদি) দেয়া নেই
৩/ ডাটাবেজ নেই বা কোন কারনে ইন্সটল হয় নি
৪/ ডাটাবেজ করাপ্টেড
৫/ হোস্টিং বা সার্ভার প্রবলেম
[নোটঃ আপনার সমস্যাটি যদি ডাটাবেজে না হয়ে এরকম হয় there has been a critical error on your website হয়, তাহলে এই লিংকে ক্লিক করে সমাধান করে নিন]
ওয়ার্ডপ্রেস এর ডাটাবেজ কানেকশন সমস্যা কিভাবে সমাধান করবো?
প্রথমত, ফ্রেশ ওয়ার্ডপ্রেস ইনস্টল করলে আমরা যদি softaculous এর ওয়ান-ক্লিক ইনস্টলার ইউজ করি, তাহলে এই ধরনের সমস্যা হওয়ার সম্ভাবনা অনেক কম। যদি আমরা নিরাপত্তাজনিত কারনে ম্যানুয়ালি ওয়ার্ডপ্রেস ইনস্টল করি, তখন এই সমস্যা হতে পারে। এছাড়াও, অন্য সার্ভার থেকে কিংবা লোকালহোস্ট থেকে সাইট মাইগ্রেট করে নিয়ে আসলেও এই সমস্যা হতে পারে।
প্রথমত আমাদের দেখতে হবে, ডাটাবেজ ইউজারনেম পাসওয়ার্ড ঠিক আছে কি না। সিপ্যানেল থেকে ফাইল ম্যানেজারে গিয়ে public_html বা রুট ডিরেক্টরি থেকে wp-config.php ফাইলটিতে রাইট বাটন দিয়ে edit এ ক্লিক করবো।
সেখান থেকে এই ৩ টি লাইন আলাদাভাবে খুজে বের করবো,
define(‘DB_NAME’, ‘xxxxxx’);
define(‘DB_USER’, ‘xxxxxx’);
define(‘DB_PASSWORD’, ‘xxxxxxxxx’);
এখানে দেখবো, আমার নতুন সার্ভারে যে নামে ডাটাবেজ এবং ইউজার পাসওয়ার্ড আছে সেটা ঠিকভাবে দেয়া আছে কি না। অনেক ক্ষেত্রে ডাটাবেজ প্রিফিক্স ভুল হয়। কিংবা লোকালে ইনস্টল করলে ইউজারনেম root এবং পাসওয়ার্ড খালি থেকে যায়।
ডাটাবেজের নাম ঠিক আছে কি না সেটা চেক করবো সিপ্যানেল থেকে phpMyAdmin এ গিয়ে অথবা, MySQL® Databases অপশনে গিয়ে।
MySQL® Databases এর অধীনে কারেন্ট ডাটাবেজ অপশনে দেখা যাবে ডাটাবেজের নামঃ
এবার কারেন্ট ইউজারস অপশনে গেলে ইউজার নেম দেখতে পাবেন।
পাসওয়ার্ড যদি মনে না থাকে, অথবা পাসওয়ার্ড নিয়ে দ্বিধা থাকে, তাহলে এই Changle Password অপশন থেকে পাসওয়ার্ডটি চেঞ্জ করে দেবেন।
এরপর আবার প্রথম স্টেপ এ wp-config.php ফাইলে গিয়ে define(‘DB_PASSWORD’, ‘xxxxxxxxx’); এই লাইনে xxxxxxxxx এর পরিবর্তে আপনার এই মাত্র দেয়া নতুন পাসওয়ার্ডটি দিয়ে সেভ করবেন।
এবার এড ইউজার অপশন থেকে এই ডাটাবেজে এই ইউজারকে এক্সেস দিয়ে দেবেন (যদি না দেয়া থাকে)
পরের স্টেপে All Privileges এ ক্লিক করে সম্পূর্ণ এক্সেস দিয়ে দিতে হবেঃ
এভাবেও না হলে আপনাকে চেক করতে হবে যে, আপনার সার্ভার কি ডাটাবেজ কে এক্সেস করতে পারছে কি না। রুট ফোল্ডারে একটি ফাইল তৈরি করুন checkmydb.php নামে। সেই ফাইল এডিট করে ভেতরে এই কোডটা দিয়ে দিন,
$test = mysqli_connect('localhost', 'db_user', 'db_password');
if (!$test) {
die('MySQL Error: ' . mysqli_error());
}
echo 'Database connection is working properly!';
mysqli_close($testConnection);
এখানে db_user এর জায়গায় আপনার ডাটাবেজ ইউজারনেম এবং db_password এর জায়গায় আপনার সেট করা পাসওয়ার্ড দিয়ে সেভ করুন। এবার আপনার ওয়েবসাইট ডোমেইনের সাথে স্ল্যাস দিয়ে checkmydb.php লিখে ব্রাউজ করুন। যেমন, pentanikit.com/checkmydb.php এরকমভাবে। যদি MySQL Error: Access denied এরকম কিছু পান তাহলে বুঝবেন, ডাটাবেজে এখনো সমস্যা আছে। আর যদি Database connection is working properly! লেখা পান, তাহলে বুঝবেন উপরের স্টেপ ওকে আছে। সমস্যা অন্য জায়গায়
ডাটাবেজ রিপেয়ার করে ট্রাই করতে পারেন।
wp-config.php ফাইলে এই কোডটা যুক্ত করে দিনঃ
define('WP_ALLOW_REPAIR', true);
এভাবেঃ
এবার আপনার ডোমেইন লিংক এর সাথে /wp-admin/maint/repair.php এই অংশটি যুক্ত করে দিয়ে ব্রাউজ করুন। এভাবেঃ https://pentanikit.com/wp-admin/maint/repair.php
রিপেয়ার ডাটাবেজে ক্লিক করে দেখুন।
আরো যে সমাধানগুলো ট্রাই করা যেতে পারে,
১/ ফ্রেশ একটি ওয়ার্ডপ্রেস ডাউনলোড করে, কোর ফাইল ফোল্ডার গুলো রিপ্লেস করে দিয়ে দেখতে পারেন।
২/ ক্যাশিং এর কোন প্লাগিন ব্যাবহার করলে সেটা plugins ফোল্ডার থেকে সাময়িক rename করে রাখতে পারেন। আর cloudflare এর ssl ব্যাবহার করে থাকলে সেখানে লগ ইন করে purge cache করে দেখতে পারেন।
৩/ অন্য ডিভাইজ থেকে (যেমন মোবাইল) ব্রাউজ করে দেখতে পারেন আলাদা মোবাইল ডাটা দিয়ে (সেম ওয়াইফাই দিয়ে না) যদি ব্রাউজ করা যায়। তাহলে বুঝবেন DNS Cache ইস্যু। তখন আপনার ব্রডব্যান্ড (ISP) প্রোভাইডারকে কল দিয়ে ডিএনএস ক্যাশ ক্লিয়ার করে দিতে বলবেন।
৪/ পুরাতন কোন ব্যাকআপ ডাউনলোড করা থাকলে সেটা ইন্সটল দিতে পারেন। অথবা হোস্টিং এ যদি অটো ব্যাকাপ অপশন থাকে সেখান থেকে কয়েক দিন আগের একটি তারিখ সিলেক্ট করে Restore করতে পারেন।
উপরের কোন সমাধান যদি কাজ না করে, তাহলে লাস্ট অপশন হিসেবে আপনার হোস্টিং প্রোভাইডার এর সাথে যোগাযোগ করতে পারেন। যদি কোন সার্ভার ইস্যু থেকে থাকে, তারা সেটা ফিক্স করে দেবে।
পোষ্ট সোর্সঃ WordPress Solution