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


429

প্রথমে আমার উল্লেখ করা যাক যে আমি অনেক প্রস্তাবিত প্রশ্নের মধ্য দিয়ে গেছি এবং এর কোনও প্রাসঙ্গিক উত্তর খুঁজে পাই না। এখানে আমি কি করছি।

আমি আমার অ্যামাজন ইসি 2 উদাহরণের সাথে সংযুক্ত। আমি এই কমান্ডটি দিয়ে মাইএসকিউএল রুটে লগইন করতে পারি:

mysql -u root -p

তারপরে আমি হোস্ট% সহ একটি নতুন ব্যবহারকারী বিল তৈরি করেছি

CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';

ব্যবহারকারী বিলে সমস্ত সুযোগ-সুবিধা দেওয়া হয়েছে:

grant all privileges on *.* to 'bill'@'%' with grant option;

তারপরে আমি রুট ব্যবহারকারী থেকে প্রস্থান করব এবং বিল দিয়ে লগইন করার চেষ্টা করব:

mysql -u bill -p

সঠিক পাসওয়ার্ড প্রবেশ করিয়ে এই ত্রুটি পেয়েছে:

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


34
তুমি কি করেছ FLUSH PRIVILEGES?
উদয়জাল

6
ঠিক আছে, আমি কোনও সাফল্য ছাড়াই এটি চেষ্টা করেছিলাম। অন্য কোন পরামর্শ দয়া করে।
আলী

1
আপনি সার্ভারের কোন সংস্করণটি চালাচ্ছেন? আমি 5.1 এ সম্পর্কে অদ্ভুত আচরণ করতে দেখেছি।
পুডলেহাট

2
ম্যাজেন্টো ইনস্টল করার সময় আমার সাথে এটি ঘটেছিল এবং আমি অনেক চঞ্চল ভুল করেছিলাম। ফেলে 'মাইএসকিউএল -u Magento -p Magento' একটি পাসওয়ার্ড আমাকে প্ররোচনা ছিল এবং ডিফল্ট পাসওয়ার্ডের পরিবর্তে আমি রুট পাসওয়ার্ড নির্বাণ হয়।
AmirHd

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

উত্তর:


441

আপনার সম্ভবত একটি বেনাম ব্যবহারকারী ''@'localhost'বা''@'127.0.0.1'

অনুযায়ী ম্যানুয়াল :

যখন একাধিক ম্যাচ সম্ভব হয়, সার্ভারকে তাদের মধ্যে কোনটি ব্যবহার করতে হবে তা নির্ধারণ করতে হবে। এটি নিম্নলিখিত হিসাবে এই সমস্যাটির সমাধান করে: (...)

  • যখন কোনও ক্লায়েন্ট সংযোগ দেওয়ার চেষ্টা করে, সার্ভারটি [টেবিল mysql.user এর] সারি অনুসারে বাছাই করা ক্রমে সন্ধান করে।
  • সার্ভারটি প্রথম সারিতে ব্যবহার করে যা ক্লায়েন্টের হোস্টের নাম এবং ব্যবহারকারীর নামের সাথে মেলে।

(...) সার্ভারটি বাছাইয়ের নিয়ম ব্যবহার করে যা সর্বাধিক সুনির্দিষ্ট হোস্ট মানগুলির সাথে সারিগুলিকে অর্ডার করে । আক্ষরিক হোস্টের নাম [যেমন 'লোকালহোস্ট'] এবং আইপি ঠিকানাগুলি সুনির্দিষ্ট।

অতএব, এই জাতীয় নামবিহীন ব্যবহারকারী অন্য কোনও ব্যবহারকারীর '[any_username]'@'%'কাছ থেকে সংযোগ দেওয়ার সময় "মাস্ক" করে localhost

'bill'@'localhost'মিলছে 'bill'@'%'তবে মিলবে (উদাঃ) এর ''@'localhost'আগেই।

প্রস্তাবিত সমাধানটি হ'ল এই অজ্ঞাতনামা ব্যবহারকারীকে ফেলে দেওয়া (যাইহোক এটি সাধারণত ভাল জিনিস হয়)।


নীচে সম্পাদনাগুলি মূলত মূলত অপ্রাসঙ্গিক। এগুলি কেবল এই থ্রেডের মধ্যে অন্যান্য মন্তব্যে উত্থাপিত কিছু প্রশ্নের উত্তর দেওয়ার জন্য।

সম্পাদনা 1

'bill'@'%'সকেটের মাধ্যমে প্রমাণীকরণ করা হচ্ছে।

    রুট @ মাইহোস্ট: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass --sket = / tmp / mysql-5.5.sock
    মাইএসকিউএল মনিটরে স্বাগতম (...)

    mysql> নির্বাচন ব্যবহারকারী, FROM থেকে mysql.user হোস্ট;
    + + ------ + + ----------- + +
    | ব্যবহারকারী | হোস্ট |
    + + ------ + + ----------- + +
    | বিল | % |
    | রুট | 127.0.0.1 |
    | রুট | :: 1 |
    | রুট | লোকালহোস্ট |
    + + ------ + + ----------- + +
    4 টি সারি সেট (0.00 সেকেন্ড)

    mysql> নির্বাচন ব্যবহারকারী (), CURRENT_USER ();
    + + ---------------- + + ---------------- + +
    | ব্যবহারকারী () | CURRENT_USER () |
    + + ---------------- + + ---------------- + +
    | বিল @ লোকালহোস্ট | বিল @% |
    + + ---------------- + + ---------------- + +
    1 সারি সেট (0.02 সেকেন্ড)

    mysql> ভ্যারিয়েবলগুলি দেখান 'স্কিপ_ নেটওয়ার্কিং';
    + + ----------------- + + ------- + +
    | পরিবর্তনশীল_নাম | মান |
    + + ----------------- + + ------- + +
    | skip_networking | অন ​​|
    + + ----------------- + + ------- + +
    1 সারি সেট (0.00 সেকেন্ড)

সম্পাদনা 2

ঠিক একই সেটআপ, বাদে আমি আবার নেটওয়ার্কিং সক্রিয় করেছি এবং আমি এখন একটি বেনামে ব্যবহারকারী তৈরি করি ''@'localhost'

    রুট @ মাইহোস্ট: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql
    মাইএসকিউএল মনিটরে স্বাগতম (...)

    mysql> ব্যবহারকারীকে তৈরি করুন '' @ 'লোকালহোস্ট' 'অন্যপাস' দ্বারা চিহ্নিত;
    অনুসন্ধান ঠিক আছে, 0 টি সারি প্রভাবিত (0.00 সেকেন্ড)

    mysql> বাই

    রুট @ মাইহোস্ট: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \
        --socket = / tmp / 'মাইএসকিউএল-5.5.sock
    ত্রুটি 1045 (28000): ব্যবহারকারীর 'বিল' @ 'লোকালহোস্ট' এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে (পাসওয়ার্ড ব্যবহার করে: হ্যাঁ)
    রুট @ মাইহোস্ট: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \
        -h127.0.0.1 - প্রোটোকল = টিসিপি
    ত্রুটি 1045 (28000): ব্যবহারকারীর 'বিল' @ 'লোকালহোস্ট' এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে (পাসওয়ার্ড ব্যবহার করে: হ্যাঁ)
    রুট @ মাইহোস্ট: /home/mysql-5.5.16-linux2.6-x86_64# ./mysql -ubill -ppass \
        -hlocalhost - প্রোটোকল = টিসিপি
    ত্রুটি 1045 (28000): ব্যবহারকারীর 'বিল' @ 'লোকালহোস্ট' এর জন্য অ্যাক্সেস অস্বীকার করা হয়েছে (পাসওয়ার্ড ব্যবহার করে: হ্যাঁ)

