আমি কীভাবে মাইএসকিউএল ক্লায়েন্টকে mylogin.cnf থেকে পাসওয়ার্ড পড়তে পারি?


11

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

1) প্রথমে একটি mylogin.cnf ফাইল তৈরি করুন

$ mysql_config_editor set --user=<user> --password --host=<host>
Enter password:

2) ফাইলটি সফলভাবে তৈরি হয়েছে:

$ ls -la .mylogin.cnf
-rw-------. 1 urmt urmt  136 Dec 19 11:01 .mylogin.cnf
$ mysql_config_editor print --all
[client]
user = <user>
password = *****
host = <host>

3) mysql ক্লায়েন্ট ব্যবহার করে সংযোগ করুন

$ mysql <dbname>
ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)

কোথাও কোনও ডিফল্ট মান / কনফিগারেশন রয়েছে যা ক্লায়েন্টকে mylogin.cnf এ পাসওয়ার্ড উপেক্ষা করে? ব্যবহারকারী এবং হোস্ট বৈশিষ্ট্যগুলি ফাইল থেকে সঠিকভাবে পড়া হয়েছিল।

আমি যদি কমান্ড লাইনে পাসওয়ার্ড সরবরাহ করি তবে আমি ঠিকঠাক সংযোগ করতে সক্ষম:

$ mysql -p <dbname>
Enter password: 
Reading table information...
...
mysql> 

মাইএসকিউএল ক্লায়েন্ট সংস্করণ 5.6.22, মাইএসকিউএল সার্ভার সংস্করণ 5.6.22, উভয় ওরাকল লিনাক্স 6 এ ক্লায়েন্ট এবং সার্ভার বিভিন্ন হোস্টে রয়েছে।

ধন্যবাদ

উত্তর:


2

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

আপনার এনভায়রনমেন্ট স্ক্রিপ্টে (যেমন ~/.profileবা ~/.bashrc) সেট করুন

alias mysql='mysql -uUser -pPasswd -hHostname'

(অবশ্যই আপনার কাঙ্ক্ষিত ব্যবহারকারী, পাসউড এবং হোস্টনাম রাখবেন))

শেল পুনর্নির্মাণের পরে, আপনার সহজভাবে সক্ষম হওয়া উচিত

mysql

... যা আপনার এলিফ ব্যবহার করবে এবং ডিবিতে সংযুক্ত হবে এবং .my.cnfফাইলগুলিতে কোনও পাসওয়ার্ড উপেক্ষা করবে ।

সুরক্ষা দ্রষ্টব্য: আপনার সার্ভারে যদি অন্য ব্যবহারকারীরা থাকেন তবে আপনার প্রোফাইল স্ক্রিপ্টটি chmod 700 করতে পারেন যাতে অন্যদের দ্বারা পাসওয়ার্ডটি সহজেই অ্যাক্সেস না হয়। রুট বা সুডো সহ যে কোনও প্রশাসক এটি এখনও দেখতে সক্ষম হবে; কোন উপায় না।


এটি আসল সমস্যাটির জন্য কাজ করার মতো, তবে আমি এটি ঠিক আছি। আমি এই উত্তরটি ভবিষ্যতের পাঠকদের কাছে অস্বীকৃতি দিয়ে স্বীকার করি যে এটি করার সঠিক উপায়টি নওয়াজ উত্তর, তবে এটি আমার পরিবেশে অজানা কারণে কার্যকর হয় না। ধন্যবাদ!
লেফটারিস কাউটসোলোকাস

1
-1 এটি ওপি-এর প্রশ্নের উত্তর দেয় না বা কোনও ফাইলে পাসওয়ার্ড সংরক্ষণ করা এড়িয়ে যায় না। পাসওয়ার্ডটি এখন .mylogin.cnf এর পরিবর্তে। প্রোফাইলে সংরক্ষণ করা হয়েছে। তবে এখন পিএস কমান্ড দ্বারা পাসওয়ার্ডটি প্রদর্শিত হবে।
चमत्कार 173

@ মিরাকল, দয়া করে আপনার দাবিটি যাচাই করুন যে PS পাসওয়ার্ডটি প্রকাশ করবে। আমার সিস্টেমে, পাসওয়ার্ডটি পিএস আউটপুটে xxxxxxxxx হিসাবে মুখোশযুক্ত দেখায়। যদি আপনার মাইএসকিউএল ক্লায়েন্টটি আমার মতো আচরণ না করে তবে দয়া করে আপনি কোন মাইএসকিএল সংস্করণ এবং ডিস্ট্রো চালাচ্ছেন তা পোস্ট করুন। এবং আপনার কাছে কি ওপির আসল প্রশ্নের আরও ভাল উত্তর আছে?
জোশুয়া হুবার

2
@ জোশুয়া: পাসওয়ার্ড সুরক্ষার জন্য শেষ-ব্যবহারকারীর গাইডলাইন : " কমান্ড লাইনে একটি -pyour_passবা --password=your_passবিকল্প ব্যবহার করুন (...) এটি সুবিধাজনক তবে নিরাপত্তাহীন " "
चमत्कार 173

10

প্রথমে লগইন পাথ সেট করতে নিম্নলিখিত কমান্ডটি ব্যবহার করুন

mysql_config_editor সেট --login-path = lgpath --user = রুট -p
পাসওয়ার্ড

এবং তারপরে mysql লগইন করতে নীচের কমান্ডটি ব্যবহার করুন

mysql --login-path = lgpath

মাইএসকিএল লগইন পাথ বিকল্পগুলি সম্পর্কে সহায়তা এর দ্বারা দেখা যেতে পারে

mysql_config_editor সেট - হেল্প


