আপনি লিনাক্স সার্ভারের কমান্ড লাইন থেকে মাইএসকিউএল শংসাপত্রগুলি কীভাবে পরীক্ষা করেন?
আপনি লিনাক্স সার্ভারের কমান্ড লাইন থেকে মাইএসকিউএল শংসাপত্রগুলি কীভাবে পরীক্ষা করেন?
উত্তর:
@ ফিলের উত্তর এবং @ মিঃ ব্রাউনস্টোন এর উত্তরটি আপনার প্রশ্নের পক্ষে যথেষ্ট, সুতরাং তাদের উভয়ের জন্যই +1 করা উচিত।
নিম্নলিখিতগুলির জন্য, ধরে নেওয়া যাক আপনি ব্যবহারকারীর নাম দিয়ে লগ ইন করছেন myuser
একবার আপনি mysql এর সাথে সংযুক্ত হয়ে গেলে আপনার নিম্নলিখিত কোয়েরিটি চালানো উচিত:
SELECT USER(),CURRENT_USER();
কখনও কখনও, তারা পৃথক হয়। এটি আপনাকে মাইএসকিএল-এ লগইন করার অনুমতি দেয় কেন তা অন্তর্দৃষ্টি দিতে পারে।
আপনাকে চালানোর জন্য এখানে আরও একটি প্রশ্নের প্রয়োজন রয়েছে:
SELECT CONCAT('''',user,'''@''',host,'''') dbuser,password
FROM mysql.user WHERE user='myuser';
এটি আপনাকে যেভাবে আপনাকে লগইন করার অনুমতি দেওয়া হয়েছে তা প্রদর্শন করবে myuser
।
যদি আপনি দেখতে পান 'myuser'@'localhost'
তবে আপনি ডিবি সার্ভারের মধ্যে থেকে প্রমাণীকরণ করতে পারবেন।
আপনি যদি দেখতে 'myuser'@'127.0.0.1'
এবং না দেখতে 'myuser'@'localhost'
পান তবে আপনি আবার ডিবি সার্ভারের মধ্যে থেকে প্রমাণীকরণ করতে পারবেন তবে আপনাকে অবশ্যই --protocol=tcp
কমান্ড লাইন থেকে নির্দিষ্ট করতে হবে ।
যদি আপনি দেখতে 'myuser'@'%'
পান তবে যে কোনও সার্ভার থেকে দূরবর্তী লগইনগুলি করতে পারেন।
যদি আপনি দেখতে পান 'myuse'r@'10.20.30,%'
তবে আপনি কেবল 10.20.30% নেটব্লক থেকে দূরবর্তী লগইনগুলি করতে পারেন।
একবার আপনি যদি দেখেন যে 'মাইএসকিএল.ইউউসার' আপনার ব্যবহারকারীর জন্য কী আছে, আপনি মাইউজারকে এক উপায়ে লগগিন থেকে অনুমতি বা সীমাবদ্ধ করতে চাইতে পারেন অন্যভাবে নয়।
আপনি কেবল চেক করতে চান যদি পাসওয়ার্ড myuser
হল whateverpassword
, আপনি নিম্নলিখিতগুলি করতে পারেন:
SELECT COUNT(1) Password_is_OK FROM mysql.user
WHERE user='myuser'
AND password=PASSWORD('whateverpassword');
আপনি নিম্নলিখিত কমান্ড লাইন থেকে পরীক্ষা করতে পারেন:
PASSWORDISOK=`mysql -uroot -p... -ANe"SELECT COUNT(1) Password_is_OK FROM mysql.user WHERE user='myuser' AND password=PASSWORD('whateverpassword')"`
আপনি যদি না হন root
এবং কেবল মাইউসারটি পরীক্ষা করতে চান তবে আপনি এটি করতে পারেন:
PASSWORDISOK=`mysqladmin -umyuser -pwhateverpassword ping | grep -c "mysqld is alive"`
আপনি যদি 1 পান তবে মাইউজারের জন্য পাসওয়ার্ডটি ভাল হিসাবে যাচাই করা হবে।
mysql -h host -u user -p<whatever> -e"quit"
এটি আপনাকে প্রোগ্রামটিমে সার্ভারে কোয়েরি প্রেরণের জন্য একই সংযোগের স্ট্রিংটি ব্যবহার করতে দেয়। আপনি || exit 1
অবৈধ যুক্তি দিয়ে স্বয়ংক্রিয় প্রস্থান করতে প্রান্তে যুক্ত করতে পারেন । আপনি /dev/null
স্বয়ংক্রিয়ভাবে তৈরি হওয়া মাইএসকিউএল ত্রুটি বার্তাটি পছন্দ না করলে আপনি স্ট্যাডারকেও পুনঃনির্দেশ করতে চাইতে পারেন।
আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন (ধরে নিবেন যে আপনার প্যাথএইচএসসিএল স্থাপন করেছেন):
mysql -h হোস্ট -u ইউজার-পি
কেবল সঠিক মান সহ হোস্ট এবং ব্যবহারকারীকে প্রতিস্থাপন করুন এবং তারপরে আপনাকে আপনার পাসওয়ার্ডের জন্য অনুরোধ জানানো উচিত।