সম্পাদনা 3

সম্পাদনা 2 হিসাবে একই পরিস্থিতি, এখন বেনামে ব্যবহারকারীর পাসওয়ার্ড সরবরাহ করে।

    রুট @ মাইহোস্ট: / হোমে / মাইস্কুল 5.5.16-linux2.6-x86_64#
    মাইএসকিউএল মনিটরে স্বাগতম (...)

    mysql> নির্বাচন ব্যবহারকারী (), CURRENT_USER ();
    + + ---------------- + + ---------------- + +
    | ব্যবহারকারী () | CURRENT_USER () |
    + + ---------------- + + ---------------- + +
    | বিল @ লোকালহোস্ট | @ লোকালহোস্ট |
    + + ---------------- + + ---------------- + +
    1 সারি সেট (0.01 সেকেন্ড)

উপসংহার 1, সম্পাদনা 1 থেকে: 'bill'@'%'সকেটের মাধ্যমে কেউ প্রমাণীকরণ করতে পারে ।

উপসংহার 2, সম্পাদনা 2 থেকে: টিসিপি বা সকেটের মাধ্যমে সংযোগ স্থাপনের প্রমাণীকরণ প্রক্রিয়াতে কোনও প্রভাব নেই ( 'something'@'localhost'স্পষ্টতই সকেটের মাধ্যমে কেউ অন্য কারও সাথে সংযুক্ত হতে পারে না )।

উপসংহার 3, সম্পাদনা 3 থেকে: যদিও আমি উল্লেখ করেছি -ubill, বেনামে ব্যবহারকারীরূপে আমাকে অ্যাক্সেস দেওয়া হয়েছে। এটি উপরে বর্ণিত "বাছাইয়ের নিয়ম" এর কারণেই। লক্ষ্য করুন যে বেশিরভাগ ডিফল্ট ইনস্টলেশনগুলিতে একটি নন-পাসওয়ার্ড, বেনামে ব্যবহারকারী উপস্থিত (এবং এটি সুরক্ষিত / অপসারণ করা উচিত)।


9
আমার মতো 'বিল' @ '' লোকালহোস্ট '' কেন '' @ 'লোকালহোস্ট' মেলে সে সম্পর্কে কৌতূহলযুক্ত কারও জন্য, একটি খালি স্ট্রিং কার্যকরভাবে মাইএসকিউএল এর প্রমাণীকরণ অ্যালগরিদমে একটি ওয়াইল্ড কার্ড কার্যকর করে।
ডিন বা

2
@ সানজা এই কাজের সাথে অতিরিক্ত সতর্কতা অবলম্বন করুন। আপনি যে কোনও অবস্থান থেকে আপনার ডাটাবেসে বেনামে অ্যাক্সেসের অনুমতি দিচ্ছেন। সন্দেহের ক্ষেত্রে আমি বরং ব্যবহারকারীকে মুছতে চাই।
র্যান্ডমসিড

7
@ র্যান্ডমসিড এই মন্তব্যের জন্য আপনাকে ধন্যবাদ! সম্ভবত আমার কেবল অনামী ব্যবহারকারীকে মুছে ফেলা উচিত। PS আমি পাওয়া dev.mysql.com/doc/refman/5.1/en/default-privileges.html বলছেন যে যে এই ব্যবহারকারীদের নিশ্চয় মোছা যাবে না: DROP USER ''@'localhost';। তাদের কোনও বিশেষ উদ্দেশ্যে প্রয়োজন হয় না।
অ্যালেক্স

1
আমি বেনামে ব্যবহারকারীর নাম বাদ দিয়েছি, কিন্তু জিনিসগুলি এখনও কার্যকর হয়নি। তারপরে আমি দেখতে পেলাম যে আমাকে "ফ্লুশ প্রাইভেলিজ "ও জারি করা দরকার। এটি উল্লেখ করাও সহায়ক হবে।
নিম প্র্যাকস

2
এই উত্তর! এটি প্রতিটি মাইএসকিএল ম্যানুয়ালটিতে সাহসী মূলধনীতে আসে না কেন। বেকার ব্যবহারকারীকে মুছে ফেলুন বা এটি আপনার সমস্ত মনোযোগ লোকাল থেকে লগইন করার জন্য হত্যা করবে!
সের্গেই

140

চেষ্টা করুন:

~$ mysql -u root -p
Enter Password:

mysql> grant all privileges on *.* to bill@localhost identified by 'pass' with grant option;

10
এটি বরং বিপজ্জনক, যদি কেউ আপনার বিল @ লোকালহোস্ট মাইএসকিএল অ্যাকাউন্টটি হ্যাক করে তবে তার কাছে আপনার মাইএসকিএল সার্ভারের সমস্ত ডেটাবেজে অবিচ্ছিন্ন অ্যাক্সেস থাকবে।
অ্যাডোনিস কে। কাকুলিডিস

2
Whehey। আমার ব্যবহারকারী 'myusername'@'myhost.static.myip.com' এর চারপাশে আমাকে উদ্ধৃতি দিতে হয়েছিল তখন এটি কার্যকর হয়েছিল।
বেনডেকো

এটি আমার পক্ষে কাজ করে তবে আমি ভয় করি যে আমি ব্যবহারকারীর জন্য খুব বেশি সুযোগ-সুবিধাগুলি দিয়েছি
Csaba Toth

1
@ সিসবা আপনি যা করেছেন ততক্ষণ আপনার ব্যবহারকারীর যা প্রয়োজন তার দরকার নেই এবং আর কিছু না করা পর্যন্ত সুযোগগুলি আবার কমিয়ে দিন।
জওয়ান

... এবং যদি এটি আপনাকে "ব্যবহারকারী 'রুট' @ 'লোকালহোস্ট' (পাসওয়ার্ড ব্যবহার করে: YES) এর জন্য অ্যাক্সেস প্রত্যাখ্যান করে" তবে আপনি কী করবেন?
গ্রুনিয়ন শাফটো

75

আপনি যখন দৌড়েছিলেন

mysql -u bill -p

এবং এই ত্রুটি পেয়েছি

ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES)

mysqld আপনাকে যেমন সংযুক্ত হওয়ার প্রত্যাশা করছে bill@localhost

তৈরি করার চেষ্টা করুন bill@localhost

CREATE USER bill@localhost IDENTIFIED BY 'passpass';
grant all privileges on *.* to bill@localhost with grant option;

আপনি যদি দূর থেকে সংযোগ স্থাপন করতে চান তবে আপনাকে অবশ্যই DCP নাম, পাবলিক আইপি, বা 127.0.0.1 টিসিপি / আইপি ব্যবহার করে নির্দিষ্ট করতে হবে:

mysql -u bill -p -hmydb@mydomain.com
mysql -u bill -p -h10.1.2.30
mysql -u bill -p -h127.0.0.1 --protocol=TCP

