mysqladmin ইনলাইন পাসওয়ার্ড নিচ্ছে না


10

আমি আমার দাস মেশিন থেকে ব্যাকআপ নেওয়ার জন্য ক্রোন জব সেট করার চেষ্টা করছি। সুতরাং আমার দাসকে থামানো দরকার

আমি একটি আদেশ জারি

mysqladmin --user=root --password=test_pass stop-slave

তবে এটি ত্রুটি নিক্ষেপ করছে:

মাইসক্ল্যাডমিন: 'লোকালহোস্ট' এ সার্ভারের সাথে সংযোগ ব্যর্থ হয়েছে ত্রুটি: 'ব্যবহারকারীর' রুট '@' লোকালহোস্ট 'এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে (পাসওয়ার্ড ব্যবহার করে: হ্যাঁ)

এখন আমি কমান্ড দিয়ে চেষ্টা করেছি

mysqladmin --user=root --password stop-slave

এটি পাসওয়ার্ডের জন্য অনুরোধ জানায় এবং আমি যেমন দিয়েছিলাম test_passএবং সবকিছু ঠিক আছে।

কেন এমন হল? বিকল্প কি?

এনবি: বিটিডাব্লু আমার মাইএসকিএল সংস্করণ mysql-5.0.95-5এটি কোনও অর্থবোধ করে।


আপনার পাসওয়ার্ডে শেলটি ব্যাখ্যা করতে পারে এমন কোনও বিশেষ অক্ষর রয়েছে? আপনি কি 'কোটস' বা "কোটস" এ পাসওয়ার্ডটি বন্ধ করার চেষ্টা করেছেন?
মাইকেল - sqlbot

শেলটি ব্যাখ্যা পেতে পারে এমন বিশেষ চরিত্রগুলি কোনটি? কোন ডকুমেন্টেশন আছে?
প্রবীণ প্রসন্নান

1
Characters & এর মতো চরিত্রগুলি! \ [] <> সমস্তই সম্ভাব্য সমস্যাযুক্ত হিসাবে মনে আসে। 'একক উদ্ধৃতিতে পাসওয়ার্ডটি প্রবেশ করাতে সমস্যাটি হওয়া উচিত। gnu.org/software/bash/manual/bashref.html#Quoting
মাইকেল - sqlbot

2
দুর্দান্ত .. কাজ। আমি এটি উত্তর হিসাবে চিহ্নিত করতে চাই। আপনি দয়া করে উত্তর হিসাবে রাখতে পারেন
প্রবীণ প্রসন্নান

@ মাইকেল-স্ক্লবট হ্যাঁ আপনার পোস্ট করা উচিত উত্তর হিসাবে
RolandoMySQLDBA

উত্তর:


21

কমান্ড লাইন আর্গুমেন্টগুলি সিস্টেমের কমান্ড শেল দ্বারা ব্যাখ্যার সাপেক্ষে, কমান্ডের আচরণ পরিবর্তন করে বা তাত্ক্ষণিকতার নামগুলি পরিবর্তিত প্রোগ্রামে পাস করার আগে পরিবর্তন করে।

