MySQL পাসওয়ার্ড ব্যবস্থাপনা গাইড: কীভাবে পাসওয়ার্ড সেট, পরিবর্তন, রিসেট এবং সুরক্ষিত করবেন (Windows, Linux, Mac)

目次

১. ভূমিকা

MySQL পাসওয়ার্ড ব্যবস্থাপনার গুরুত্ব

MySQL বিশ্বব্যাপী ব্যাপকভাবে ব্যবহৃত একটি ডেটাবেস ম্যানেজমেন্ট সিস্টেম। তবে, এর নিরাপত্তা ব্যবস্থাপনার ভিত্তি হল সঠিক পাসওয়ার্ড কনফিগারেশন এবং প্রশাসন। যথাযথ পাসওয়ার্ড ব্যবস্থাপনা না করলে আপনি নিম্নলিখিত ঝুঁকিগুলোর সম্মুখীন হতে পারেন:

  • অননুমোদিত প্রবেশ : দুর্বল পাসওয়ার্ড আপনার সিস্টেমকে বাহ্যিক আক্রমণের জন্য দুর্বল করে তোলে।
  • ডেটা লিক : সংবেদনশীল তথ্য দুষ্ট ব্যবহারকারীদের দ্বারা প্রকাশ পেতে পারে।
  • সিস্টেম ট্যাম্পারিং : ডেটা মুছে ফেলা বা পরিবর্তন করা ওয়েবসাইট ও অ্যাপ্লিকেশনের স্বাভাবিক কার্যক্রমকে প্রভাবিত করতে পারে।

এই ঝুঁকিগুলো এড়াতে, শক্তিশালী পাসওয়ার্ড সেট করা এবং নিয়মিত পরিবর্তন করা অপরিহার্য। এই প্রবন্ধে আমরা MySQL পাসওয়ার্ড ব্যবস্থাপনার নিম্নলিখিত দিকগুলো বিশদভাবে ব্যাখ্যা করব:

নতুন ব্যবহারকারীর জন্য পাসওয়ার্ড কীভাবে সেট করবেন
বিদ্যমান ব্যবহারকারীর পাসওয়ার্ড কীভাবে পরিবর্তন করবেন
ভুলে যাওয়া পাসওয়ার্ড কীভাবে রিসেট করবেন
পাসওয়ার্ডের শক্তি কীভাবে যাচাই করবেন
সাধারণ ত্রুটি এবং সেগুলো কীভাবে সমাধান করবেন
নিরাপত্তা বাড়াতে সুপারিশকৃত সেটিংস

এই প্রবন্ধটি পড়ে আপনি MySQL পাসওয়ার্ড সঠিকভাবে পরিচালনা করার জন্য প্রয়োজনীয় জ্ঞান ও দক্ষতা অর্জন করবেন, তাই শেষ পর্যন্ত পড়তে ভুলবেন না।

২. MySQL পাসওয়ার্ড কীভাবে সেট ও পরিবর্তন করবেন

নতুন ব্যবহারকারী তৈরি এবং পাসওয়ার্ড সেট করা

এই অংশে নতুন ব্যবহারকারী তৈরি এবং MySQL-এ পাসওয়ার্ড সেট করার পদ্ধতি ব্যাখ্যা করা হয়েছে।

১. MySQL-এ লগইন করুন

প্রথমে MySQL অ্যাডমিনিস্ট্রেটর (যেমন root ব্যবহারকারী) হিসেবে লগইন করুন।

mysql -u root -p

-u root হল root ব্যবহারকারী হিসেবে লগইন করার অপশন, এবং -p একটি পাসওয়ার্ড প্রম্পট প্রদর্শন করে।

২. নতুন ব্যবহারকারী তৈরি এবং পাসওয়ার্ড সেট করুন

CREATE USER কমান্ড ব্যবহার করে নতুন ব্যবহারকারী তৈরি করুন এবং পাসওয়ার্ড সেট করুন।

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'secure_password';
  • 'newuser'@'localhost' : ব্যবহারকারীর নাম (newuser) এবং হোস্ট (localhost) নির্দিষ্ট করে, যেখান থেকে ব্যবহারকারী সংযোগ করতে পারবে।
  • 'secure_password' : সেট করতে চাওয়া পাসওয়ার্ড (নিশ্চিত করুন যে এটি শক্তিশালী)।

৩. উপযুক্ত অধিকার প্রদান করুন