একবার আপনি লগইন করুন, দয়া করে এটি চালান

SELECT USER(),CURRENT_USER();

ব্যবহারকারী () কীভাবে আপনি মাইএসকিউএলে প্রমাণীকরণের চেষ্টা করেছিলেন তা জানিয়েছে USER

CURRENT_USER () mysql.user সারণী থেকে কীভাবে আপনাকে মাইএসকিউএলে প্রমাণীকরণের অনুমতি দেওয়া হয়েছিল তা জানায়

আপনাকে কীভাবে এবং কেন আপনাকে মাইএসকিএল-এ লগইন করার অনুমতি দেওয়া হয়েছিল সে সম্পর্কে এটি আপনাকে আরও ভাল ধারণা দেয়। কেন এই দর্শনটি জানা গুরুত্বপূর্ণ? এটি ব্যবহারকারীর প্রমাণীকরণের ক্রম প্রোটোকলের সাথে সম্পর্কিত।

এখানে একটি উদাহরণ রয়েছে: আমি আমার ডেস্কটপ মাইএসকিউএলে একটি বেনামে ব্যবহারকারী তৈরি করব

mysql> select user,host from mysql.user;
+---------+-----------+
| user    | host      |
+---------+-----------+
| lwdba   | %         |
| mywife  | %         |
| lwdba   | 127.0.0.1 |
| root    | 127.0.0.1 |
| lwdba   | localhost |
| root    | localhost |
| vanilla | localhost |
+---------+-----------+
7 rows in set (0.00 sec)

mysql> grant all on *.* to x@'%';
Query OK, 0 rows affected (0.02 sec)

mysql> select user,host from mysql.user;
+---------+-----------+
| user    | host      |
+---------+-----------+
| lwdba   | %         |
| mywife  | %         |
| x       | %         |
| lwdba   | 127.0.0.1 |
| root    | 127.0.0.1 |
| lwdba   | localhost |
| root    | localhost |
| vanilla | localhost |
+---------+-----------+
8 rows in set (0.00 sec)

mysql> update mysql.user set user='' where user='x';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> select user,host from mysql.user;
+---------+-----------+
| user    | host      |
+---------+-----------+
|         | %         |
| lwdba   | %         |
| mywife  | %         |
| lwdba   | 127.0.0.1 |
| root    | 127.0.0.1 |
| lwdba   | localhost |
| root    | localhost |
| vanilla | localhost |
+---------+-----------+
8 rows in set (0.00 sec)

mysql>

ঠিক আছে আমাকে বেনামী ব্যবহারকারী হিসাবে লগইন দেখুন:

C:\MySQL_5.5.12>mysql -urol -Dtest -h127.0.0.1 --protocol=TCP
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 5.5.12-log MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user(),current_user();
+---------------+----------------+
| user()        | current_user() |
+---------------+----------------+
| rol@localhost | @%             |
+---------------+----------------+
1 row in set (0.00 sec)

mysql>

প্রমাণীকরণের আদেশটি খুব কঠোর। এটি সবচেয়ে সুনির্দিষ্ট থেকে নিখুঁত থেকে পরীক্ষা করে। আমি ডিবিএ স্ট্যাকএক্সচেঞ্জ এ এই প্রমাণীকরণ শৈলী সম্পর্কে লিখেছি

যখন প্রয়োজন হয় তখন স্পষ্টভাবে টিসিপিকে মাইএসকিএল ক্লায়েন্টের প্রোটোকল হিসাবে কল করতে ভুলবেন না।


1
'bill'@'localhost'ম্যাচ করা উচিত 'bill@%', এটা না?
র্যান্ডমসিড

@ ইয়াক বাছাইয়ের ক্রমটি কেবলমাত্র mysql.user এর ব্যবহারকারী কলামের উপর ভিত্তি করে নয়। মাইএসকিউএল প্রতি সেচের সাথে কোনও চরিত্রের মিল নেই। আমি ডিবিএ স্ট্যাকএক্সচেঞ্জে ব্যবহারকারী প্রমাণীকরণের ক্রম প্রোটোকল সম্পর্কে লিখেছি: dba.stackexchange.com/a/10897/877
RolandoMySQLDBA

@ ইয়াক এই কারণেই আমি বিশেষভাবে উল্লেখ করেছি SELECT USER(),CURRENT_USER();। আপনি প্রায় দু'বার অজানা ব্যবহারকারীদের সত্যই দুর্বল সেটআপগুলি ব্যতীত এই দুটি ফাংশন থেকে উপস্থিত দেখবেন না।
রোল্যান্ডোমাইএসকিউএলডিবিএ

1
আমি কখনই ধরে নিই না যে সাজানোর ক্রমটি কেবলমাত্র উপর ভিত্তি করে mysql.user। আসলে, আপনি যদি আমার উত্তরটি আবার পড়েন তবে আপনি দেখতে পাবেন যে আমি বলেছিলাম (আসলে, ম্যানুয়ালটি বলেছে) সাজানোর hostক্রমটি প্রথমে কলামের উপর ভিত্তি করে । আপনি কীভাবে আপনার বর্তমান শংসাপত্রগুলি পরীক্ষা করতে পারেন সে সম্পর্কে অনেক কিছু লিখেছিলেন, তবে কেন 'bill'@'localhost'লগইন করতে পারছেন না সে সম্পর্কে আমি খুব কম তথ্য দেখি 'bill'@'%', যা আজকের প্রশ্ন এএফএইকি। ওপিতে সম্ভবত একটি খারাপ সেটআপ রয়েছে, এই কারণেই তিনি এই ত্রুটিগুলি পান।
র্যান্ডমসিড

2
--protocol=TCPচাবি ছিল। আপনাকে অনেক ধন্যবাদ!
lfx

22

এটি দেরীতে

আমি এই সমস্ত উত্তরগুলি চেষ্টা করে দেখেছি এবং এর বিভিন্ন ধরণের সংস্করণ চালিয়েছি mysql -u root -pতবে কখনই চালানো হয়নি


mysql -u root -p

এবং কেবল [ENTER]পাসওয়ার্ডের জন্য টিপছি।


একবার আমি এটি কাজ করে। আশা করি এটি কাউকে সাহায্য করবে।


18

আমার ক্ষেত্রে একটি সম্পর্কিত সমস্যা ব্যবহার করে সংযোগ দেওয়ার চেষ্টা করছিল:

mysql -u mike -p mypass

হোয়াইটস্পেস স্পষ্টতই -u # আনম # এর মধ্যে অনুমোদিত কিন্তু -পি এবং # পাসওয়ার্ডের মধ্যে নয় #

অতএব প্রয়োজন:

mysql -u mike -pmypass

অন্যথায় সাদা স্পেসের সাথে -p মাইপাস মাইএসকিএল ডিবি নাম হিসাবে 'মাইপাস' নেয়


1
বা: mysql -u usrname -p - এটি কাউকে পাসওয়ার্ড দেখতে বাধা দেয় কারণ এটি একটি নতুন লাইন ফেলে দেবে এবং এটি প্রদর্শন না করেই পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে

দুর্দান্ত উত্তর @ এমস্ট্রাম
অর্পিত

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

17

