এসএসএইচ টানেলের মাধ্যমে সংযোগ করার সময় মাইএসকিউএল অ্যাক্সেস ত্রুটি অস্বীকার করেছে


12

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

127.0.0.1 হোস্টের সাথে সংযোগ করতে অক্ষম কারণ অ্যাক্সেস অস্বীকার করা হয়েছিল।

আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড দুটিবার যাচাই করুন এবং আপনার বর্তমান অবস্থান থেকে অ্যাক্সেসের অনুমতি রয়েছে তা নিশ্চিত করুন।

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

এসএসএইচের মাধ্যমে সার্ভারের সাথে সরাসরি সংযুক্ত হয়ে আমি টার্মিনাল থেকে লগ ইন করতে সক্ষম, কেবল কোনও এসএসএইচ টানেলের মাধ্যমে নয়। সমস্যাটি সিকোয়েল প্রো বা কেবল নিজেই সুনির্দিষ্ট নয়, অফিসে অন্যদের মতো মাইএসকিউএল ওয়ার্কব্যাঞ্চের মাধ্যমে সংযোগ করার সময়ও আমি একই ত্রুটি পাই। আমি mysqladminকেবল স্যানিটির জন্য পাসওয়ার্ডটি পুনরায় সেট করেছি , এটি অবশ্যই সমস্যা নয়।

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

টানেলিংয়ের সমস্যাটি ঘুরে দেখার চেষ্টা করে, আমি রুট @% এর অ্যাক্সেস পেয়েছি, যাতে আমি সরাসরি সংযোগ করতে পারি। এটি বেশিরভাগ অংশের জন্য কাজ করে, আমি টেবিলের ডেটা দেখতে পারি, নতুন ডাটাবেস তৈরি করতে পারি ইত্যাদি The একমাত্র সমস্যাটি যখন আমি ব্যবহারকারী তৈরি করতে আসি তখন ত্রুটিটি পাই:

ব্যবহারকারীর 'রুট' @ '%' এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে (পাসওয়ার্ড ব্যবহার করে: হ্যাঁ)

অদ্ভুতভাবে ব্যবহারকারী আসলে তৈরি করা হয়েছে, আমি মনে করি এটি অনুদান সহ কেবল একটি সমস্যা। আবার যদিও, রুট হিসাবে লগ ইন করার সময় টার্মিনাল থেকে আমি কিছু করতে পারি।

টানেল সংযোগগুলি এবং (সম্ভবত) অনুদান কমান্ডগুলি অ্যাক্সেস অস্বীকার করার ত্রুটি কেন পাচ্ছে সে সম্পর্কে কেউ আলোকপাত করতে সহায়তা করতে পারে?

রেফারেন্সের জন্য মাইএসকিউ হ'ল ম্যাক ওএস এক্স সার্ভার মেশিনে হোমব্রিউয়ের মাধ্যমে ইনস্টল করা বেশিরভাগ ডিফল্ট সেটিংস সহ সংস্করণ 5.6.16।

হালনাগাদ

রুটকে বর্তমানে এতে অ্যাক্সেস দেওয়া হয়েছে এমন হোস্টগুলির তালিকা এখানে রয়েছে:

mysql> select host,user from mysql.user where user='root';
+----------------+------+
| host           | user |
+----------------+------+
| %              | root |
| 127.0.0.1      | root |
| ::1            | root |
| localhost      | root |
+----------------+------+
4 rows in set (0.00 sec)

যেহেতু আমি এটি বুঝতে পেরেছি, প্রথম সারিতে ("%") অন্যদেরকে কী অপ্রয়োজনীয় করে তোলে?

আপডেট 2

অনুদান ইস্যু স্থির; রুট @% ব্যবহারকারীকে with grant optionশেষে অতিরিক্ত দিয়ে সমস্ত সুযোগ-সুবিধাগুলি মঞ্জুর করা হয়নি , সুতরাং এটি মঞ্জুরি ব্যতীত অন্য কিছু করতে পারে। তবুও এসএসএইচ টানেলগুলি কেন অস্বীকার করা হচ্ছে তা জানতে আগ্রহী।


