it-swarm.asia

الخطأ 1045 (28000): تم رفض الوصول للمستخدم 'root' @ 'localhost' (باستخدام كلمة المرور: YES)

أنا مهندس كهربائي يلعب بشكل أساسي مع أنظمة الطاقة بدلاً من البرمجة. في الآونة الأخيرة ، كنت أتابع دليلًا لتثبيت مجموعة برامج على أوبونتو. ليس لدي أي معرفة بـ mySQL على الإطلاق ، في الواقع. لقد فعلت المنشآت التالية على بلدي أوبونتو.

Sudo apt-get update
Sudo apt-get install mysql-server-5.5
Sudo apt-get install mysql-client-5.5
Sudo apt-get install mysql-common
Sudo apt-get install glade
Sudo apt-get install ntp

ثم أفعل

[email protected]:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

انتهى بي الأمر مع رسالة الخطأ التالية.

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

كيف يمكنني إصلاحه والمتابعة؟

137
Sibbs Gambling

ملاحظة: For MySQL 5.7+ يرجى الاطلاع الإجابة منLahiru على هذا السؤال. يحتوي على مزيد من المعلومات الحالية.

بالنسبة إلى MySQL <5.7:

كلمة مرور الجذر الافتراضية فارغة (أي السلسلة الفارغة) وليس root. بحيث يمكنك فقط تسجيل الدخول باسم:

mysql -u root

من الواضح أنه يجب عليك تغيير كلمة مرور الجذر بعد التثبيت

mysqladmin -u root password [newpassword]

في معظم الحالات ، يجب عليك أيضًا إعداد حسابات مستخدمين فردية قبل العمل على نطاق واسع مع قاعدة البيانات أيضًا.

122
Mike Brant

كنت قادرا على حل هذه المشكلة عن طريق تنفيذ هذا البيان

Sudo dpkg-reconfigure mysql-server-5.5

والتي سوف تغير كلمة المرور الجذر.

111
Divz

لديك لإعادة تعيين كلمة المرور! خطوات لنظام التشغيل Mac OSX (تم اختباره وتشغيله) وأوبونتو

وقف استخدام الخلية

Sudo service mysql stop

أو

$ Sudo /usr/local/mysql/support-files/mysql.server stop

ابدأه في الوضع الآمن:

$ Sudo mysqld_safe --skip-grant-tables --skip-networking

(السطر أعلاه هو الأمر كله)

سيكون هذا الأمر مستمرًا إلى أن تنتهي العملية ، لذا افتح نافذة أخرى على Shell/terminal ، سجّل الدخول بدون كلمة مرور:

$ mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

وفقًا لتعليق @ IberoMedia ، بالنسبة للإصدارات الأحدث من MySQL ، يسمى الحقل authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

بدء الخلية باستخدام:

Sudo service mysql start

أو

Sudo /usr/local/mysql/support-files/mysql.server start

كلمة المرور الجديدة هي "كلمة المرور".

62
tk_

إذا كانت المشكلة لا تزال موجودة ، فحاول فرض تغيير المسار

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

إعداد كلمة مرور المستخدم الجذر MySQL جديدة

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

إيقاف خادم MySQL:

/etc/init.d/mysql stop

ابدأ خادم MySQL واختبره:

mysql -u root -p
30
Yasin Hassanien

عند بدء التشغيل الأولي للخادم ، يحدث ما يلي ، بالنظر إلى أن دليل بيانات الخادم فارغ:

  • تتم تهيئة الخادم.
  • يتم إنشاء شهادة SSL وملفات المفاتيح في دليل البيانات.
  • تم تثبيت البرنامج المساعد validate_password وتمكينه.
  • يتم إنشاء حساب المستخدم الخارق "الجذر" @ "المضيف المحلي". يتم تعيين كلمة مرور الخارق وتخزينها في ملف سجل الأخطاء.

للكشف عنها ، استخدم الأمر التالي:

Shell> Sudo grep 'temporary password' /var/log/mysqld.log

قم بتغيير كلمة مرور الجذر في أقرب وقت ممكن عن طريق تسجيل الدخول باستخدام كلمة المرور المؤقتة التي تم إنشاؤها وتعيين كلمة مرور مخصصة لحساب المستخدم الخارق:

Shell> mysql -uroot -p 

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 
22
Lahiru

أعرف أن هذا سؤال قديم ولكنني أشعر أن هذا قد يساعد شخصًا ما. لقد واجهت نفس المشكلة مؤخرًا ، لكن في حالتي ، أتذكر كلمة المرور الخاصة بي على ما يرام ، لكنها استمرت في إعطائي نفس الخطأ. جربت الكثير من الحلول ولكن لا يزال لا أحد ساعد ثم حاولت ذلك