আপনি যখন টাইপ করবেন mysql -u root -p, আপনি স্থানীয় ইউনিক্স সকেটের মাধ্যমে মাইএসকিএল সার্ভারের সাথে সংযুক্ত হচ্ছেন।

তবে আপনি যে অনুদান দিয়েছেন তা 'bill'@'%'কেবলমাত্র টিসিপি / আইপি সংযোগের সাথে কৌতূহলের সাথে যথেষ্ট মেলে।

আপনি যদি স্থানীয় ইউনিক্স সকেটে অ্যাক্সেস দিতে চান তবে আপনাকে 'বিল' @ 'লোকালহোস্ট'-তে বিশেষাধিকার প্রদান করতে হবে, যা উত্সাহজনকভাবে যথেষ্ট' বিল '@ '127.0.0.1' এর মতো নয় ious

আপনি টিএসসিপি / আইপি ব্যবহার করে মাইএসকিএল কমান্ড লাইন ক্লায়েন্টের সাথেও সংযোগ স্থাপন করতে পারেন, যেমন আপনি ইতিমধ্যে প্রদত্ত সুযোগ-সুবিধার সাথে মেলে যেমন, mysql -u root -p -h 192.168.1.123আপনার বাক্সে যে কোনও স্থানীয় আইপি ঠিকানা চালান বা চালান ।


"'বিল' @ ''% 'কেবলমাত্র টিসিপি / আইপি সংযোগের সাথে মেলে" এটি ভুল। একটি ক্লিন (কুমারী, দ্য বাক্সের বাইরে) উদাহরণে এটি ব্যবহার করে দেখুনskip-networking
র্যান্ডমসিড

@ ইয়াক আমি এই জাতীয় সেটআপে কাজ করতে 'ব্যবহারকারী' @ '%' পেতে পারি না, আপনার কী বোঝার কথা ছিল?
টি

নেটওয়ার্কিং ছাড়াই আমি v5.0 এ 'বিল' @ '%' হিসাবে সংযোগ করতে পারি (সুতরাং, সকেটের মাধ্যমে)। আপনি কি সংস্করণ ব্যবহার করছেন? আমি এটি একটি v5.5 এ চেষ্টা করব।
র্যান্ডমসিড

আমার আপডেট করা উত্তর দেখুন দয়া করে। আমি 'bill'@'%'v5.5 তে সকেটের মাধ্যমে লগইন করতে সক্ষম হয়েছি।
র্যান্ডমসিড

17

আপনি যদি নিজের পাসওয়ার্ড ভুলে যান বা আপনি নিজের পাসওয়ার্ডটি পরিবর্তন করতে চান তবে আপনি এই পদক্ষেপগুলি অনুসরণ করতে পারেন:

1: আপনার মাইএসকিএল বন্ধ করুন

[রুট @ মাওমাও ~] # পরিষেবা
মাইএসকিউএলডি এসএসকিউএল বন্ধ করা : [ঠিক আছে]

2: মাইএসকিএল পুনরায় চালু করতে "--স্কিপ-অনুদান-সারণী" ব্যবহার করুন

[মূল @ এমসি 400) #] # মাইকিকিএল_সেসেফ - স্কিপ-গ্রান্ট-টেবিলগুলি
[মূল @ cy400 ~] # / var / lib / mysql থেকে ডেটাবেস সহ মাইএসকিএলডি ডিমন শুরু করা হচ্ছে

3: একটি নতুন উইন্ডো এবং ইনপুট mysql -u রুট খুলুন

[রুট @ cy400 ~] # মাইএসকিএল-মূল
মাইএসকিউএল মনিটরে আপনাকে স্বাগতম। কমান্ডস দিয়ে শেষ; বা \ জি।

4: ব্যবহারকারীর ডাটাবেস পরিবর্তন

mysql>
টেবিল এবং কলামের নাম সমাপ্তির জন্য mysql রিডিং টেবিলের তথ্য ব্যবহার করুন -এ ডেটাবেস পরিবর্তিত হয়ে দ্রুত শুরু করতে আপনি এই বৈশিষ্ট্যটি বন্ধ করতে পারেন

5: আপনার পাসওয়ার্ডটি পরিবর্তন করুন আপনার নতুন পাসওয়ার্ডটি "()" ইনপুট হওয়া উচিত

mysql> আপডেট ব্যবহারকারী সেট পাসওয়ার্ড = পাসওয়ার্ড ('root123') যেখানে ব্যবহারকারী = 'রুট';
অনুসন্ধান ঠিক আছে, 3 টি সারি প্রভাবিত (0.00 সেকেন্ড)
সারিগুলি মিলছে: 3 পরিবর্তন হয়েছে: 3 সতর্কতা: 0

6: ফ্লাশ

mysql> ফ্লাশ সুবিধা;

7: ছেড়ে দিন

mysql>
বিদায় ছেড়ে দিন

8: মাইএসকিএল পুনরায় আরম্ভ করুন

[রুট @ cy400 ~] # পরিষেবা mysqld পুনরায় আরম্ভ;
মাইএসকিউএল বন্ধ করা
হচ্ছে: [ঠিক আছে] মাইএসকিউএল শুরু হচ্ছে: [ঠিক আছে]

বিঙ্গো! আপনি আপনার ব্যবহারকারীর নাম এবং নতুন পাসওয়ার্ড দিয়ে আপনার ডাটাবেস সংযোগ করতে পারেন:

[root@cy400 ~]# mysql -u root -p <br>
Enter password: admin123 <br>
Welcome to the MySQL monitor.  Commands end with ; or \g. <br>
Your MySQL connection id is 2 <br>
Server version: 5.0.77 Source distribution <br>
Type 'help;' or '\h' for help. Type '\c' to clear the buffer. <br>
mysql> quit <br>
Bye

1
এটি আমাকে সহায়তা করেছে, তবে আপনি যদি হোমব্রু দিয়ে এটি ইনস্টল করেন তবে ম্যাকের জন্য mysql.server stop। আমার ক্ষেত্রে, আমি ব্যবহারকারীর কলামটি আপডেট করতে পারিনি কারণ একটি নেই; এটি নিরাপদ মোডে থাকার কারণে এটিও তৈরি করতে পারেনি। আমি এই মুহুর্তে যা করছি তার জন্য আমার কোনও যত্ন নেই, তবে সঠিক ইনপুট এবং আউটপুটগুলি দেখানো সহ আমি এই ফর্ম্যাট উত্তরের সত্যই প্রশংসা করি। ধন্যবাদ!
szeitlin

আমি দুঃখিত, আমি এর আগে কখনও ম্যাক ব্যবহার করিনি o সুতরাং আমি আপনাকে সাহায্য করতে পারি না।
লি ইয়িংজুন

15

নিজেকে একটি প্রধান মাথাব্যথা থেকে বাঁচান ... আপনার সমস্যা হতে পারে আপনি পাসওয়ার্ডের চারপাশে উদ্ধৃতিগুলি হারিয়েছেন। কমপক্ষে আমার ক্ষেত্রে এটি ছিল যে আমাকে 3 ঘন্টা বিচ্ছিন্ন করেছে।

[client]
user = myusername
password = "mypassword"   # <----------------------- VERY IMPORTANT (quotes)
host = localhost

http://dev.mysql.com/doc/refman/5.7/en/option-files.html