নতুন ব্যবহারকারীকে ডেটাবেসের অধিকার প্রদান করতে হবে। উদাহরণস্বরূপ, সব অধিকার প্রদান করতে পারেন:

GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' WITH GRANT OPTION;
  • ALL PRIVILEGES : সব অধিকার প্রদান করে।
  • *.* : সব ডেটাবেস ও টেবিলের অ্যাক্সেস দেয়।
  • WITH GRANT OPTION : ব্যবহারকারীকে অন্য ব্যবহারকারীদের অধিকার প্রদান করার অনুমতি দেয়।

৪. অধিকার প্রয়োগ করুন

পরিবর্তনগুলি প্রয়োগ করতে FLUSH PRIVILEGES চালান।

FLUSH PRIVILEGES;

এখন আপনি সফলভাবে একটি নিরাপদ পাসওয়ার্ড এবং উপযুক্ত অধিকারসহ নতুন ব্যবহারকারী তৈরি করেছেন।

বিদ্যমান ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করা

এই অংশে বিদ্যমান MySQL ব্যবহারকারীর পাসওয়ার্ড কীভাবে পরিবর্তন করবেন তা ব্যাখ্যা করা হয়েছে।

১. MySQL-এ লগইন করুন

অ্যাডমিনিস্ট্রেটিভ অধিকার দিয়ে লগইন করুন।

mysql -u root -p

২. ALTER USER ব্যবহার করে পাসওয়ার্ড পরিবর্তন (MySQL 5.7 এবং পরবর্তী সংস্করণ)

ALTER USER 'existinguser'@'localhost' IDENTIFIED BY 'new_secure_password';
  • 'existinguser'@'localhost' : পরিবর্তন করতে চাওয়া ব্যবহারকারী ও হোস্ট।
  • 'new_secure_password' : নতুন পাসওয়ার্ড।

৩. SET PASSWORD ব্যবহার করে পাসওয়ার্ড পরিবর্তন (MySQL 5.6 এবং পূর্বের সংস্করণ)

SET PASSWORD FOR 'existinguser'@'localhost' = PASSWORD('new_secure_password');

PASSWORD() ফাংশন ব্যবহার করলে পাসওয়ার্ড সঠিকভাবে এনক্রিপ্টেড হয়ে সংরক্ষিত হয়।

৪. পরিবর্তনগুলি প্রয়োগ করুন

FLUSH PRIVILEGES; চালাতে ভুলবেন না।

FLUSH PRIVILEGES;

এখন আপনি এই পদ্ধতি ব্যবহার করে বিদ্যমান ব্যবহারকারীর পাসওয়ার্ড নিরাপদে পরিবর্তন করতে পারবেন।

৩. যদি আপনি MySQL পাসওয়ার্ড ভুলে যান তবে কীভাবে রিসেট করবেন

আপনি যদি আপনার MySQL পাসওয়ার্ড ভুলে যান, তবুও সঠিক পদ্ধতি অনুসরণ করে তা রিসেট করা সম্ভব। এই অংশে Windows, Linux, এবং Mac-এ পাসওয়ার্ড রিসেট করার পদ্ধতি ব্যাখ্যা করা হয়েছে।

Windows-এ MySQL পাসওয়ার্ড কীভাবে রিসেট করবেন


On Windows, a common approach to reset the MySQL root password is to use the skip-grant-tables option.

১. MySQL সার্ভিস বন্ধ করুন

প্রথমে, Windows-এ চলমান MySQL সার্ভিসটি বন্ধ করুন।

net stop mysql

বিকল্পভাবে, আপনি services.msc খুলে ম্যানুয়ালি MySQL সার্ভিস বন্ধ করতে পারেন।

২. mysqld --skip-grant-tables ব্যবহার করে MySQL চালু করুন

mysqld --skip-grant-tables --skip-networking

৩. MySQL-এ লগইন করুন

mysql -u root

৪. নতুন পাসওয়ার্ড সেট করুন

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';

অথবা, MySQL 5.6 এবং তার আগের সংস্করণের জন্য, SET PASSWORD ব্যবহার করুন।

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_secure_password');

৫. MySQL পুনরায় চালু করুন

net stop mysql
net start mysql

Linux / Mac-এ MySQL পাসওয়ার্ড রিসেট করার পদ্ধতি

১. MySQL সার্ভিস বন্ধ করুন

sudo systemctl stop mysql

২. --skip-grant-tables মোডে MySQL চালু করুন