mysql -u root -p 

بعد ذلك يطلب منك كلمة مرور مثل هذا

Enter password: 

ثم كتبت كلمة المرور التي استخدمتها. هذا كل شئ

20
XY-JOE

يحدث ذلك عندما تكون كلمة مرورك مفقودة.

خطوات لتغيير كلمة المرور عندما تكون قد نسيت:

  1. إيقاف خادم MySQL (على نظام Linux):

    Sudo systemctl stop mysql
    
  2. ابدأ تشغيل قاعدة البيانات دون تحميل جداول المنح أو تمكين الشبكات:

    Sudo mysqld_safe --skip-grant-tables --skip-networking &
    

    علامة الضم في نهاية هذا الأمر سيجعل هذه العملية تعمل في
    الخلفية حتى تتمكن من الاستمرار في استخدام المحطة الطرفية الخاصة بك وتشغيل #mysql -u root ، لن تطلب كلمة مرور.

    إذا حصلت على خطأ كما هو موضح أدناه:

    2018-02-12T08: 57: 39.826071Z mysqld_safe Directory '/ var/run/mysqld' لـ UNIX
    ملف مأخذ التوصيل غير موجود. mysql -u root error 2002 (HY000): لا يمكن الاتصال بخادم MySQL المحلي من خلال المقبس
    '/ var/run/mysqld/mysqld.sock' (2) [1] + خروج 1

  3. اصنع دليل خدمة MySQL.

    Sudo mkdir /var/run/mysqld
    

    امنح مستخدم MySQL إذن الكتابة إلى دليل الخدمة.

    Sudo chown mysql: /var/run/mysqld
    
  4. قم بتشغيل نفس الأمر في الخطوة 2 لتشغيل mysql في الخلفية.

  5. قم بتشغيل mysql -u root ستحصل على وحدة mysql بدون إدخال كلمة المرور.

    قم بتشغيل هذه الأوامر

    FLUSH PRIVILEGES;
    

    ل MySQL 5.7.6 وأحدث

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
    

    لماي 5.7.5 وما فوق

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
    

    إذا لم يعمل الأمر ALTER USER:

    UPDATE mysql.user SET authentication_string = PASSWORD('new_password')     WHERE User = 'root' AND Host = 'localhost';
    

الآن الخروج

  1. لإيقاف المثال بدأت يدويا

    Sudo kill `cat /var/run/mysqld/mysqld.pid`
    
  2. أعد تشغيل الخلية

    Sudo systemctl start mysql
    
19
Sameer Choudhary

أنا أستخدم Ubuntu-16.04: تثبيت mysql - 5.7. واجهت نفس المشكلة: تم رفض تسجيل الدخول للمستخدم الجذر.

حاول الخطوات التالية:

  1. dpkg --get-selections | grep mysql (للحصول على إصدار mysql).

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

بدون -p هذا لا يطالبك بسؤال كلمة المرور. بمجرد دخولك ، يمكنك إنشاء مستخدم بكلمة مرور باتباع الخطوات التالية:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

الخروج من الجذر وتسجيل الدخول من الذي أعطيته أعلاه.

mysql -u <your_new_username> -p

لسبب ما زال مجرد كتابة mysql لا يعمل. AT ALL. أقترح جعله عادةً استخدام mysql -u <name> -p.

10
Nikhil Rushmith

صادفت هذه المشكلة المزعجة للغاية ووجدت العديد من الإجابات التي لم تنجح. أفضل حل واجهته هو إلغاء تثبيت mysql بالكامل وإعادة تثبيته. عند إعادة التثبيت ، يمكنك تعيين كلمة مرور جذر وهذا يحل المشكلة.


Sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
Sudo rm -rf /etc/mysql /var/lib/mysql
Sudo apt-get autoremove
Sudo apt-get autoclean

لقد وجدت هذا الكود في مكان آخر ، لذلك لا أحسب أي رصيد له. ولكنه يعمل. لتثبيت mysql بعد إلغاء تثبيته ، أعتقد أن Digital Ocean بها برنامج تعليمي جيد عليه. تحقق من بلدي gist لهذا الغرض.
https://Gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096

6
JamesD

يرجى قراءة الوثائق الرسمية: Mysql: كيفية إعادة تعيين كلمة المرور الجذر

إذا كان لديك الوصول إلى المحطة:

الخلية 5.7.6 وما بعده:

$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 والإصدارات الأقدم:

$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
5
d.danailov