"এখানে একটি সাধারণ ব্যবহারকারী বিকল্প ফাইল:" অনুসন্ধান করুন এবং সেখানে তারা যে উদাহরণটি বলেছেন তা দেখুন। শুভকামনা, এবং আমি আশা করি অন্য কাউকে কিছুটা সময় সাশ্রয় করব।


1
এই জন্য আপনাকে ধন্যবাদ. আমি এটিতে দিনের অর্ধেক সময় নষ্ট করেছি এবং পাসওয়ার্ডের চারপাশে বোকা উদ্ধৃতিগুলি কৌশলটি করেছে!
লোকফ্রমেফ্ল

হা হা। আমার সাথে যখন ঘটেছিল তখন আমি একইরকম অপচয় করতাম। সাহায্য করার জন্য খুশি।
মিমোরালিয়া

12

সমাধানটি বেনামে (কোনও) ব্যবহারকারী মুছে ফেলা হয়!

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


11

আমার কিছুটা অনুরূপ সমস্যা ছিল - মাইএসকিউএল প্রবেশের আমার প্রথম প্রয়াসে, যেমন rootএটি আমাকে অ্যাক্সেস অস্বীকার করে বলেছিল। দেখা যাচ্ছে আমি ব্যবহার করতে ভুলে গেছি sudo...

সুতরাং, যদি আপনি rootপ্রথম প্রয়াসে ব্যর্থ হন , চেষ্টা করুন:

sudo mysql -u root -p

এবং তারপরে আপনার পাসওয়ার্ড লিখুন, এটি কাজ করা উচিত।


6

আমি নিজের জন্য সবচেয়ে ভাল সমাধানটি খুঁজে পেয়েছি।

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

ERROR 1045 (28000): Access denied for user 'sonar'@'localhost' (using password: YES)

আমি অন্য মেশিন থেকে এবং জেনকিন্স কাজের মাধ্যমে এটি চেষ্টা করার পরে অ্যাক্সেসের জন্য আমার ইউআরএল

alm-lt-test.xyz.com

আপনি যদি দূর থেকে সংযোগ স্থাপন করতে চান তবে আপনি নীচের হিসাবে এটি বিভিন্ন উপায়ে নির্দিষ্ট করতে পারেন:

mysql -u sonar -p -halm-lt-test.xyz.com
mysql -u sonar -p -h101.33.65.94
mysql -u sonar -p -h127.0.0.1 --protocol=TCP
mysql -u sonar -p -h172.27.59.54 --protocol=TCP

ইউআরএল দিয়ে এটি অ্যাক্সেস করতে আপনাকে কেবল নিম্নলিখিত কোয়েরিটি সম্পাদন করতে হবে।

GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'alm-lt-test.xyz.com' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'127.0.0.1' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'172.27.59.54' IDENTIFIED BY 'sonar';

4

ঠিক আছে, আমি নিশ্চিত নই তবে সম্ভবত এটি মাইএসকিএল ইনস্টলেশন ডিরেক্টরিটির ভিতরে my.cnf ফাইলটি অপরাধী p এই লাইনটি মন্তব্য করুন এবং সমস্যাটি সমাধান হতে পারে।

bind-address = 127.0.0.1

1
আরও তথ্যের জন্য, আপনি এটিও উইকি.বিটনেমি.আর
আলী

1
আমি নিশ্চিত যে এটি সমস্যা নয়। যদি এটি হয় তবে মাইএসকিউএল 127.0.0.1 ব্যতীত অন্য কোনও হোস্টের সংযোগগুলি প্রত্যাখ্যান করে এবং আপনি কোনও এসকিউএল 'অ্যাক্সেস অস্বীকৃত' ত্রুটি পাবেন না।
পেলমিস্টার

3

কেবল আপনাকে একই রকম ত্রুটি পেয়েছি এমন একটি অস্বাভাবিক পরিস্থিতি আপনাকে জানাতে চেয়েছিলাম। সম্ভবত এটি ভবিষ্যতে কাউকে সহায়তা করে।

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

পরে দেখা গেল যে দর্শনগুলি অপরাধী (গুলি)। আমাদের অবজেক্ট ট্রান্সফার স্থানীয় ওয়েবসাইট ব্যবহারকারীর চেয়ে অন্য (এবং দূরবর্তী: অ্যাডমিন @ আইপি-ঠিকানা) ব্যবহারকারী ব্যবহার করে সম্পন্ন হয়। সুতরাং দৃশ্যের হিসাবে 'অ্যাডমিন' @ 'আইপি-ঠিকানা' দিয়ে দর্শনগুলি তৈরি করা হয়েছিল। সিকিউরিটি ডিফল্টরূপে ভিউ তৈরি

SQL SECURITY DEFINER

স্থানীয়-ওয়েব-ব্যবহারকারীর দৃষ্টিভঙ্গিটি ব্যবহার করার চেষ্টা করার সময় এটি টেবিলগুলি ব্যবহারের জন্য নির্দিষ্টকারীর অভাবের সুবিধার কারণে হোঁচট খায়। একবার সুরক্ষা পরিবর্তন করা হয়েছিল:

SQL SECURITY INVOKER

বিষয়টি সমাধান করা হয়েছিল। ত্রুটি বার্তার উপর ভিত্তি করে আসল সমস্যাটি প্রত্যাশার চেয়ে সম্পূর্ণ আলাদা ছিল।


1
এটি আমার সমস্যার উত্স হিসাবেও শেষ হয়েছিল - একটি অনুপস্থিত "স্পেসিফার" সহ একটি দৃশ্য। আপনার সাথে এটি যা হচ্ছে তা খুঁজে পাওয়ার একটি দ্রুত উপায় হ'ল একই টেবিলটি জিজ্ঞাসা করার চেষ্টা করা বা রুট হিসাবে দেখা - যদি আপনি করেন তবে ত্রুটি বার্তাটি আরও অনেক বর্ণনামূলক "ERROR 1449 (HY000) - এ পরিবর্তিত হয়েছে: ব্যবহারকারী হিসাবে বর্ণিত নির্ধারক উপস্থিত নেই "।
জোশুয়া ডেভিস

3

এর মধ্যে পার্থক্য:

CREATE USER 'bill'@'%' IDENTIFIED BY 'passpass';

এবং

CREATE USER 'bill'@'localhost' IDENTIFIED BY 'passpass';

এটি পরীক্ষা করুন:

mysql> select user,host from mysql.user;
+---------------+----------------------------+
| user          | host                       |
+---------------+----------------------------+
| bill          | %                          | <=== created by first
| root          | 127.0.0.1                  |
| root          | ::1                        |
| root          | localhost                  |
| bill          | localhost                  | <=== created by second
+---------------+----------------------------+

আদেশ

mysql -u bill -p

'বিল' @ 'লোকালহোস্ট' এর সাথে অন্তর্ভুক্ত এবং 'বিল' @ ''% 'তে অন্তর্ভুক্ত নয় access

'বিল' @ 'লোকালহোস্ট' এর জন্য কোনও অনুমতি নেই

আপনি ত্রুটি পান:

ERROR 1045 (28000): Access denied for user 'bill'@'localhost' (using password: YES)

সমস্যা সমাধান:

CREATE USER 'bill'@'localhost' IDENTIFIED BY 'passpass';