সুতরাং, আপনি "%" অ্যাকাউন্ট তৈরি করার আগে আপনি "127.0.0.1" এবং "লোকালহোস্ট" তৈরি করেছিলেন এবং এই দু'টিই কার্যকর হয়নি, তা কি সঠিক?
Sverre

লোকালহোস্ট কেবল তখনই কাজ করে যদি আপনি প্রকৃতপক্ষে সঠিক হোস্টে থাকেন তাই থিয়োরিতে কেবল 127.0.0.1 (লোকালহোস্টের সমতুল্য নেটওয়ার্ক) একটি এসএসএস টানেলের উপর দিয়ে কাজ করা উচিত। কমপক্ষে ওএসের মতো ইউনিক্সে।
Sverre

উত্তর:


18

মাইএসকিউএলে, localhostকীওয়ার্ডটি মাইএসকিউএল সকেট ব্যবহারের জন্য সংরক্ষিত এবং আপনার 127.0.0.1মাইএসকিউএল নেটওয়ার্ক পোর্টের টিসিপি সংযোগগুলির জন্য আইপি-ঠিকানাটি ব্যবহার করা উচিত 127.0.0.1। এর অর্থ এই যে উভয় সার্ভার বিশেষভাবে থেকে ব্যবহারকারীদের দেওয়ার অধিকারগুলি মঞ্জুর করতে হবে 127.0.0.1, এবং ক্লায়েন্ট ব্যবহার করা আবশ্যক -h 127.0.0.1পরিবর্তে একটি স্থানীয় সকেট সাথে সংযোগ এর সুড়ঙ্গ মধ্য দিয়ে যেতে।

এসএসএইচ পোর্ট ফরওয়ার্ডিং ব্যবহার করে আপনাকে অ্যাক্সেস করার জন্য আপনার এমন কিছু দরকার:

GRANT SELECT ON *.* TO user@`127.0.0.1`

এবং তারপর চালান

FLUSH PRIVILEGES;

এবং সম্ভবত

FLUSH QUERY CACHE;

যদি এটি এখনও কাজ না করে তবে সার্ভার প্রক্রিয়াটি পুনরায় চালু করুন।

ত্রুটি বার্তাগুলিতে 127.0.0.1 বিপরীত ডিএনএস দেখার পরে localhostডিবাগিংকে কঠিন করে তুলতে অনুবাদ হয় ।

ম্যানুয়ালটি যেমন বর্ণনা করে:

ইউনিক্সে, মাইএসকিউএল প্রোগ্রামগুলি হোস্টের নাম লোকালহোস্টকে বিশেষভাবে বিবেচনা করে, এমন একটি উপায়ে যা অন্যান্য নেটওয়ার্ক-ভিত্তিক প্রোগ্রামগুলির তুলনায় আপনার প্রত্যাশার চেয়ে সম্ভবত আলাদা different লোকালহোস্টের সংযোগের জন্য, মাইএসকিউএল প্রোগ্রামগুলি ইউনিক্স সকেট ফাইল ব্যবহার করে স্থানীয় সার্ভারের সাথে সংযোগ স্থাপনের চেষ্টা করে। কোনও - -portবা -Pবিকল্প কোনও পোর্ট নম্বর নির্দিষ্ট করার জন্য দেওয়া হলেও এটি ঘটে । ক্লায়েন্টটি স্থানীয় সার্ভারের সাথে একটি টিসিপি / আইপি সংযোগ স্থাপন করে তা নিশ্চিত করতে, স্থানীয় সার্ভারের একটি হোস্টের নাম মান , বা আইপি ঠিকানা বা নাম নির্দিষ্ট করে ব্যবহার করতে --hostবা -hনির্দিষ্ট করতে 127.0.0.1। আপনি --protocol=TCPবিকল্পটি ব্যবহার করে সংযোগ প্রোটোকলটি স্পষ্টভাবে, এমনকি লোকালহোস্টের জন্যও নির্দিষ্ট করে দিতে পারেন । উদাহরণ স্বরূপ:

shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP

--protocolবিকল্পটি সংযোগ একটি বিশেষ ধরনের প্রতিষ্ঠা করতে এমনকি যখন অন্যান্য অপশন স্বাভাবিকভাবে কিছু অন্যান্য প্রোটোকল ডিফল্ট হবে দেয়।


