মাইএসকিউএল ব্যবহারকারী ডিবিতে পাসওয়ার্ড কলাম নেই - ওএসএক্সে মাইএসকিউএল ইনস্টল করা


172

আমি মাইএসকিউএল রুট পাসওয়ার্ড পরিবর্তন করার চেষ্টা করছি।

আমি যা করেছি তা নীচে রয়েছে।

  1. MySQL-5.7.6 7 .dmg (সম্প্রদায় সার্ভার) এবং ওয়ার্কবেঞ্চ ইনস্টল করুন।
  2. ওএসএক্স সিস্টেম পছন্দগুলিতে সার্ভারটি বন্ধ করুন।
  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;। সুতরাং আমি ব্যবহারকারীর টেবিলে কোয়েরিটি নির্বাচন করেছি এবং খুঁজে পেয়েছি পাসওয়ার্ড কলামটি আসলে বিদ্যমান নেই।

এটা খুব অদ্ভুত। মূল ব্যবহারকারী টেবিলের পাসওয়ার্ড কলাম না থাকা কি সম্ভব?

আমি কীভাবে পাসওয়ার্ড পরিবর্তন করতে পারি, যার অস্তিত্ব নেই?

আপনার উত্তরের জন্য ধন্যবাদ: ডি


এখন আমি আবার পরীক্ষা করে দেখি এবং পিডব্লিউ ছাড়াই মাইএসকিউএল অ্যাক্সেস করতে পারি :( ইউজার টেবিলটি পরিবর্তনের জন্য (আমার ব্যবহারকারীর টেবিলটি পরিবর্তন করা এবং কোয়েরির মাধ্যমে পাসওয়ার্ড কলাম যুক্ত করা) ঠিক আছে?
জুনিয়ং ওহ

রুট @ লোকালহোস্ট = পাসওয়ার্ডের জন্য পাসওয়ার্ড সেট করুন ('নতুন-পাস') - যে কোনও
মাইএসকিএল

UPDATE mysql.user SET authentication_string= 'password' WHERE User = 'root'; কারণ 'পাসওয়ার্ড' ক্ষেত্রটি mysql দ্বারা সরানো হয়েছিল এবং প্রমাণীকরণ_ স্ট্রিংয়ের সাথে প্রতিস্থাপিত হয়েছিল। দ্রষ্টব্য: মাইএসকিএল ফাংশন পাসওয়ার্ড ('পাসওয়ার্ড') এমডি 5 অ্যালগরিদমের উপর নির্ভর করে যা জন্মদিনের আক্রমণকে ব্যবহার করে অনেক আগে ফাটল ধরেছিল। সুতরাং এটি ব্যবহার করে সুরক্ষার একটি ভ্রান্ত ধারণা দেয় কারণ আক্রমণকারী কেবল হ্যাশকিলার.কম / এমডি 5- ডেক্রিপ্টার.এসপিএক্স এর মতো একটি পাবলিক ওয়েবসাইটে তৈরি করা হ্যাশগুলি পেস্ট করতে পারে এবং আপনার সাধারণ পাঠ্য পাসওয়ার্ডটি পুনরুদ্ধার করতে পারে।
ডাঃ দেও

উত্তর:


556

মাইএসকিউএল ৫.7-এ, mysql.user টেবিল ক্ষেত্রের পাসওয়ার্ড ক্ষেত্রটি সরানো হয়েছে, এখন ক্ষেত্রের নামটি 'প্রমাণীকরণ_স্তরকরণ'।

প্রথমে ডাটাবেসটি বেছে নিন:

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';

এখন, সব ঠিক হয়ে যাবে।

মাইএসকিউএল 5.6 এর তুলনায়, পরিবর্তনগুলি বেশ বিস্তৃত: মাইএসকিউএল 5.7 এ নতুন কী


42
আপনি স্যার আমার দিন তৈরি।
বাইসনফ্যান 95

3
এই পদ্ধতিটি মাইএসকিএলডি শুরু করার সাথে --স্কিপ-অনুদান-সারণী সীমাবদ্ধতার সাথেও কাজ করে। যেহেতু আপনি একজন বেনাম ব্যবহারকারী, আপনি পাসওয়ার্ডগুলি এর সাথে পরিবর্তন করতে পারবেন না: নতুন ব্যবহারকারী 'রুট' @ 'লোকালহোস্ট' পরিচয়যুক্ত 'নতুন-পাসওয়ার্ডের মাধ্যমে' বিকল্প ব্যবহারকারী 'রুট' @ '*' নতুন-পাসওয়ার্ডের দ্বারা চিহ্নিত 'এটি দেবে আপনি একজন বেনামে ব্যবহারকারীর অনুমতি ত্রুটি।
বাইসনফ্যান 95

কোন টেবিল না থাকলে কি হবে?
সাহান্দ

1
পাসওয়ার্ড ক্ষেত্রের নাম পরিবর্তন করা ... একটি সিদ্ধান্ত যা এত লোককে এত ঝামেলা করেছিল ...
তালসিবিনি

2
পদক্ষেপ 2 এ রুট পাসওয়ার্ড পুনরায় সেট করার সময়, এছাড়াও মেসকিউএল_নেটিভ_প্যাসওয়ার্ডে লেখক প্লাগইনটি পরিবর্তন করুন: use mysql; update user set authentication_string=PASSWORD("") where User='root'; update user set plugin="mysql_native_password" where User='root'; # THIS LINE flush privileges; quit;
বিশ্ব

26

এই ত্রুটিটি ঘটে যদি আপনি পাসওয়ার্ডটি ইনস্টল না করে থাকেন তবে এই ক্ষেত্রে ইউনিক্স-সকেট প্লাগইন ব্যবহার করে মাইএসকিএল করুন

তবে সেটিংস (টেবিল mysql.user) থেকে প্লাগইন লিঙ্কটি মুছলে অন্য সমস্যা হবে। এটি সমস্যার সমাধান করে না এবং অন্য সমস্যা তৈরি করে। মুছে ফেলা লিঙ্কটি ঠিক করতে এবং পাসওয়ার্ড সেট করতে ("PWD") করুন:

1) --skip-grant-tablesউপরে বলা হিসাবে চালান ।