grant all privileges on . to 'bill'@'localhost' with grant option;

অনুদান বিবৃতি একটি ত্রুটি ফিরিয়ে দিয়েছে। আমাকে এর মতো একটি ডেটাবেস নির্দিষ্ট করা দরকার: newdb তে সমস্ত সুযোগ-সুবিধাগুলি প্রদান করুন B * থেকে ....
লেবার্ড

3

আপনার পাসওয়ার্ডে @, $, ইত্যাদির মতো কিছু বিশেষ অক্ষর থাকলে এটিও ঘটে। এই পরিস্থিতি এড়াতে আপনি একক উদ্ধৃতিতে পাসওয়ার্ড মোড়ানো করতে পারেন:

$ mysql -usomeuser -p's0mep@$$w0Rd'

অথবা পরিবর্তে প্রবেশের সময় পাসওয়ার্ড ব্যবহার করবেন না। এটিকে ফাঁকা রাখুন এবং তারপরে টার্মিনাল জিজ্ঞাসা করলে এটি টাইপ করুন। এটি প্রস্তাবিত উপায়।

$ mysql -usomeuser -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 191
Server version: 5.5.46-0ubuntu0.14.04.2 (Ubuntu)

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

3
এটি প্রকৃতপক্ষে একটি সমস্যা হতে পারে (যেমনটি আমার পক্ষে ছিল)। আমার যে কোনও অ্যাকাউন্টের জন্য আমার সমস্ত পাসওয়ার্ড ব্যবহার করে তৈরি করা হয়েছে pwgen। আজ আমি একটি মাইএসকিউএল ডাটাবেস এবং তার ব্যবহারকারীর জন্য একটি নতুন তৈরি করেছি। দুর্ভাগ্যক্রমে পাসওয়ার্ডটিতে একটি ব্যাকস্ল্যাশ "\" রয়েছে যা আমি ত্রুটিগুলির উত্স হিসাবে সনাক্ত করতে পারি না (আমি এটির জন্যও ভাবিনি)। সুতরাং, আমি কয়েক ঘন্টার সমাধান অনুসন্ধান করেছি। হতাশায় "123" এ পাসওয়ার্ড সেট করার পরে লগইনটি অবশেষে কাজ করেছিল। … ব্যবহারকারীদের সম্পর্কে সচেতন হওয়া উচিত যে উদাহরণস্বরূপ মাইএসকিউএল যেমন "daiy4ha4in7chooshuiphie \ Th * aew" এর মতো পাসওয়ার্ড ব্যবহার করার বিষয়ে কোনও সতর্কতা প্রদর্শন করে না কারণ কিছু বিশেষ অক্ষর সমস্যার কারণ হতে পারে।
আরভিদ

1
এটি এখনও প্রদর্শিত না হলে এটি একটি উত্তর হিসাবে পোস্ট করার কথা ছিল, এটি লক্ষ্য করার জন্য কেবল তালিকা থেকে খুব দূরে ছিল (সুতরাং আমি এটি +1 ধাক্কা দিচ্ছি)
এসিলেটার

3

আমার জন্য, এই সমস্যাটি মাইএসকিউএল 5.7.2 এর নতুন বৈশিষ্ট্যের কারণে ঘটেছিল: userএন্ট্রিগুলি যদি তাদের হয় তবে তা উপেক্ষা করা হবেplugin ক্ষেত্রটি খালি হয়।

mysql_native_passwordএগুলি পুনরায় সক্ষম করার জন্য এটিতে সেট করুন:

UPDATE user SET plugin='mysql_native_password' WHERE user='foo';
FLUSH PRIVILEGES;

মাইএসকিউএল 5.7.2 এর জন্য প্রকাশের নোটগুলি দেখুন«প্রমাণীকরণ নোটস under এর অধীনে »

কোনও কারণে (সম্ভবত আমার প্রাক-4.1 পাসওয়ার্ডের হ্যাশগুলি সরানো হয়েছিল), দ্য mysql_upgrade স্ক্রিপ্টটি কোনও ডিফল্ট প্লাগইন মান সেট করে না।

আমি নিম্নলিখিত সতর্কতা বার্তাটি লক্ষ্য করে জানতে পেরেছি /var/log/mysql/error.log:

[সতর্কতা] ব্যবহারকারীর এন্ট্রি 'foo' @ '%' এর একটি খালি প্লাগইন মান রয়েছে। ব্যবহারকারীকে উপেক্ষা করা হবে এবং এই ব্যবহারকারীর সাথে আর কেউ লগইন করতে পারবেন না।

আমি এই উত্তরটি এখানে পোস্ট করলাম সম্ভবত এটির মতো একই হাস্যকর পরিমাণ ব্যবহার করতে কাউকে বাঁচাতে।


2

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


2

ডিবাগিং সংক্ষিপ্তসার

  • টাইপ ত্রুটির জন্য পরীক্ষা করুন: ব্যবহারকারীর নাম বা পাসওয়ার্ড।
  • হোস্টের নামটি যাচাই করুন এবং এটি mysql.user টেবিলের হোস্ট নামের সাথে তুলনা করুন।
  • ব্যবহারকারীর উপস্থিতি আছে কি নেই Check
  • হোস্টে আইপি ঠিকানা বা হোস্টের নাম রয়েছে কিনা তা পরীক্ষা করুন।

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

সম্ভাব্য কারণ:

  • কেস 1: টাইপ ত্রুটি: ব্যবহারকারীর নাম বা পাসওয়ার্ড।

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

সমাধান:

এই ধরণের ত্রুটির সমাধান খুব সহজ। কেবল সঠিক ব্যবহারকারীর নাম এবং পাসওয়ার্ড লিখুন। এই ত্রুটি সমাধান করা হবে। আপনি যদি পাসওয়ার্ড ভুলে যান তবে আপনি ব্যবহারকারীর নাম / পাসওয়ার্ডটি পুনরায় সেট করতে পারেন। আপনি যদি অ্যাডমিন / রুট অ্যাকাউন্টের জন্য পাসওয়ার্ড ভুলে যান তবে রুট পাসওয়ার্ডটি পুনরায় সেট / পুনঃনির্ধারণ করার অনেক উপায় রয়েছে। আপনি যদি পাসওয়ার্ড ভুলে যান তবে কীভাবে রুট পাসওয়ার্ডটি পুনরায় সেট করতে হবে সে সম্পর্কে আমি অন্য একটি পোস্ট প্রকাশ করব।

  • কেস ২: ভুল হোস্ট থেকে অ্যাক্সেস করা।

মাইএসকিউএল সুরক্ষা বৈশিষ্ট্য হিসাবে ব্যবহারকারী অ্যাক্সেসের জন্য হোস্ট ভিত্তিক বিধিনিষেধ সরবরাহ করে। আমাদের উত্পাদন পরিবেশে আমরা কেবলমাত্র অ্যাপ্লিকেশন সার্ভারগুলিতে অ্যাক্সেসের অনুরোধকে সীমাবদ্ধ করতাম। এই বৈশিষ্ট্যটি অনেকগুলি উত্পাদন দৃশ্যে সত্যই সহায়ক।

সমাধান:

