MySQL-এ CREATE USER কোয়ারী চালালে ERROR 1396 (HY000): Operation CREATE USER failed এরর আসলে সাধারণত ইউজার ইতিমধ্যে বিদ্যমান থাকা বা হোস্ট মিসম্যাচের কারণে হয়। সঠিক পদ্ধতিতে ইউজার তৈরি ও যাচাই করার উপায় নিচে দেওয়া হলো।
সঠিকভাবে ইউজার তৈরি করা
mysql> CREATE USER 'Emma'@'localhost' IDENTIFIED BY 'emma_654';
আউটপুট: Query OK, 0 rows affected (0.00 sec)
সব ইউজার এবং হোস্ট তালিকা দেখানো
mysql> SELECT user, host FROM mysql.user;
আউটপুট (নতুন Emma ইউজার দেখা যাচ্ছে):
+------------------+-----------+ | user | host | +------------------+-----------+ | Bob | % | | Charlie | % | | Robert | % | | User2 | % | | mysql.infoschema | % | | mysql.session | % | | mysql.sys | % | | root | % | | @UserName@ | localhost | | Adam | localhost | | Adam Smith | localhost | | Chris | localhost | | David | localhost | | Emma | localhost | <-- নতুন ইউজার | Jace | localhost | | James | localhost | | John | localhost | | John Doe | localhost | | Michael | localhost | | Mike | localhost | | Robert | localhost | | User1 | localhost | | am | localhost | | hbstudent | localhost | | mysql.infoschema | localhost | | mysql.session | localhost | +------------------+-----------+ 26 rows in set (0.00 sec)
ERROR 1396 আসার কারণ এবং সমাধান
| কারণ | সমাধান |
|---|---|
| ইউজার ইতিমধ্যে আছে | পहলে DROP USER 'user'@'host'; চালান, তারপর CREATE USER |
| হোস্ট মিসম্যাচ (যেমন 'user'@'%' vs 'user'@'localhost') | সঠিক হোস্ট স্পেসিফাই করুন বা '%' ব্যবহার করুন |
| FLUSH PRIVILEGES না করা (পুরানো ভার্সনে) | MySQL 8.0+ এ অটো ফ্লাশ হয়, পুরানো ভার্সনে FLUSH PRIVILEGES; চালান |