কোন কাজ স্বল্পতা তাহলে STRING যোগ skip-grant-tablesবিভাগে [mysqld]এর /etc/mysql/mysql.conf.d/mysqld.cnf। তাহলে কর sudo service mysql restart

2) চালান mysql -u root -p, তারপরে ("পিডব্লিউডি" পরিবর্তন করুন):

update mysql.user 
    set authentication_string=PASSWORD("PWD"), plugin="mysql_native_password" 
    where User='root' and Host='localhost';    
flush privileges;

quit

তারপর sudo service mysql restart। পরীক্ষা করে দেখুন: mysql -u root -p

restartMysqld.cnf ফাইলটি থেকে সেই স্ট্রিংটি সরিয়ে দেওয়ার আগে , আপনি যদি এটি সেট করে থাকেন।


চিহ্নিত করা! প্রয়োজনীয় প্লাগইন = "mysql_native_password" এবং ফ্লাশ সুবিধাগুলি। এটি অন্য কোনও উদাহরণ দিয়ে কাজ করতে পারেনি। ধন্যবাদ bl79!
TheRealWebGuy

আমি পেয়েছিERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '("MYNEWPASSWORD"), plugin="mysql_native_password"
চান্স স্মিথ

আপনার উত্তর দুর্দান্ত! 6 ঘন্টা লড়াইয়ের সময় এই উত্তরটি আমাকে সাহায্য করেছে
অ্যালেক্সনিকনভ

প্লাগ-ইন = "mysql_native_password" রিক আমার জন্য সম্পন্ন
জয়নার

আমার জন্য নিখুঁতভাবে কাজ করে
মায়াঙ্ক শর্মা

23

আমি যে সমস্যার মধ্যে পড়েছিলাম সেটি এখন কোনও পাসওয়ার্ড ক্ষেত্র নেই , এটি নামকরণ করা হয়েছে যাতে:

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

এখন হওয়া উচিত:

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


16

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' 

2
মাইএসকিউএল 7..9.৯ এর জন্য, আমাকে সঠিকভাবে কাজ করতে ব্যবহারকারীকে পরিবর্তন করতে হবে। ধন্যবাদ।
শনি

আমাদের উপরের কমান্ডটি অনুসরণ করে ইউজার-জি প্রয়োজন। মাইএসকিএল 5.7.12 ব্যবহার করে Using ty
bobsouza

এই উত্তরটি আমার জন্য কেবল উবুন্টু 16.04, মাইএসকিএল 5.7.19 এ কাজ করেছে;
গার্ড

