ليس لدى مستخدم MySQL DB أعمدة كلمة مرور-تثبيت MySQL على OSX



macos passwords (6)

أحاول تغيير كلمة مرور الجذر MySql.

ما قمت به هو أدناه.

  1. تثبيت MySql-5.7.6 ~ .dmg (خادم المجتمع) وطاولة العمل.
  2. قم بإيقاف تشغيل الخادم حسب تفضيلات نظام OSX.
  3. وصول الخلية مع وحدة التحكم. كان الأمر mysqld_safe --skip-grant
  4. تنفيذ update user set password=password('1111') where user='root'; حصلت على رسالة خطأ -> ERROR 1054 (42S22): Unknown column 'password' in 'field list' .

لمعلوماتك ، لقد use mysql; . لذلك فعلت تحديد الاستعلام على جدول المستخدم وجدت عمود كلمة المرور في الواقع غير موجود.

انها غريبة جدا. هل من الممكن أن جدول المستخدم الأصلي لا يحتوي على عمود كلمة المرور؟

كيف يمكنني تغيير كلمة المرور ، والتي لا وجود لها؟

شكرا لردكم: د

https://src-bin.com


Answer #1

أحد المآزق التي وقعت فيها هو عدم وجود حقل كلمة مرور الآن ، لقد تمت إعادة تسميته على النحو التالي:

update user set password=PASSWORD("YOURPASSWORDHERE") where user='root';

يجب أن يكون الآن:

update user set authentication_string=password('YOURPASSWORDHERE') where user='root';


Answer #2

استخدم الأمر ALTER USER بدلاً من محاولة تحديث صف USER . ضع في اعتبارك أنه قد يكون هناك أكثر من مستخدم "جذر" واحد ، لأن كيانات المستخدم مؤهلة أيضًا بواسطة الجهاز الذي يتصلون به

https://dev.mysql.com/doc/refman/5.7/en/alter-user.html

فمثلا.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password' 
ALTER USER 'root'@'*' IDENTIFIED BY 'new-password' 

Answer #3

بالنسبة لهذه المشكلة ، استخدمت طريقة بسيطة وغير مهذبة ، إعادة تسمية اسم الحقل إلى كلمة المرور ، والسبب في ذلك هو أنني أستخدم برنامج Premium nav nav في خطأ التشغيل المرئي: عمود غير معروف "كلمة المرور" في "قائمة الحقول" ، البرنامج نفسه يستخدم كلمة المرور حتى لا أستطيع العمل بسهولة. لذلك ، أنا الجذر في سطر الأوامر قاعدة البيانات ، تشغيل

Use mysql;

ثم قم بتعديل اسم الحقل:

ALTER TABLE user CHANGE authentication_string password text;

بعد كل شيء طبيعي.


Answer #4

تذكر كلمة المرور يحتاج إلى مزيد من التعيين حتى بعد إعادة تشغيل الخلية على النحو التالي

SET PASSWORD = PASSWORD('root');

Answer #5

في MySQL 5.7 ، تمت إزالة حقل كلمة المرور في حقل جدول mysql.user ، والآن اسم الحقل هو "certification_string".

اختر أولاً قاعدة البيانات:

mysql>use mysql;

ثم اظهر الجداول:

mysql>show tables;

ستجد جدول المستخدم ، والآن لنرى حقوله:

mysql> describe user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field                  | Type                              | Null | Key | Default               | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Host                   | char(60)                          | NO   | PRI |                       |       |
| User                   | char(16)                          | NO   | PRI |                       |       |
| Select_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Insert_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Update_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Delete_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Create_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Drop_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Reload_priv            | enum('N','Y')                     | NO   |     | N                     |       |
| Shutdown_priv          | enum('N','Y')                     | NO   |     | N                     |       |
| Process_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| File_priv              | enum('N','Y')                     | NO   |     | N                     |       |
| Grant_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| References_priv        | enum('N','Y')                     | NO   |     | N                     |       |
| Index_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Show_db_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Super_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tmp_table_priv  | enum('N','Y')                     | NO   |     | N                     |       |
| Lock_tables_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Execute_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_slave_priv        | enum('N','Y')                     | NO   |     | N                     |       |
| Repl_client_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Create_view_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Show_view_priv         | enum('N','Y')                     | NO   |     | N                     |       |
| Create_routine_priv    | enum('N','Y')                     | NO   |     | N                     |       |
| Alter_routine_priv     | enum('N','Y')                     | NO   |     | N                     |       |
| Create_user_priv       | enum('N','Y')                     | NO   |     | N                     |       |
| Event_priv             | enum('N','Y')                     | NO   |     | N                     |       |
| Trigger_priv           | enum('N','Y')                     | NO   |     | N                     |       |
| Create_tablespace_priv | enum('N','Y')                     | NO   |     | N                     |       |
| ssl_type               | enum('','ANY','X509','SPECIFIED') | NO   |     |                       |       |
| ssl_cipher             | blob                              | NO   |     | NULL                  |       |
| x509_issuer            | blob                              | NO   |     | NULL                  |       |
| x509_subject           | blob                              | NO   |     | NULL                  |       |
| max_questions          | int(11) unsigned                  | NO   |     | 0                     |       |
| max_updates            | int(11) unsigned                  | NO   |     | 0                     |       |
| max_connections        | int(11) unsigned                  | NO   |     | 0                     |       |
| max_user_connections   | int(11) unsigned                  | NO   |     | 0                     |       |
| plugin                 | char(64)                          | NO   |     | mysql_native_password |       |
| authentication_string  | text                              | YES  |     | NULL                  |       |
| password_expired       | enum('N','Y')                     | NO   |     | N                     |       |
| password_last_changed  | timestamp                         | YES  |     | NULL                  |       |
| password_lifetime      | smallint(5) unsigned              | YES  |     | NULL                  |       |
| account_locked         | enum('N','Y')                     | NO   |     | N                     |       |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
45 rows in set (0.00 sec)

مفاجأة! لا يوجد حقل باسم "كلمة المرور" ، حقل كلمة المرور يسمى "المصادقة". لذلك ، فقط قم بهذا:

update user set authentication_string=password('1111') where user='root';

الآن ، كل شيء سيكون على ما يرام.

مقارنةً بـ MySQL 5.6 ، فإن التغييرات واسعة جدًا: ما الجديد في MySQL 5.7


Answer #6

كان يعمل معي فقط عندما "مسح" بعد الأوامر المذكورة هنا. إليك القائمة الكاملة للأوامر التي استخدمتها:

قد لا تعمل الإجابات السابقة لإصدارات mysql اللاحقة. جرب هذه الخطوات إذا لم تعمل الإجابات السابقة لك:

1- انقر على أيقونة wamp> mysql> mysql console

2- اكتب الأوامر التالية ، واحدة تلو الأخرى

use mysql;
update user set authentication_string=password('your_password') where user='root';
FLUSH PRIVILEGES;
quit




root