2
আহ! তারপরে ব্যাখ্যা করা হচ্ছে যে আমি কেন 127.0.0.1 দেখার আশা করে ত্রুটি বার্তায় লোকালহোস্টটি দেখছি। কখনও কম নয়, রুট ব্যবহারকারীর @ 127.0.0.1 কে সমস্ত সুযোগ-সুবিধা দেওয়া হয়েছে তবে এসএসএইচ টানেলের মাধ্যমে সংযোগ করার সময় আমি অ্যাক্সেস অস্বীকার করার ত্রুটিটি পেয়েছি। আমি যে সঠিক বক্তব্যটি grant all on *.* to 'root'@'127.0.0.1' with grant option;
আদম

আমি এই সমস্যাটি নিয়ে আসছি এবং এটি স্পষ্ট যে সত্যই হোস্ট বনাম সকেট ইস্যু। আমি যখন ssh -h 127.0.0.1 -u root -pসার্ভারে রিমোটলি টাইপ করি তখন সংযোগটিও প্রত্যাখ্যান করা হয়।
fuzzyTew

আমি -h 127.0.0.1
মাইএসকিএল

এখানে আমরা যাই। 1. সার্ভারটি অবশ্যই 127.0.0.1 এ মঞ্জুরি দেবে। আমি সার্ভারটি রিবুট না করা পর্যন্ত এটি আমার জন্য নেয় নি। ২. স্থানীয় সংযোগ অবশ্যই লোকাল হোস্ট নয় , 127.0.0.1 এ থাকা উচিত , যাতে স্থানীয় সকেটের পরিবর্তে সুড়ঙ্গটি ব্যবহৃত হয়।
অস্পষ্ট

1

আমি অতীতে এসএসএস টিউনালের সাহায্যে দেখেছি যে "লোকালহোস্ট" এবং "127.0.0.1" এর জন্য সমস্ত অনুদানের মধ্যে পার্থক্য রয়েছে তাই "127.0.0.1" এর পরিবর্তে বা আপনার "লোকালহোস্ট" অনুদানের জন্য অনুদানের চেষ্টা করুন।


বা বিপরীতে, আপনার ক্ষেত্রে এটির মতো দেখাচ্ছে
স্যাভেরে

ধন্যবাদ, হোস্টের মূল তালিকাটি মঞ্জুর করার জন্য আমি প্রশ্নটি আপডেট করেছি। আমি এটি আশ্চর্যের মধ্যে পেয়েছি যে সিকোয়েল প্রোতে "127.0.0.1" মাইএসকিউএল সার্ভার হিসাবে প্রবেশ করার পরেও মাইএসকিউএল ত্রুটি এটি "লোকালহোস্ট" হিসাবে প্রতিবেদন করছিল। যদিও এই সমস্যাটি আমি মনে করি না।
আদম

আপনার কি সমস্ত আলাদা ব্যবহারকারীর পাসওয়ার্ড রয়েছে? এছাড়াও আপনি যখন টানেলের উপরে মাইএসকিএল-তে সংযোগ স্থাপন করেন, আপনি ব্যবহার করেন আসল সিনট্যাক্সটি কী?
Sverre

আপনার মাইএসকিএল সেটআপে রুট ব্যবহারকারীর উপর কোনও বিধিনিষেধ রয়েছে?
Sverre

সমস্ত রুট পাসওয়ার্ড একইরকম রয়েছে তা নিশ্চিত করার জন্য কেবল grantবিবৃতিগুলি আবার চালিত করুন identified by ..তবে কোনও আনন্দ নেই।
আদম

0

টানেলটি তৈরি করতে সিকোয়েল ব্যবহার না করে আপনি নিজে টানেলটি কী তৈরি করছেন?

ssh -Cc ব্লোফিশ -Nf -vv -L3306: লোকালহোস্ট: 3306 শ্যুসার

তারপরে সিক্যেলের সাথে 127.0.0.1:3306 এ সংযোগ স্থাপন করতে পারেন? আপনার টার্মিনালে (বা ssh ক্লায়েন্ট লগগুলি) কিছু উপস্থিত রয়েছে?

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