আপনি যখন এই ধরণের সমস্যার মুখোমুখি হন, প্রথমে mysql.user সারণীটি পরীক্ষা করে আপনার হোস্টকে অনুমতি দেওয়া হচ্ছে কিনা তা যাচাই করুন। যদি এটি সংজ্ঞায়িত না হয় তবে আপনি mysql.user টেবিলটিতে নতুন রেকর্ডটি আপডেট বা সন্নিবেশ করতে পারেন। সাধারণত, সুরক্ষা উদ্বেগের কারণে রিমোট মেশিন থেকে রুট ব্যবহারকারী হিসাবে অ্যাক্সেস অক্ষম করা এবং এটি সর্বোত্তম অনুশীলন নয়। যদি আপনার একাধিক মেশিন থেকে আপনার সার্ভারটি অ্যাক্সেস করার প্রয়োজনীয়তা থাকে তবে কেবল সেই মেশিনগুলিতে অ্যাক্সেস দিন। ওয়াইল্ডকার্ড (%) ব্যবহার না করাই ভাল এবং সর্বজনীন অ্যাক্সেস দেয়। আমি মাইএসকিএল.ইউজার টেবিলটি আপডেট করি, এখন ডিমোউসার যে কোনও হোস্ট থেকে মাইএসকিউএল সার্ভার অ্যাক্সেস করতে পারে।

  • কেস 3: ব্যবহারকারীর সার্ভারে বিদ্যমান নেই।

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

সলিউশন:

আপনি যখন এই ধরণের সমস্যার মুখোমুখি হন, কেবল ব্যবহারকারী mysql.user টেবিলটিতে আছে কিনা তা পরীক্ষা করে দেখুন। রেকর্ডটি বিদ্যমান না থাকলে ব্যবহারকারী অ্যাক্সেস করতে পারবেন না। যদি সেই ব্যবহারকারীর অ্যাক্সেসের প্রয়োজন হয় তবে সেই ব্যবহারকারীর নাম দিয়ে একটি নতুন ব্যবহারকারী তৈরি করুন।

  • কেস ৪: সংখ্যাসূচক এবং নাম ভিত্তিক হোস্টের মিশ্রণ।

গুরুত্বপূর্ণ পয়েন্ট

  • ব্যবহারকারী হোস্টকে সংজ্ঞায়িত করার সময় ওয়াইল্ডকার্ডগুলি ব্যবহার করার পরামর্শ দেওয়া হয় না, সঠিক হোস্টের নামটি ব্যবহার করার চেষ্টা করুন।

  • রিমোট মেশিন থেকে রুট লগইন অক্ষম করুন।

  • প্রক্সি ব্যবহারকারী ধারণাটি ব্যবহার করুন।

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

  • মাইএসকিউএল সার্ভারের রুট পাসওয়ার্ড ভুলে গেলে কী করবেন।
  • মাইএসকিউএল এক্সেস সুবিধার সমস্যা এবং ব্যবহারকারীর সম্পর্কিত সারণী।
  • মাইএসকিউএল সুরক্ষা বৈশিষ্ট্যগুলি সর্বোত্তম অনুশীলনের সাথে।

আমি আশা করি যে এই পোস্টটি মাইএসকিউএল ব্যবহারকারীর জন্য মাইএসকিউএল ত্রুটি কোড 1045 অ্যাক্সেস প্রত্যাখ্যান করতে আপনাকে সহায়তা করবে।


2

আমি আশা করি আপনি মাইএসকিএলে ডেবিয়ান-সিস-রক্ষণাবেক্ষণকারী ব্যবহারকারীকে মুছে ফেলে আরও ক্ষতি করেননি

আপনার মাইএসকিএল ডিমনটি সাধারণভাবে চালান। নীচে প্রদর্শিত হিসাবে আপনার mysql ক্লায়েন্ট শুরু করুন

mysql -u debian-sys-maint -p

অন্য টার্মিনালে, catফাইল /etc/mysql/debian.cnf। এই ফাইলটিতে একটি পাসওয়ার্ড রয়েছে; জিজ্ঞাসা করা হলে সেই পাসওয়ার্ডটি আটকান।

http://ubuntuforums.org/showthread.php?t=1836919


2

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


1

আপডেট: v8.0.15 (সম্ভবত এই সংস্করণ) এPASSWORD() ফাংশনটি কাজ করে না।

তোমাকে করতেই হবে:

  1. আপনি প্রথমে মাইএসকিউএল বন্ধ করেছেন তা নিশ্চিত করুন।
  2. সুবিধার বাইপাস দিয়ে নিরাপদ মোডে সার্ভারটি চালান: sudo mysqld_safe --skip-grant-tables
  3. প্রবেশ করুন: mysql -u root
  4. MySQL> UPDATE mysql.user SET authentication_string=null WHERE User='root';
  5. MySQL> FLUSH PRIVILEGES;
  6. MySQL> exit;
  7. আবার লগইন করুন: mysql -u root
  8. MySQL> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';

0

যখন আপনি চালাতে mysql -u bill -p, localhostআপনার, আপনার আইপি করার সংকল্প যেহেতু এটি 127.0.0.1 এবং হয় /etc/hosts, ফাইল ডিফল্ট 127.0.0.1 localhostবিদ্যমান। সুতরাং, মাইএসকিএল আপনাকে তা ব্যাখ্যা করে bill@localhostযা অনুমোদিত নয় bill@'%'। এজন্য rootফলাফলের জন্য ব্যবহারকারীর জন্য 2 টি পৃথক রেকর্ড রয়েছেselect host, user from mysql.user; ক্যোয়ারির ।

এই সমস্যাটি পরিচালনা করার দুটি উপায় রয়েছে।

একটি এমন একটি আইপি নির্দিষ্ট করে যা /etc/hostsআপনি লগইন করার চেষ্টা করার সময় ফাইলের মাধ্যমে বিপরীতভাবে সমাধান হয় না । উদাহরণস্বরূপ, সার্ভারের আইপি হয় 10.0.0.2। আপনি যখন কমান্ডটি চালাবেন mysql -u bill -p -h 10.0.0.2, আপনি লগইন করতে সক্ষম হবেন। আপনি যদি টাইপ করেন তবে আপনি select user();পাবেন bill@10.0.0.2। অবশ্যই, কোনও /etc/hostsফাইলের নামই আপনার ফাইলের এই আইপিতে সমাধান করা উচিত নয় ।

দ্বিতীয়ত, আপনার এই নির্দিষ্ট ডোমেন নামের জন্য অনুদান অ্যাক্সেস প্রয়োজন। কারণ bill@localhost, আপনার কমান্ড কল করা উচিত grant all privileges on *.* to bill@localhost identified by 'billpass';। এই ক্ষেত্রে, আপনি কমান্ডের সাহায্যে লগইন করতে সক্ষম হবেন mysql -u bill -p। লগইন হয়ে গেলে, select user();কমান্ড রিটার্ন দেয়bill@localhost

তবে এটি কেবল তার জন্য আপনি একই হোস্টটিতে একটি মাইএসকিএল সার্ভার লগইন করার চেষ্টা করেন। দূরবর্তী হোস্টগুলি থেকে, মাইএসকিএল প্রত্যাশিতভাবে আচরণ করে, '%' আপনাকে লগইন করার অনুমতি দেবে।


0