أنا أستخدم mysql-5.7.12-osx10.11-x86_64.dmg في نظام Mac OSX

تقوم عملية التثبيت تلقائيًا بإعداد كلمة مرور مؤقتة للمستخدم الجذر. يجب عليك حفظ كلمة المرور. لا يمكن استعادة كلمة المرور.

اتبع التعليمات

  1. انتقل إلى cd /usr/local/mysql/bin/
  2. أدخل كلمة المرور المؤقتة (التي ستبدو مثل "tsO07JF1 => 3")
  3. يجب أن تحصل على mysql> موجه.
  4. Run ، SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}'); إذا كنت ترغب في تعيين كلمة المرور الخاصة بك: "root" ، فسيكون الأمر ، SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. تشغيل ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. تشغيل exit
  7. تشغيل ./mysql -u root -p
  8. اكتب كلمة المرور الخاصة بك. في حالتي كنت اكتب "الجذر" (بدون اقتباس)
  9. هذا كل شئ.

للراحة ، يجب عليك إضافة "/usr/local/mysql/bin" إلى PATH

الآن من أي مكان يمكنك كتابة ./mysql -u root -p ثم اكتب كلمة المرور وستحصل على mysql> مطالبة.

آمل أن يساعد.

3
tausiq

قد تبدو الإجابة سخيفة ، ولكن بعد تضييع ساعات من الوقت ، هذه هي الطريقة التي عملت بها

mysql -u root -p

تلقيت رسالة الخطأ

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

على الرغم من أنني كنت أكتب كلمة المرور الصحيحة (كلمة المرور المؤقتة التي تحصل عليها عند تثبيت mysql لأول مرة)

فهمت ذلك بشكل صحيح عندما كنت {كتبت في كلمة المرور عندما كانت كلمة المرور موجهًا يومض} _

3
Amit Kumar

إذا كانت المشكلة لا تزال موجودة ، فحاول فرض تغيير المسار

إيقاف خادم MySQL (على نظام Linux):

/etc/init.d/mysql stop

إيقاف خادم MySQL (على نظام Mac OS X):

mysql.server stop

بدء mysqld_safe الخفي مع --skip - منحة الجداول

mysqld_safe --skip-grant-tables &
mysql -u root

إعداد كلمة مرور المستخدم الجذر MySQL جديدة

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

إيقاف خادم MySQL (على نظام Linux):

/etc/init.d/mysql stop

إيقاف خادم MySQL (على نظام Mac OS X):

mysql.server stop

ابدأ خدمة خادم MySQL واختبر تسجيل الدخول عن طريق الجذر:

mysql -u root -p
2
Max Yao

سطر واحد فقط وحل مشكلتي.

Sudo dpkg-reconfigure mysql-server-5.5
1
Satyendra Sahani

في Ubuntu 16.04 (MySQL version 5.7.13) كنت قادراً على حل المشكلة مع الخطوات التالية:

  1. اتبع الإرشادات الواردة في القسم ب .5.2.2.2 إعادة تعيين كلمة مرور الجذر: دليل أنظمة يونيكس وأنظمة تشبه يونكس مرجع MySQL 5.7

  2. عندما جربت #Sudo mysqld_safe --init-file =/home/me/mysql-init وقد فشلت. كان الخطأ في /var/log/mysql/error.log

    2016-08-10T11: 41: 20.421946Z 0 [ملاحظة] بدأ تنفيذ init_file '/ home/me/mysql/mysql-init'. 2016-08-10T11: 41: 20.422070Z 0 [خطأ]/usr/sbin/mysqld: ملف '/ home/me/mysql/mysql-init' غير موجود (Errcode: 13 - تم رفض الإذن) 2016-08-10T11: 41: 20.422096Z 0 [خطأ] إحباط