sudo mysqld_safe --skip-grant-tables --skip-networking &

৩. MySQL-এ লগইন করুন

mysql -u root

৪. পাসওয়ার্ড রিসেট করুন

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';

৫. MySQL পুনরায় চালু করুন

sudo systemctl start mysql

MySQL 8.0 এবং পরবর্তী সংস্করণে পাসওয়ার্ড রিসেট পদ্ধতির পরিবর্তন

MySQL 8.0-এ, পাসওয়ার্ড ম্যানেজমেন্ট মেকানিজম পরিবর্তিত হয়েছে, তাই আপনাকে নিম্নলিখিত বিষয়টি লক্ষ্য করা উচিত।

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_secure_password';

এটি প্রয়োজনের সময় লিগেসি পাসওয়ার্ড অথেনটিকেশন পদ্ধতি ব্যবহার চালিয়ে যাওয়া সম্ভব করে।

৪. MySQL পাসওয়ার্ড পরিবর্তনের সময় সাধারণ ত্রুটি সমাধান

MySQL পাসওয়ার্ড পরিবর্তনের সময় আপনি ত্রুটির সম্মুখীন হতে পারেন। এই বিভাগে সাধারণ ত্রুটির কারণ এবং সমাধান ব্যাখ্যা করা হয়েছে।

ত্রুটি 1045 (28000): ব্যবহারকারীর জন্য অ্যাক্সেস অস্বীকৃত

ত্রুটির কারণ

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

MySQL-এ লগইন করার সময় এই ত্রুটি ঘটে যদি পাসওয়ার্ড ভুল হয় অথবা অনুমতি অপর্যাপ্ত হয়।

সমাধান

  1. আপনি যে পাসওয়ার্ডটি দিয়েছেন তা পুনরায় যাচাই করুন
  2. সঠিক ব্যবহারকারীর নাম এবং হোস্ট নির্দিষ্ট করুন
    SELECT User, Host FROM mysql.user;
    
  1. পাসওয়ার্ড রিসেট করুন (পাসওয়ার্ড রিসেট বিভাগ দেখুন)
  2. অনুমতিগুলি সঠিকভাবে কনফিগার করুন
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

ত্রুটি 1133: ইউজার টেবিলে কোনো মিলযুক্ত রো পাওয়া যায়নি

ত্রুটির কারণ

ERROR 1133: Can't find any matching row in the user table

এই ত্রুটি ঘটে যখন নির্দিষ্ট ব্যবহারকারী বিদ্যমান নয়

সমাধান

  1. বর্তমান ব্যবহারকারী তালিকা পরীক্ষা করুন
    SELECT User, Host FROM mysql.user;
    
  1. ব্যবহারকারী পুনরায় তৈরি করুন
    CREATE USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
    
  1. সঠিক হোস্ট নির্দিষ্ট করুন (localhost অথবা % যথাযথভাবে ব্যবহার করুন)

ত্রুটি 1820: আপনাকে আপনার পাসওয়ার্ড রিসেট করতে হবে

ত্রুটির কারণ

ERROR 1820: You must reset your password using ALTER USER statement before executing this statement.

এই ত্রুটি ঘটে যখন পাসওয়ার্ডের মেয়াদ শেষ হয়েছে

সমাধান

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';

পাসওয়ার্ডের মেয়াদ শেষ হওয়া নিষ্ক্রিয় করতে:

SET GLOBAL default_password_lifetime = 0;

ত্রুটি 2059: প্লাগইন caching_sha2_password লোড করা যায়নি

ত্রুটির কারণ

ERROR 2059: Plugin caching_sha2_password could not be loaded

MySQL 8.0 এবং পরবর্তী সংস্করণে, ডিফল্ট অথেনটিকেশন প্লাগইন caching_sha2_password-এ পরিবর্তিত হয়েছে, যা কিছু ক্লায়েন্টে ত্রুটি সৃষ্টি করতে পারে।

সমাধান

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_secure_password';

অথবা MySQL কনফিগারেশন ফাইল (my.cnf অথবা my.ini) এ নিম্নলিখিতটি যোগ করুন এবং MySQL পুনরায় চালু করুন।

[mysqld]
default_authentication_plugin=mysql_native_password

MySQL পুনরায় চালু করুন:

sudo systemctl restart mysql

5. MySQL নিরাপত্তা শক্তিশালীকরণ এবং সুপারিশকৃত সেটিংস