আমি পুরানো বগি ব্যবহারকারী 'বিল' এন্ট্রিগুলি মুছে ফেলার মাধ্যমে এটি সমাধান করেছি (এটি গুরুত্বপূর্ণ অংশ: mysql.user এবং mysql.db উভয় থেকে ), তারপরে আগের মতো একই ব্যবহারকারী তৈরি করলাম :

FLUSH PRIVILEGES;
CREATE USER bill@localhost IDENTIFIED BY 'passpass';
grant all privileges on *.* to bill@localhost with grant option;
FLUSH PRIVILEGES;

কাজ করেছেন, ব্যবহারকারী সংযোগ করছেন is এখন আমি এটি থেকে কিছু চক্রান্ত দূর করব :)


0

আমিও একই ত্রুটির মুখোমুখি হয়েছি। সেটআপ যা কাজ করে নি তা নীচে:

define("HOSTNAME", "localhost");
define("HOSTUSER", "van");
define("HOSTPASS", "helsing");
define("DBNAME", "crossbow");
$connection = mysqli_connect(HOSTNAME, HOSTUSER, HOSTPASS);

নীচে সম্পাদিত সেটআপটি এটির কাজ করে। পার্থক্য লক্ষ্য করুন?

define('HOSTNAME', 'localhost');
define('HOSTUSER', 'van');
define('HOSTPASS', 'helsing');
define('DBNAME', 'crossbow');
$connection = mysqli_connect(HOSTNAME, HOSTUSER, HOSTPASS);

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

আমি যখন উইন্ডোজ পরিবেশের বিপরীতে লিনাক্স বাক্সে আমার অ্যাপ্লিকেশন পরীক্ষা করেছি তখন এই ত্রুটিটি উপস্থিত হয়েছিল।


0

আমার অনুরূপ সমস্যা ছিল কারণ আমার পাসওয়ার্ডটিতে ";" আমার পাসওয়ার্ডটি ভঙ্গ করা যখন আমি প্রথম মুহুর্তে এটি তৈরি করি। যদি আপনাকে সাহায্য করতে পারে তবে এটির সাথে সাবধানতা দিন।


0

এটি খুব কম লোকের ক্ষেত্রেই প্রয়োগ হতে পারে, তবে এখানে যায়। একটি বিস্ময়বোধক ব্যবহার করবেন না!আপনার পাসওয়ার্ডে ।

আমি করেছি এবং মারিয়াডিবি ব্যবহার করে উপরের ত্রুটি পেয়েছি। যখন আমি এটিকে সরল করেছিলাম কেবল সংখ্যা এবং চিঠিগুলিতে এটি কাজ করেছিল। অন্যান্য অক্ষর যেমন @এবং$ সূক্ষ্মভাবে কাজ করে - আমি একই উদাহরণগুলিতে পৃথক ব্যবহারকারীর জন্য এই চরিত্রগুলি ব্যবহার করেছি।

এই ঠিকানায় পঞ্চম প্রতিক্রিয়া আমাকে আমার স্থির করে নিয়েছে।


0

উইন্ডোজে, কীভাবে সমাধান করবেন তা এখানে:

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

  1. কন্ট্রোল প্যানেল থেকে মাইএসকিএল আনইনস্টল করুন
  2. C:\Program Files,C:\Program Files (x86)এবং থেকে MySQL ফোল্ডারটি মুছুনC:\ProgramData
  3. মাইএসকিএল ইনস্টল করুন

অন্যান্য সমস্ত উত্তর চেষ্টা করে, অবশেষে এটি চেষ্টা করার সংকল্প করলেন এবং এটি কার্যকর হয়েছিল!
জেসনোরিয়র্ডন

0

উইন্ডোজ যেমন কেস-সংবেদনশীল ওএসে মাইএসকিউএল চলমান থাকে তবে এটিও ঘটতে পারে।

উদাহরণস্বরূপ আমি দেখেছি যে এই শংসাপত্রগুলি ব্যবহার করে একটি ডাটাবেসের সাথে সংযোগ স্থাপনের চেষ্টা ব্যর্থ হয়েছে:

MySQL> grant select on databaseV105.* to 'specialuser' identified by 's3curepa5wrd';

$ mysql -specialuser' -p's3curepa5wrd' -h10.61.130.89 databaseV105

ত্রুটি 1045 (২৮০০০): ব্যবহারকারীর জন্য 'এক্সপ্রেশনাল'@'10.0.1.113' অ্যাক্সেস অস্বীকার করা হয়েছে (পাসওয়ার্ড ব্যবহার করে: হ্যাঁ)

তবে, এটি সফল হয়েছে:

MySQL> grant select on databasev105.* to 'specialuser' identified by 's3curepa5wrd';

$ mysql -specialuser' -h10.300.300.400 databaseV105 -p

পাসওয়ার্ড লিখুন:


0

যদি আপনার dbname, ব্যবহারকারীর নাম, পাসওয়ার্ড, ইত্যাদি স্ট্রিং দৈর্ঘ্য https://dev.mysql.com/doc/refman/5.7/en/grant-tables.html#grant-tables-scope-column-properties এ বর্ণিত মানগুলি অতিক্রম করে , আপনি লগ ইন করতে ব্যর্থ হতে পারে, যেমনটি আমার ক্ষেত্রে ছিল।


0

আজকাল! এর জন্য সমাধান:

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

ওয়াম্পসারভার ৩.২.০ নতুন ইনস্টলেশন বা আপগ্রেড

সম্ভবত ডিফল্ট হিসাবে xampব্যবহার mariaDBকরা ভাল।

Wampসার্ভারটি mariaDBএবং মাইএসকিএল সহ আসে এবং mariaDB3306 পোর্টে ডিফল্ট হিসাবে ইনস্টল হয় এবং 3307 এ মাইএসকিএল , পোর্ট কখনও কখনও 3308।

সংযোগ mysql!

ইনস্টলেশনে এটি ব্যবহার করতে বলে mariaDBবা MySql, তবে মারিয়াডিবি ডিফল্ট হিসাবে পরীক্ষা করা হয় এবং আপনি এটি পরিবর্তন করতে পারবেন না, mysqlবিকল্পটি পরীক্ষা করে ইনস্টল করুন।

ইনস্টলেশন সম্পন্ন হয়ে গেলে উভয়ই mariaDBডিফল্ট পোর্ট 3306 এবং mysqlঅন্য বন্দর 3307 বা 3308 এ চলতে থাকবে।

wampserverআইকনটিতে রাইট ক্লিক করুন যেখানে এটির চলমানটি ডান নীচের কোণায় হওয়া উচিত, গোটো সরঞ্জামগুলি এবং আপনার সঠিক mysqlরানিং পোর্টটি দেখুন।

এবং এটি আপনার ডেটাবেস সংযোগে ফলোওংয়ের মতো অন্তর্ভুক্ত করুন:

$host = 'localhost';
$db   = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';
$port = '3308';//Port

$dsn = "mysql:host=$host;dbname=$db;port=$port;charset=$charset"; //Add in connection
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];
try {
     $pdo = new PDO($dsn, $user, $pass, $options);
} catch (\PDOException $e) {
     throw new \PDOException($e->getMessage(), (int)$e->getCode());
}

Note : আমি পিডিও ব্যবহার করছি

আরও তথ্যের জন্য এখানে দেখুন: https://sourceforge.net/projects/wampserver/


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