আমি কীভাবে মাইএসকিউএল থেকে ক্লায়েন্টদের সংযোগ বিচ্ছিন্ন করতে পারি?


9

মাইএসকিউএল থেকে প্রদত্ত ব্যবহারকারীর নাম দিয়ে সমস্ত ক্লায়েন্টকে সংযোগ বিচ্ছিন্ন করার জন্য আমার একটি দক্ষ উপায় প্রয়োজন। আমি ব্যবহারকারীর পাসওয়ার্ড পরিবর্তন করার বিষয়ে ভেবেছিলাম তবে আমি মনে করি যে সংযোগটি তৈরি হওয়ার পরে কেবল এটি পরীক্ষা করা হবে।

ধারনা?

উত্তর:


7

আপনি নীচে "এসকিউএল থেকে এসকিউএল" পদ্ধতিটি ব্যবহার করতে পারেন (প্রয়োজন অনুসারে মাইএসকিএল ক্লায়েন্টকে অতিরিক্ত সংযোগ বিকল্পগুলি দিয়ে দিন):

shell> mysql -NBe "SELECT CONCAT('KILL ', id, ';') FROM information_schema.processlist WHERE user = 'some_username';" | mysql -vv

দ্রষ্টব্য: এটি মাইএসকিউএল 5.1 এবং 5.5 এর সাথে কাজ করে। পুরানো মাইএসকিউএল সংস্করণগুলির জন্য এটি আলাদাভাবে প্রয়োগ করতে হবে কারণ তথ্য_সেমায় প্রসেসলিস্ট সারণী নেই।

বিকল্পগুলি ব্যবহৃত:

-N means that you do not want to get column names back.
-B puts it into batch mode, so that you do not get MySQL's table layout.
-e executes the following statement.
-v controls the verbosity, could be used up to three times.

এটি কীভাবে কাজ করে তার ব্যাখ্যা:

প্রথমে কেআইএলএল বিবৃতি আইডি সহ উত্পন্ন হয়।

shell> mysql -NBe "SELECT CONCAT('KILL ', id, ';') FROM information_schema.processlist WHERE user = 'some_username';"

নমুনা আউটপুট:

KILL 1061;
KILL 1059;
KILL 1057;

তারপরে সেই বিবৃতি কার্যকর করা হয়।

shell> mysql -NBe "SELECT CONCAT('KILL ', id, ';') FROM information_schema.processlist WHERE user = 'some_username';" | mysql -vv

নমুনা আউটপুট:

--------------
KILL 1061
--------------

Query OK, 0 rows affected

--------------
KILL 1059
--------------

Query OK, 0 rows affected

--------------
KILL 1057
--------------

Query OK, 0 rows affected

এটি মাইএসকিউএল 5.5 এর জন্য আরও সরাসরি। +1 !!!
রোল্যান্ডোমাইএসকিউএলডিবিএ

1

লিনাক্সে আপনি এরকম কিছু ব্যবহার করতে পারেন।

আমার পদ্ধতির খুব সহজ। প্রথম পদক্ষেপে আমরা আমাদের ডাটাবেসে 'শো প্রসেসলিস্ট' প্রেরণ করি। ফলাফলটি সমস্ত সংযুক্ত ব্যবহারকারীদের সাথে একটি তালিকা। পরবর্তী পদক্ষেপে আমরা ব্যবহারকারীর নামগুলি ফিল্টার করতে ভাল পুরানো গ্রেপ কমান্ডটি ব্যবহার করি। অ্যাজকের সাহায্যে আমরা 'কমান্ড কমান্ড' উত্পন্ন করি। শেষ পদক্ষেপে আমরা সমস্ত কিল কমান্ড মাইএসকিএলে প্রেরণ করি। | এর সাথে সমস্ত কিছুর সাথে যুক্ত হতে হবে প্রতীক।

mysql -uroot -e 'show processlist' | grep username | awk {'print "kill "$1";"'}| mysql -uroot

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