মাইএসকিউএল ডিবিতে ওয়াইল্ডকার্ডকে (%) অ্যাক্সেসের অনুমতি দেওয়া হচ্ছে, ত্রুটি পেয়েছিল "'ব্যবহারকারীর জন্য' @ 'লোকালহোস্ট'" এর জন্য অ্যাক্সেস প্রত্যাখ্যান করা হয়েছে "


17

আমি একটি ডাটাবেস এবং একটি ব্যবহারকারী তৈরি করেছি এবং নিম্নলিখিতগুলির মাধ্যমে অ্যাক্সেসের অনুমতি দিয়েছি:

create user 'someuser'@'%' identified by 'password';
grant all privileges on somedb.* to 'someuser' with grant option;

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

$ mysql -u someuser -p
> Enter Password:
> ERROR 1045 (28000): Access denied for user 'someuser'@'localhost' (using password: YES)

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

উত্তর:


17

এর সাথে সংযোগ দেওয়ার চেষ্টা করুন mysql -u someuser -p -h 127.0.0.1

আপনি যদি কোনও পাসওয়ার্ড ছাড়াই সংযোগ করতে পারেন, হয় আপনি .my.cnf- তে শংসাপত্রগুলি সংরক্ষণ করেছেন বা আপনি এমন একটি অ্যাকাউন্ট তৈরি করেছেন যা কোনও পাসওয়ার্ড ছাড়াই অ্যাক্সেসের অনুমতি দেয়।


মাইএসকিএল ডক্সের এই মন্তব্যটি সম্পর্কিত হতে পারে।

http://dev.mysql.com/doc/refman/5.1/en/access-denied.html

আপনি যদি অ্যাক্সেস অস্বীকৃত হন তা যদি বুঝতে না পারেন, তবে ওয়াইল্ডকার্ড সহ হোস্ট মান রয়েছে এমন সমস্ত প্রবেশকারীর ব্যবহারকারীর টেবিল থেকে সরিয়ে ফেলুন ('%' বা '_' অক্ষরযুক্ত এন্ট্রি)। হোস্ট = '%' এবং ব্যবহারকারী = 'কিছু_ ব্যবহারকারী' এর সাথে একটি নতুন এন্ট্রি সন্নিবেশ করানো একটি খুব সাধারণ ত্রুটি হ'ল এটি আপনাকে একই মেশিন থেকে সংযোগের জন্য লোকালহোস্ট নির্দিষ্ট করার অনুমতি দেয় thinking এটি কাজ না করার কারণটি হ'ল ডিফল্ট সুযোগ-সুবিধার মধ্যে রয়েছে হোস্ট = 'লোকালহোস্ট' এবং ব্যবহারকারী = '' এর সাথে একটি এন্ট্রি। কারণ যে এন্ট্রিটিতে একটি হোস্ট মান 'লোকালহোস্ট' রয়েছে যা '%' এর চেয়ে বেশি নির্দিষ্ট, এটি লোকালহোস্ট থেকে সংযোগ করার সময় নতুন এন্ট্রির অগ্রাধিকার হিসাবে ব্যবহৃত হয়! সঠিক পদ্ধতিটি হোস্ট = 'লোকালহোস্ট' এবং ব্যবহারকারী = 'কিছু_ ব্যবহারকারী' এর সাথে একটি দ্বিতীয় এন্ট্রি inোকানো হয়,


হোস্ট সংজ্ঞা এবং ~ / .my.cnf উল্লেখ সহ +1
অ্যান্ডি

7

আমি নিশ্চিত যে আপনার নিম্নলিখিত প্রয়োজন:

somedb। * 'someuser' @ '%' তে অনুদানের বিকল্প সহ সমস্ত সুযোগ-সুবিধা প্রদান করুন;

আপনার GRANT বিবৃতিতে একটি হোস্টনাম ঘোষণার অভাব রয়েছে।


একটি অবস্থান নির্দিষ্ট করা উচিত:GRANT ALL ON somedb.* TO 'someuser'@'10.1.10.1';
tacot মঙ্গলবার

6

আপনি যদি হোস্ট নেমটির জন্য '%' হ'ল ওয়াইল্ডকার্ড এমন কোনও ব্যবহারকারীর @ '%' ব্যবহার করে মাইএসকিএল সংযোগ করতে অক্ষম হন তবে আপনার ব্যবহারকারী সারণীতে আপনার '' @ লোকালহোস্ট এন্ট্রি না রয়েছে তা নিশ্চিত করুন। নিম্নলিখিত এসকিউএল বিবৃতি ব্যবহার করে নিশ্চিত করুন:

    mysql> SELECT * FROM user WHERE user='' AND host='localhost';

যদি '' @ লোকালহোস্ট বিদ্যমান থাকে তবে নিম্নলিখিত এসকিউএল বিবৃতি জারি করে এটি সরিয়ে ফেলুন:

    mysql> DELETE FROM user WHERE user='' AND host='localhost';

তারপর শেষ পর্যন্ত

    FLUSH PRIVILEGES;