আপনার পরামর্শ অনুসারে আমি লগইন পথটি সুস্পষ্টভাবে সেট করার চেষ্টা করেছি, তবে দুর্ভাগ্যক্রমে এর একই আচরণ রয়েছে: $ mysql_config_editor মুদ্রণ - সমস্ত [lgpath] ব্যবহারকারী = <ব্যবহারকারীর পাসওয়ার্ড = ***** হোস্ট = <হোস্ট> $ mysql --login -পথ = lgpath এরর 1045 (28000): ব্যবহারকারীর জন্য অ্যাক্সেস অস্বীকার '<ব্যবহারকারীর' @ '<হোস্ট>' (পাসওয়ার্ড ব্যবহার করে: না)
লেফটারিস কৌতসোলৌকাস

3

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

আমার ইস্যু:

ERROR 1045 (28000): Access denied for user '<user>'@'<host>' (using password: NO)

এটি প্রমাণিত করে যে mysql_config_editorপাসওয়ার্ডে বিশেষ অক্ষরগুলি সঠিকভাবে পরিচালনা করে না।

সমাধান:

যখন mysql_config_editorআপনাকে পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে তখন নিশ্চিত হয়ে নিন যে আপনি পাসওয়ার্ডটি দ্বৈত উক্তি (") এ ঘিরেছেন। পরে, আপনি ঠিকঠাক লগইন করতে পারেন।


1

আমি এই ত্রুটিটি পেয়েছিলাম, এটি না বলে (পাসওয়ার্ড ব্যবহার করে: হ্যাঁ)

জিওভান্নির উল্লিখিত কারণটি ছিল পাসওয়ার্ডের "#" কারণ। আমি খুঁজে পেয়েছি যে অনুরোধ জানানো হলে আপনার পাসওয়ার্ডের চারপাশে উদ্ধৃতি সন্নিবেশ করানো হবে work .My.cnf ব্যবহার করে সরল-পাঠ্য পাসওয়ার্ডগুলির সাথে একই সীমাবদ্ধতা বিদ্যমান।


0

নওয়াজের উত্তরটি সঠিক। আমার যোগ করার সামান্য পরিমাণ আছে। আমি প্রস্তাব দিচ্ছি যে ডিফল্ট ফাইলটি দুর্নীতিগ্রস্থ হলে সেক্ষেত্রে একটি নতুন কনফিগারেশন ফাইল ক্রেট করতে আপনি পরিবেশের পরিবর্তনশীল MYSQL_TEST_LOGIN_FILE এর সাথে কিছু চেষ্টা করবেন। ব্যবহার --no-defaultsএড়িয়ে যেতে .cnfফাইল। পাসওয়ার্ডটিতে চর থাকলে #, mysql login-pathকাজ করে না।

$ export MYSQL_TEST_LOGIN_FILE=$HOME/mylogin.cnf

$ mysql_config_editor set --login-path=mytest --host=127.0.0.1 --port=5622 --user=mytest --password
Enter password:

$ ls -l $MYSQL_TEST_LOGIN_FILE
-rw------- 1 mysql mysql 288 Feb 27 14:25 mylogin.cnf

$ mysql --no-defaults --login-path=mytest test

এই পরিবেশের পরিবর্তনশীল সেট করা হয়নি। আমি সেট করেছিলাম কিন্তু আমি ঠিক একই আচরণ পেয়েছিলাম। এটি mylogin.cnf এ পাসওয়ার্ড উপেক্ষা করেছে।
লেফটারিস কাউটসোলোকাস

আপনি কি নিশ্চিত যে ব্যবহারকারীর mysqlকমান্ডটি কার্যকর mysql? যদি তা না হয় তবে তার মালিককে পরিবর্তন করুন mylogin.cnfএবং এটি কাজ করা উচিত :)
Iazel

0

আমি আসল পোস্টার হিসাবে একটি অনুরূপ সমস্যা সম্মুখীন হয়। আমার সন্দেহ হয় এটি পাসওয়ার্ডের অক্ষরের সাথে করতে হবে যা সঠিকভাবে এনক্রিপ্ট / ডিক্রিপ্ট না হয়।

নিশ্চিত করার জন্য পাসওয়ার্ডকে কোনও সহজ কিছুতে পরিবর্তন করার চেষ্টা করুন এবং দেখুন যে এই সমস্যাটি চলে গেছে।


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

0

শেল স্ক্রিপ্ট নিয়ে আমার এই সমস্যা ছিল। আমার স্ক্রিপ্টটি $ হোম মান পরিবর্তন করছিল এবং এর ফলে --login-path = *** এড়ানো হবে। আমি যখন $ HOME মান পরিবর্তন করা বন্ধ করি তখন এটি কাজ করা শুরু করে।


0

আপনি যদি লিনাক্স ব্যবহারকারীরpath অধীনে চালনার চেষ্টা করছেন তবে দ্রষ্টব্য - আপনি কেবল এটি ব্যবহার করতে পারবেন না । আপনাকে অবশ্যই রুট আইই হিসাবে লগ ইন করতে হবে rootsudo

user@server:$ sudo su
user@server:$ Enter Password
root@server:$ mysql_config_editor set --login-path=data-main --user=<user> --password --host=<host>
root@server:$ Enter Password
root@server:$ exit
user@server:$ ...

এখানে অন্যান্য পোস্টে যেমন উল্লেখ করা হয়েছে .. আপনার পাসওয়ার্ডের চারপাশে ডাবল উক্তি ব্যবহার করতে হবে mysqlযদি এতে বর্ণমালার অক্ষর ব্যতীত অন্য কিছু থাকে।

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