لم يكن إذن ملف mysql-init هو المشكلة ، تحتاج إلى تعديل إذن apparmor

  1. تحرير بواسطة #Sudo vi /etc/apparmor.d/usr.sbin.mysqld

    ....
      /var/log/mysql/ r,
      /var/log/mysql/** rw,
    
    
    # Allow user init file
      /home/pranab/mysql/* r,
    
      # Site-specific additions and overrides. See local/README for details.
      #include <local/usr.sbin.mysqld>
    }
    
  2. هل #Sudo/الخ/init.d/apparmor إعادة تحميل

  3. بدء mysqld_safe مرة أخرى حاول الخطوة 2 أعلاه. تحقق /var/log/mysql/error.log تأكد من عدم وجود خطأ وأن mysqld قد بدأ بنجاح

  4. قم بتشغيل #mysql -u root -p

    أدخل كلمة المرور:

أدخل كلمة المرور التي حددتها في mysql-init. يجب أن تكون قادرًا على تسجيل الدخول كجذر الآن.

  1. إيقاف mysqld_safe بواسطة #Sudo mysqladmin -u root -p shutdown

  2. بدء mysqld بالطريقة العادية عن طريق #Sudo systemctl بدء mysql

1
codegen

سيعمل هذا إذا كنت تدخل الأوامر التي قيلت في الإجابات الأخرى ولكنك لا تزال تحصل على هذه الأخطاء:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  Sudo mysqld_safe --skip-grant-tables

اتبع الأوامر التالية خطوة بخطوة حتى تقوم بإعادة تعيين كلمة المرور الخاصة بك:

# Stop Your Server First
Sudo service mysql stop

# Make MySQL service directory.
Sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
Sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
Sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -uroot mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

#if you omit (AND Host='localhost') section, it updates the root pass regardless of its Host

FLUSH PRIVILEGES;
EXIT;

#Now you can use your new password to login to your Server
mysql -uroot -p
1
Mehdi

إذا لم تكن قد قمت بتعيين كلمة المرور بعد ، فقم بتشغيل mysql -uroot ، فهذا الأمر يناسبني.

0
ahbon

كان لي مشكلة مشابهة:

الخطأ 1045 (28000): تم رفض الوصول للمستخدم 'root' @ 'localhost' (باستخدام كلمة المرور: NO)

ولكن في حالتي ، كان السبب سخيفًا حقًا. لقد قمت بنسخ الأمر من مستند Word ، وكانت المشكلة أن الواصلة لا تحتوي على الرمز [2] ASCIIلكن Unicode E28093.

طريقة خاطئة:

mysql -u root –pxxxx

طريق صحيح:

mysql -u root -pxxxx

كلاهما يبدوان متشابهين لكنهما ليسا متشابهين (جربه ، انسخ و الصق مع استبدال كلمة المرور الخاصة بك).

في مواجهة هذا النوع من الخطأ ، فإن التوصية هي محاولة كتابة الأمر بدلاً من النسخ واللصق.

0
cesargastonec

على نظام Mac ، إذا كانت لديك مشكلة في تسجيل الدخول باستخدام أول كلمة مرور تم تقديمها لك أثناء التثبيت ، فربما يمكنك ببساطة قتل عملية mysql ثم المحاولة.

لذلك: 1- قم بتشغيل الأمر التالي للعثور على PID الخاص بـ mysql:

ps -aef | grep mysql | grep -v grep

2- اقتل العملية:

kill -15 [process id] 

ثم يمكنك تسجيل الدخول باستخدام كلمة المرور الأولية باستخدام هذا الأمر:

mysql -uroot -p

التي تطلب منك إدخال كلمة المرور الخاصة بك. فقط أدخل كلمة المرور الأولية.

0
Maryam Zakani

BY ستكون كلمة المرور الافتراضية خالية ، لذا يتعين عليك تغيير كلمة المرور عن طريق القيام بالخطوات التالية.

الاتصال mysql

الجذر # الخلية

استخدام mysql

mysql> تحديث كلمة مرور مجموعة المستخدم = PASSWORD ('root') حيث User = 'root'؛ أخيرًا ، أعد تحميل الامتيازات:

mysql> تدفق الامتيازات؛ الخلية> استقال

0
Rizwan Basheer

جربت مع الإجابة الصحيحة بواسطةLahiru ، لكنني لم أعمل مع إصدار MySQL server 8.0.16 (Community) على جهاز macOS Mojave.

باتباع التعليمات التي وضعها سمير شودري أعلاه ومع بعض التعديلات ، تمكنت من تغيير كلمة مرور الجذر وتمكين الوصول إلى الجذر من المضيف المحلي.

تحديث: كل هذه الأشياء غير مطلوبة ، إذا كنت تقوم بالتثبيت على نظام التشغيل Mac OS باستخدام homebrew: "brew install mysql"

0
cspider

في إصدارات MySQL الأخيرة ، لا يوجد password في جدول mysql.user.

لذلك تحتاج إلى تنفيذ ALTER USER. ضع أمر سطر واحد في الملف.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

وقم بتنفيذه كملف init (كمستخدم root أو mysql)

mysqld_safe --init-file=/home/me/mysql-init &

يجب إيقاف خادم MySQL لبدء mysqld_safe.

أيضًا ، قد تكون هناك مشكلة في أذونات apparmor لتحميل ملف init. اقرأ المزيد هنا https://blogs.Oracle.com/jsmyth/entry/apparmor_and_mysql

0
Vladimir Kovalchuk