এখন কিছু ব্যবহারকারী @ '%' ডাটাবেসের সাথে সংযুক্ত হবে।


'ব্যবহারকারীর নাম' @ 'লোকালহোস্ট' সুবিধা প্রদানের কারণে একই ব্যবহারকারীর জন্য আলাদা লোকেশন থেকে অনুদান কাজ করবে না।
tacot মঙ্গলবার

এটি কীভাবে প্রাসঙ্গিক? 'লোকালহোস্ট' এ '' ব্যবহারকারীর কী কারণ?
স্টিভ বুজোনাস

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

@ মাইএসকিএল ক্লায়েন্টের ডিফল্ট আচরণটি হ'ল আপনার শেল ব্যবহারকারীর নাম ব্যবহার করা যদি আপনি কোনও উল্লেখ না করেন। প্রশ্নের উদাহরণ এবং ত্রুটি বার্তায় একটি ব্যবহারকারী রয়েছে। আমি কৌতূহলী ছিলাম কীভাবে কোনও '' ব্যবহারকারী নামধারী ব্যবহারকারীর সাথে বিরোধ করবে would '' একটি ওয়াইল্ডকার্ড?
স্টিভ বুজোনাস

@ স্টিভ বুজোনাস '' লোকালহোস্টের প্রতি শ্রদ্ধা রেখে ওয়াইল্ডকার্ডের মতো কাজ করছে। মাইএসকিউএল ডক্স থেকে এবং উপরে উল্লিখিত পূর্বনির্ধারিত উত্তরে একটি উত্তরে দেখানো হয়েছে: "যেহেতু প্রবেশে একটি হোস্টের মান 'লোকালহোস্ট' রয়েছে যা '%' এর চেয়ে বেশি নির্দিষ্ট, এটি লোকালহোস্ট থেকে সংযোগ করার সময় নতুন এন্ট্রির অগ্রাধিকার হিসাবে ব্যবহৃত হয় ! সঠিক পদ্ধতিটি হল হোস্ট = 'লোকালহোস্ট' এবং ব্যবহারকারী = 'কিছু_উজার' এর সাথে একটি দ্বিতীয় এন্ট্রি sertোকানো, বা হোস্ট = 'লোকালহোস্ট' এবং ব্যবহারকারীর = '' দিয়ে এন্ট্রি মুছে ফেলা। "
অবধি পোস্ট করুন

4

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


Dev.mysql.com/doc/refman/5.1/en/connection-access.html এ প্রদত্ত উদাহরণ আমাকে বিশ্বাস করতে পরিচালিত করেছে এটি সঠিক হতে পারে না। আপনার অন্যথায় উল্লেখ আছে?
ওয়ার্নার

এই বিষয়টি সম্পর্কে আমার বোঝা অন্যদের মুদ্রণ এবং মৌখিকভাবে একই সমস্যাটির প্রতিবেদন করা এবং "%" এবং "লোকালহোস্ট" ব্যবহার করে 2 জন ব্যবহারকারী তৈরি করে সমাধান করার উপর ভিত্তি করে। আমি আনুষ্ঠানিকভাবে যদিও এটি সরকারীভাবে নথিভুক্ত দেখেছি কখনও মনে করতে পারি না।
জন গার্ডেনিয়ার্স

1
এটি কমপক্ষে উবুন্টু 12.04 এলটিএসে সঠিক বলে মনে হচ্ছে
ডেক্স

আমার সাথে যা ঘটেছিল তা হ'ল আমার কাছে ছিল user@%এবং এটি অন্তর্ভুক্ত হওয়া পর্যন্ত এটি কাজ করে না user@localhost। তারপরে আমি উত্তরটি stackoverflow.com/a/29421084/4850646 দেখেছি এবং বুঝতে পেরেছি যে হোস্টের সাথে আমার একটি বেনামি ব্যবহারকারী রয়েছে localhost। আমি সমস্ত বেনামী ব্যবহারকারীকে সরিয়ে দিয়েছি এবং মুছে ফেলার পরেও (এবং কেবল লেটিং ) পরেওlocalhost সেই ব্যবহারকারীর কাছ থেকে অ্যাক্সেস করতে সক্ষম হয়েছি । দেখে মনে হয় যে এর চেয়ে বেশি নির্দিষ্ট , এটি প্রথমে ব্যবহারকারীর চেষ্টা করে , এমনকি এটি যদি কোনও বেনামে ব্যবহারকারী হয়! user@localhostuser@%localhost%localhost
লুকাস বাস্কেরোত্তো

0

আপনি flush privileges;ব্যবহারকারী তৈরি করার পরে চালানো হয়েছে ? আপনি যদি তা না করেন তবে সার্ভার পুনরায় চালু হওয়ার পরে ব্যবহারকারী / অনুমতিগুলিতে পরিবর্তনগুলি নেওয়া হবে না।

তারপরে, আপনার '%' @ 'লোকালহোস্ট' প্রবেশ নেই কিনা তা পরীক্ষা করুন।


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