লিনাক্স কমান্ড লাইন থেকে মাইএসকিউএল শংসাপত্র পরীক্ষা?


17

আপনি লিনাক্স সার্ভারের কমান্ড লাইন থেকে মাইএসকিউএল শংসাপত্রগুলি কীভাবে পরীক্ষা করেন?

উত্তর:


5

@ ফিলের উত্তর এবং @ মিঃ ব্রাউনস্টোন এর উত্তরটি আপনার প্রশ্নের পক্ষে যথেষ্ট, সুতরাং তাদের উভয়ের জন্যই +1 করা উচিত।

নিম্নলিখিতগুলির জন্য, ধরে নেওয়া যাক আপনি ব্যবহারকারীর নাম দিয়ে লগ ইন করছেন myuser

একবার আপনি mysql এর সাথে সংযুক্ত হয়ে গেলে আপনার নিম্নলিখিত কোয়েরিটি চালানো উচিত:

SELECT USER(),CURRENT_USER();
  • ব্যবহারকারী () কীভাবে আপনি মাইএসকিউএলে প্রমাণীকরণের চেষ্টা করেছিলেন তা জানিয়েছে 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 পান তবে মাইউজারের জন্য পাসওয়ার্ডটি ভাল হিসাবে যাচাই করা হবে।


13
mysql -h host -u user -p<whatever> -e"quit"

এটি আপনাকে প্রোগ্রামটিমে সার্ভারে কোয়েরি প্রেরণের জন্য একই সংযোগের স্ট্রিংটি ব্যবহার করতে দেয়। আপনি || exit 1অবৈধ যুক্তি দিয়ে স্বয়ংক্রিয় প্রস্থান করতে প্রান্তে যুক্ত করতে পারেন । আপনি /dev/nullস্বয়ংক্রিয়ভাবে তৈরি হওয়া মাইএসকিউএল ত্রুটি বার্তাটি পছন্দ না করলে আপনি স্ট্যাডারকেও পুনঃনির্দেশ করতে চাইতে পারেন।


6

আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন (ধরে নিবেন যে আপনার প্যাথএইচএসসিএল স্থাপন করেছেন):

mysql -h হোস্ট -u ইউজার-পি

কেবল সঠিক মান সহ হোস্ট এবং ব্যবহারকারীকে প্রতিস্থাপন করুন এবং তারপরে আপনাকে আপনার পাসওয়ার্ডের জন্য অনুরোধ জানানো উচিত।


2
আমি প্রোগ্রামগতভাবে পরীক্ষা করতে চাই। সত্য বা মিথ্যা প্রত্যাবর্তনের মতো কিছু Like
জ্যাক উইলসন

2
mysql --user=user_name --password=your_password dbname

আপনার প্রশ্নটি কি এতো সহজ, বা আপনার পরীক্ষা করার জন্য কোনও নির্দিষ্ট মামলা রয়েছে?

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.