MySQL নিরাপত্তা শক্তিশালী করা ডেটাবেসের নিরাপত্তা উন্নত করতে এবং অননুমোদিত প্রবেশ ও ডেটা লঙ্ঘন প্রতিরোধ করার জন্য অপরিহার্য। এই বিভাগে MySQL নিরাপত্তা বাড়ানোর জন্য সুপারিশকৃত কনফিগারেশন উপস্থাপন করা হয়েছে।

শক্তিশালী পাসওয়ার্ড সেট করুন

MySQL-এ দুর্বল পাসওয়ার্ড ব্যবহার করলে আপনার সিস্টেম আক্রমণকারীদের জন্য সহজ লক্ষ্য হয়ে যায়। পাসওয়ার্ডের শক্তি বৃদ্ধি করার জন্য সেটিংস কনফিগার করুন।

পাসওয়ার্ড নীতি সক্রিয় করুন

বর্তমান পাসওয়ার্ড নীতি পরীক্ষা করুন:

SHOW VARIABLES LIKE 'validate_password%';

একটি শক্তিশালী পাসওয়ার্ড নীতি কনফিগার করুন:

SET GLOBAL validate_password.policy = STRONG;
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.mixed_case_count = 1;
SET GLOBAL validate_password.number_count = 1;
SET GLOBAL validate_password.special_char_count = 1;

পাসওয়ার্ড মেয়াদ শেষ হওয়া সেট করুন

নিয়মিত পাসওয়ার্ড পরিবর্তন করা নিরাপত্তা বাড়ায়।

বর্তমান পাসওয়ার্ড মেয়াদ শেষ হওয়ার সেটিং পরীক্ষা করুন:

SHOW VARIABLES LIKE 'default_password_lifetime';

পাসওয়ার্ড মেয়াদ শেষ হওয়া ৯০ দিন সেট করুন:

SET GLOBAL default_password_lifetime = 90;

root ব্যবহারকারীর নিরাপত্তা শক্তিশালী করুন

root ব্যবহারকারীর জন্য রিমোট অ্যাক্সেস সীমাবদ্ধ করুন

root ব্যবহারকারীর বর্তমান হোস্ট কনফিগারেশন পরীক্ষা করুন:

SELECT User, Host FROM mysql.user WHERE User = 'root';

root-এর রিমোট অ্যাক্সেস নিষ্ক্রিয় করুন:

UPDATE mysql.user SET Host='localhost' WHERE User='root';
FLUSH PRIVILEGES;

বিকল্প অ্যাডমিন অ্যাকাউন্ট তৈরি করুন এবং root নিষ্ক্রিয় করুন

CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' WITH GRANT OPTION;
RENAME USER 'root'@'localhost' TO 'disabled_root'@'localhost';
FLUSH PRIVILEGES;

MySQL রিমোট সংযোগ সীমাবদ্ধ করুন

কনফিগারেশন ফাইল (my.cnf অথবা my.ini) সম্পাদনা করুন:

[mysqld]
bind-address = 127.0.0.1

Linux-এ ফায়ারওয়াল কনফিগার করুন:

sudo ufw deny 3306

শুধুমাত্র নির্দিষ্ট একটি IP ঠিকানা অনুমোদন করুন:

sudo ufw allow from 192.168.1.100 to any port 3306

অপ্রয়োজনীয় অ্যাকাউন্ট এবং অধিকার মুছে ফেলুন

বর্তমান ব্যবহারকারী তালিকা পরীক্ষা করুন:

SELECT User, Host FROM mysql.user;

অনামী ব্যবহারকারীদের মুছে ফেলুন:

DELETE FROM mysql.user WHERE User='';
FLUSH PRIVILEGES;

অপ্রয়োজনীয় টেস্ট ডাটাবেস মুছে ফেলুন:

DROP DATABASE test;
FLUSH PRIVILEGES;

MySQL লগিং সক্রিয় করুন

এরর লগ সক্রিয় করুন:

[mysqld]
log_error = /var/log/mysql/error.log

সাধারণ কুয়েরি লগ সক্রিয় করুন:

general_log = 1
general_log_file = /var/log/mysql/general.log

MySQL পুনরায় চালু করুন:

sudo systemctl restart mysql

6. প্রায়শই জিজ্ঞাসিত প্রশ্ন (FAQ)