তারা কি ওয়াইল্ডকার্ডকে @ থেকে * এ পরিবর্তন করেছে? সিআর ... এখন আমি এখানে আসার চেয়ে আমার আরও প্রশ্ন রয়েছে।
পিগার্ডিরিও

4

এটি কেবল তখনই আমার সাথে কাজ করেছিল যখন আমি এখানে উল্লিখিত আদেশগুলি পরে "ফ্লাশ" করেছি। আমি ব্যবহৃত কমান্ডগুলির সম্পূর্ণ তালিকা এখানে:

পূর্ববর্তী উত্তরগুলি পরে মাইএসকিএল সংস্করণগুলির জন্য কাজ না করে। পূর্ববর্তী উত্তরগুলি আপনার পক্ষে কাজ না করে থাকলে এই পদক্ষেপগুলি ব্যবহার করে দেখুন:

1- মোড়ের আইকন> mysql> mysql কনসোলে ক্লিক করুন

2- একের পর এক নিম্নলিখিত কমান্ড লিখুন

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

4

আপনার সাহায্যের জন্য ধন্যবাদ। যদি এখনও লোকেরা সমস্যা বোধ করে তবে এটি ব্যবহার করে দেখুন।

মাইএসকিউএল সংস্করণ 5.6 এবং এর অধীনে

আপনি কি নিজের ম্যাক ওএস এক্স 'রুট' পাসওয়ার্ডটি ভুলে গেছেন এবং এটিকে পুনরায় সেট করতে হবে? এই 4 টি সহজ পদক্ষেপ অনুসরণ করুন:

  1.  Mysqld সার্ভারটি বন্ধ করুন। সাধারণত এটি 'সিস্টেম প্রিফেরেন্স'> মাইএসকিউএল> 'স্টপ মাইএসকিউএল সার্ভার' থেকে করা যায়
  2.  একটি টার্মিনাল থেকে প্রাইভেট বাইপাস দিয়ে নিরাপদ মোডে সার্ভারটি শুরু করুন:      sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3.  একটি নতুন টার্মিনাল উইন্ডোতে:      sudo /usr/local/mysql/bin/mysql -u root      UPDATE mysql.user SET Password=PASSWORD('NewPassword') WHERE User='root';      FLUSH PRIVILEGES;      \q
  4.  আবার mysqld সার্ভারটি থামান এবং এটিকে স্বাভাবিক মোডে পুনঃসূচনা করুন।

মাইএসকিউএল সংস্করণে 7.7 এবং তার বেশি

  1.  Mysqld সার্ভারটি বন্ধ করুন। সাধারণত এটি থেকে করা যায় 'System Prefrences' > MySQL > 'Stop MySQL Server'
  2.  একটি টার্মিনাল থেকে প্রাইভেট বাইপাস দিয়ে নিরাপদ মোডে সার্ভারটি শুরু করুন:      sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
  3.  একটি নতুন টার্মিনাল উইন্ডোতে:            sudo /usr/local/mysql/bin/mysql -u root      UPDATE mysql.user SET authentication_string=PASSWORD('NewPassword') WHERE User='root';      FLUSH PRIVILEGES;      \q      
  4.  আবার mysqld সার্ভারটি থামান এবং এটিকে স্বাভাবিক মোডে পুনঃসূচনা করুন।

এটি MySQL <5.7 ইনস্টল করার সময় আমাকে সহায়তা করে
অঙ্কিত আগরওয়াল

3

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

Use mysql;

এবং তারপরে ক্ষেত্রের নামটি সংশোধন করুন:

ALTER TABLE user CHANGE authentication_string password text;

সব পরে।


0

রুটের কারণ: মূলটির কোনও পাসওয়ার্ড নেই এবং আপনার অজগর সংযোগের বিবৃতিটি এটি প্রতিবিম্বিত করা উচিত।

ত্রুটি 1698 সমাধান করতে, আপনার অজগর সংযোগের পাসওয়ার্ড '' এ পরিবর্তন করুন।

দ্রষ্টব্য: ম্যানুয়ালি ব্যবহারকারীর পাসওয়ার্ড আপডেট করা সমস্যার সমাধান করবে না, আপনি তবুও ত্রুটি পাবেন 1698


0

মনে রাখবেন পাসওয়ার্ডটি নীচে হিসাবে মাইএসকিএল পুনরায় চালু করার পরেও আরও সেট করা দরকার

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