যখন একটি আর্গুমেন্টে (যেমন এর মান হিসাবে --password) শেলটি ব্যাখ্যা করতে পারে এমন একটি অক্ষর থাকে তখন সেগুলি হয় উদ্ধৃত করা হয় (সাধারণত উইন্ডোজে 'ইউনিক্সে বা ডাবল উদ্ধৃতিতে আবদ্ধ থাকে ") বা পৃথকভাবে পালানো হয় (সাধারণত \প্রতিটি মেটাচ্যাক্রাস্টারের আগে ব্যাকস্ল্যাশ সহ) ) শেল দ্বারা ব্যাখ্যা এড়ানোর জন্য।

সুনির্দিষ্ট অক্ষরগুলি সিস্টেম-নির্দিষ্ট হয়ে থাকে, তবে কয়েকটি অক্ষরের জন্য নজর রাখা উচিত:

$ & ! \ [ ] < > `

যদি সত্যিই খারাপ উদাহরণের জন্য পাসওয়ার্ডটি সেট করা থাকে pa$$word...

mysql --password=pa$$word     # does not work
mysql --password='pa$$word'   # works
mysql --password=pa\$\$word   # works, but slightly unclear what's going on at first glance

আরও পড়া:


আপডেট: পাসওয়ার্ডে 'একক বা "ডাবল উদ্ধৃতি থেকে বাঁচতে আপনি হয় অগ্রণী ব্যাকস্ল্যাশ দিয়ে সেগুলি থেকে বাঁচতে পারেন, বা যদি অন্য কোনও অক্ষর না থেকে থাকে যা উদ্ধৃত করার বাছাই করা স্টাইলটি সামঞ্জস্য না করে তবে পুরো যুক্তিটি উদ্ধৃতিগুলির বিপরীত শৈলীতে আবদ্ধ করতে পারেন Update সঙ্গে.

mysql --password="like'this" # password has a single quote in the middle
mysql --password='like"this' # password with a double quote in the middle

আপনার যদি একটি একক উক্তি এবং অন্যান্য বিশেষ অক্ষরও থাকে, আপনি ব্যাকস্ল্যাশ এড়িয়ে যাওয়ার সাথে আটকে আছেন কারণ, ইউনিক্সে, ডাবল উদ্ধৃতিটি একটি কোটের তুলনায় "দুর্বল" এবং ডাবল উদ্ধৃতিতে আবদ্ধ থাকলেও বহু মেটাচারাক্টর এখনও প্রসারিত হয় তবে একক নয় কোট।

এটি মাইএসকিউএল-নির্দিষ্ট নয় তবে কমান্ড লাইন আর্গুমেন্টের সাথে যে কোনও কিছুতে প্রযোজ্য।

echoশেলটি কীভাবে আপনার যুক্তিগুলি ব্যাখ্যা করে তা দেখতে আপনি সাধারণত কমান্ডটি ব্যবহার করতে পারেন।

$ echo foo$bar 
foo                # literal 'foo' plus the (empty) shell variable $bar

$ echo foo\$bar
foo$bar            # backslash prevents expansion of $bar as a variable

$ echo "foo$$bar"  # weaker double quote doesn't prevent expansion so
foo9691bar         # the $$ expands to the unix process id (pid) of the current shell

$ echo 'foo$$bar'
foo$$bar           # "stronger" single quote prevents shell expansion

$ echo "foo'bar"
foo'bar            # double quote allows single quote within the literal

ফলোআপ: ব্যাশ শেল (এবং সম্ভবত কিছু অন্য) একক উদ্ধৃতিযুক্ত স্ট্রিংয়ের মধ্যে একক উদ্ধৃতিগুলি পলায়নের অনুমতি দেয় যদিও কনভেনশনটি উদ্ভট (সম্ভবত কিছু কাল-ভুলে যাওয়া সিদ্ধান্তের ভিত্তিতে এখন সময়ের স্মৃতিতে হারিয়ে গেছে):

পুরো স্ট্রিংকে একক কোটে মুড়িয়ে দেওয়ার আগে 'স্ট্রিংয়ের অভ্যন্তরে প্রতিটি প্রতিস্থাপন করুন '\''... সুতরাং আক্ষরিক স্ট্রিংটি foo'barহিসাবে প্রকাশিত হয় 'foo'\''bar'

আমি যেমন বলেছিলাম, উদ্ভট। এটি প্রয়োজন কারণ একটি ব্যাকস্ল্যাশ একটি একক উদ্ধৃত স্ট্রিংয়ের বাইরে একটি একক উদ্ধৃতি থেকে বেরিয়ে যায়, ব্যাকস্ল্যাশ কোনও একক-উদ্ধৃত স্ট্রিংয়ের মধ্যে কিছুতেই বাঁচতে পারে না এবং একক উদ্ধৃত স্ট্রিংগুলি যতক্ষণ না অপরিবর্তিত থাকে ততক্ষণ একাধিক একক উদ্ধৃতি দ্বারা বন্ধ এবং পুনরায় খোলা যেতে পারে This হস্তক্ষেপকারী অক্ষরগুলির বিশেষ অর্থ রয়েছে। সুতরাং '\''স্ট্রিংয়ের উদ্ধৃতি বন্ধ করে, তারপর পালানো আক্ষরিক সরবরাহ করে, তারপরে স্ট্রিংয়ের উদ্ধৃতি আবার খোলে।


1
আরও কিছুটা স্পষ্ট হওয়া দরকার। যদি একক উদ্ধৃতি (') পাসওয়ার্ড ক্ষেত্রে আসে? স্ল্যাশ () দিয়ে এড়িয়ে যাওয়া একমাত্র উপায়?
প্রবীণ প্রসন্নান

আমার লাইভ সার্ভারের পাসওয়ার্ডটি কীভাবে সহ-ঘটনাটি সেট করা আছেpa$$word
উমায়ের

0

সংযোজন:

একটি উইন্ডোজ মেশিনে, আমরা পাশাপাশি একটি পাসওয়ার্ড নিয়ে লড়াই করেছি: এতে রয়েছে %যা %%এড়াতে হবে (একাকী উদ্ধৃতিগুলি এখানে যথেষ্ট নয়)

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