এই বিভাগে MySQL পাসওয়ার্ড সেটআপ, পরিবর্তন এবং রিসেট সংক্রান্ত সাধারণ প্রশ্ন ও সমাধান সংক্ষেপে উপস্থাপন করা হয়েছে।

প্রশ্ন ১: ভুলে যাওয়া MySQL root পাসওয়ার্ড পুনরুদ্ধার করার সবচেয়ে সহজ উপায় কী?

সমাধান

  1. MySQL বন্ধ করুন
    sudo systemctl stop mysql
    
  1. skip-grant-tables মোডে MySQL চালু করুন
    sudo mysqld_safe --skip-grant-tables --skip-networking &
    
  1. MySQL-এ লগইন করুন
    mysql -u root
    
  1. নতুন পাসওয়ার্ড সেট করুন
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';
    
  1. MySQL পুনরায় চালু করুন
    sudo systemctl restart mysql
    

প্রশ্ন ২: যদি আমি “ERROR 1045 (28000): Access denied for user” দেখি, তাহলে কী করা উচিত?

সমাধান

  1. আপনি যে পাসওয়ার্ডটি প্রবেশ করেছেন তা যাচাই করুন
    mysql -u root -p
    
  1. ব্যবহারকারীটি আছে কিনা নিশ্চিত করুন
    SELECT User, Host FROM mysql.user;
    
  1. পাসওয়ার্ড রিসেট করুন (পূর্বের নির্দেশনা দেখুন)
  2. উপযুক্ত অধিকার প্রদান করুন
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

প্রশ্ন ৩: পাসওয়ার্ড পরিবর্তনের সময় MySQL 5.6 এবং 8.0 এর মধ্যে কোনো পার্থক্য আছে কি?

MySQL 5.6 এবং পূর্বের সংস্করণে পাসওয়ার্ড পরিবর্তন

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_secure_password');

MySQL 8.0 এবং পরবর্তী সংস্করণে পাসওয়ার্ড পরিবর্তন

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_secure_password';

MySQL 8.0-এ, যেহেতু caching_sha2_password ডিফল্ট প্রমাণীকরণ পদ্ধতি, পুরনো ক্লায়েন্টগুলোকে নিম্নলিখিত সমন্বয় প্রয়োজন হতে পারে:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_secure_password';

Q4: আমি কীভাবে MySQL পাসওয়ার্ড নীতি শক্তিশালী করতে পারি?

শক্তিশালী পাসওয়ার্ড নীতি কনফিগার করুন

SET GLOBAL validate_password.policy = STRONG;
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.mixed_case_count = 1;
SET GLOBAL validate_password.number_count = 1;
SET GLOBAL validate_password.special_char_count = 1;

Q5: MySQL রুট ইউজার নিষ্ক্রিয় করা নিরাপদ কি?

সমাধান

  1. একটি প্রশাসক অ্যাকাউন্ট তৈরি করুন
    CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'secure_password';
    GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'localhost' WITH GRANT OPTION;
    
  1. রুট অ্যাকাউন্ট নিষ্ক্রিয় করুন
    RENAME USER 'root'@'localhost' TO 'disabled_root'@'localhost';
    FLUSH PRIVILEGES;
    

Q6: MySQL পাসওয়ার্ড নিরাপদে পরিচালনা করার জন্য কোনো টুল আছে কি?

সমাধান

  1. mysql_config_editor (আধিকারিক MySQL টুল)
    mysql_config_editor set --login-path=local --host=localhost --user=root --password
    

এটি আপনাকে পাসওয়ার্ড স্পষ্টভাবে টাইপ না করেই লগইন করতে দেয়।

mysql --login-path=local
  1. পাসওয়ার্ড ম্যানেজার (Bitwarden, 1Password, KeePass, ইত্যাদি)
  • শক্তিশালী পাসওয়ার্ড তৈরি এবং নিরাপদে সংরক্ষণের জন্য উপযোগী।

Q7: আমি কি MySQL পাসওয়ার্ড পরিবর্তন লগ করতে পারি?

সমাধান

General Query Log সক্রিয় করুন

[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log

MySQL পুনরায় চালু করুন:

sudo systemctl restart mysql

7. উপসংহার

এই প্রবন্ধে MySQL পাসওয়ার্ড ব্যবস্থাপনার মৌলিক থেকে উন্নত কৌশল পর্যন্ত সবকিছু ব্যাখ্যা করা হয়েছে। নিচে মূল পয়েন্টগুলোর সংক্ষিপ্তসার এবং MySQL পাসওয়ার্ড সঠিকভাবে পরিচালনার জন্য একটি চেকলিস্ট দেওয়া হয়েছে।

MySQL পাসওয়ার্ড ব্যবস্থাপনার মূল পয়েন্টগুলো

সঠিক পাসওয়ার্ড কনফিগারেশন এবং ব্যবস্থাপনা নিরাপত্তার ভিত্তি
নতুন ব্যবহারকারী তৈরি করার সময় শক্তিশালী পাসওয়ার্ড নির্ধারণ করুন
নিয়মিত পাসওয়ার্ড পরিবর্তন করুন এবং মেয়াদ শেষের নীতি কনফিগার করুন
ভুলে যাওয়া পাসওয়ার্ডের পুনরুদ্ধার পদ্ধতি বুঝুন
পাসওয়ার্ড পরিবর্তনের সময় ত্রুটি সঠিকভাবে সমাধান করুন
নিরাপত্তা শক্তিশালী করার জন্য রিমোট অ্যাক্সেস এবং রুট ইউজার ব্যবস্থাপনা অপ্টিমাইজ করুন
পাসওয়ার্ড-সম্পর্কিত কার্যকলাপ ট্র্যাক করার জন্য লগিং সক্রিয় করুন

MySQL পাসওয়ার্ড ব্যবস্থাপনা চেকলিস্ট

Checklist ItemStatus
Have you set a strong root password for MySQL?✅ / ❌
Do you use the CREATE USER command when creating new users?✅ / ❌
Have you enabled the validate_password plugin and configured a strong password policy?✅ / ❌
Do you regularly change passwords and set expiration policies?✅ / ❌
Have you disabled remote access for the root user?✅ / ❌
Have you removed unnecessary or anonymous accounts?✅ / ❌
Do you understand how to reset passwords using skip-grant-tables mode?✅ / ❌
Do you understand how to resolve ERROR 1045 and ERROR 1820 during password changes?✅ / ❌
Have you enabled MySQL logs (general_log and error_log)?✅ / ❌

প্রবন্ধটি পড়ার পর সুপারিশকৃত পরবর্তী পদক্ষেপগুলো

  1. আপনার বর্তমান পাসওয়ার্ড নীতি পর্যালোচনা করুন এবং প্রয়োজনে শক্তিশালী করুন
    SHOW VARIABLES LIKE 'validate_password%';
    SET GLOBAL validate_password.policy = STRONG;
    SET GLOBAL validate_password.length = 12;
    
  1. অপ্রয়োজনীয় অ্যাকাউন্টগুলো মুছে ফেলুন
    DELETE FROM mysql.user WHERE User='';
    DROP DATABASE test;
    FLUSH PRIVILEGES;
    
  1. রুট ইউজারের রিমোট অ্যাক্সেস সীমাবদ্ধ করুন
    UPDATE mysql.user SET Host='localhost' WHERE User='root';
    FLUSH PRIVILEGES;
    
  1. নিয়মিত পাসওয়ার্ড মেয়াদ শেষ হওয়া কনফিগার করুন
    SET GLOBAL default_password_lifetime = 90;
    
  1. মনিটরিংয়ের জন্য লগিং সক্রিয় করুন
    [mysqld]
    log_error = /var/log/mysql/error.log
    general_log = 1
    general_log_file = /var/log/mysql/general.log
    

MySQL পুনরায় চালু করুন:

sudo systemctl restart mysql

অধিক শিখনের জন্য সম্পর্কিত প্রবন্ধগুলো

📌 MySQL ইউজার প্রিভিলেজ ম্যানেজমেন্টের বিস্তারিত গাইড
📌 MySQL ব্যাকআপ এবং রিস্টোর প্রক্রিয়া
📌 MySQL ডাটাবেস কীভাবে অপ্টিমাইজ করবেন
📌 বাহ্যিক প্রমাণীকরণ (LDAP বা OAuth) দিয়ে MySQL কনফিগার করা

চূড়ান্ত মন্তব্য

MySQL পাসওয়ার্ড ম্যানেজমেন্ট হল ডেটাবেস নিরাপত্তা রক্ষার জন্য প্রয়োজনীয় জ্ঞান
এই গাইডে কভার করা অনুশীলনগুলি প্রয়োগ করুন এবং নিরাপদ ডেটাবেস ম্যানেজমেন্ট নিশ্চিত করুন! 💪