mysql এর রুট পাসওয়ার্ড পুনরায় সেট করতে অক্ষম


28

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

$ sudo /etc/init.d/mysql stop
 * Stopping MySQL database server mysqld                                                                                                              [ OK ] 
[1]-  Exit 1                  sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
[2]+  Exit 1                  sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking
reg@regDesktopHome:~$ sudo mysqld --skip-grant-tables &
[1] 13651
reg@regDesktopHome:~$ 140627 19:02:02 [Warning] Using unique option prefix key_buffer instead of key_buffer_size is deprecated and will be removed in a future release. Please use the full name instead.

reg@regDesktopHome:~$ mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
reg@regDesktopHome:~$ sudo mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
[1]+  Exit 1                  sudo mysqld --skip-grant-tables

আমি কীভাবে পাসওয়ার্ড পুনরায় সেট করতে পারি? 1 সম্পাদনা করুন আমি এটি পেয়েছি:

$ ps ax| grep mysql
16515 ?        Ssl    0:00 /usr/sbin/mysqld
16551 pts/23   S+     0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ sudo kill -9 16515
reg@regDesktopHome:~/semios/v3upgrade$ ps ax| grep mysql
16678 ?        Ssl    0:00 /usr/sbin/mysqld
16715 pts/23   S+     0:00 grep --color=auto mysql
reg@regDesktopHome:~/semios/v3upgrade$ mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

দেখে মনে হচ্ছে কোনও প্রক্রিয়া আমি মেরে ফেলার সাথে সাথে স্বয়ংক্রিয়ভাবে মাইএসকিএল পুনরায় চালু করা হচ্ছে ...

উত্তর:


43

প্রথমে ব্যবহার করার চেষ্টা করুন

mysql -u root -p

এবং স্কেল-রুট ব্যবহারকারী হিসাবে লগইন করতে প্রম্পটে আপনার পাসওয়ার্ডটি (যদি মনে থাকে তবে) প্রবেশ করুন (নোটটি স্যুইচ -pপাসওয়ার্ডের জন্য রয়েছে)।

যদি আপনাকে সত্যিই মাইএসকিএল-এর জন্য আপনার মূল পাসওয়ার্ডটি পুনরায় সেট করতে হয় তবে এখানে একটি সহজ উপায় - এর সাথে প্যাকেজটি পুনরায় কনফিগার করুন dpkg-reconfigure

মাইএসকিউএল রুট পাসওয়ার্ড পুনরায় সেট করার সহজ পদক্ষেপ:

  1. আপনার সংস্করণ পরীক্ষা করুন mysql-server;

    apt-cache policy mysql-server
    

    এবং অন্যান্য তথ্যের মধ্যে লাইনটি ইনস্টল করা সংস্করণটি দেখায়। যেমন আমার ইনস্টলের জন্য এটি:

    Installed: 5.5.37-0ubuntu0.12.04.1
    

    (এ থেকে আমি জানি যে আমি mysql-server-5.5আমার সিস্টেমে ইনস্টল করেছি))

  2. এর সাথে পুনর্গঠন শুরু করুন:

    sudo dpkg-reconfigure mysql-server-*.*
    

    mysql-server-*.*আপনার যে সংস্করণটি প্রতিস্থাপন করা উচিত where (আমার জন্য এটি হতে হবে mysql-server-5.5)। এটি ডেটাবেস ডেমন বন্ধ করবে। তারপরে একটি প্রম্পট উপস্থিত হবে যেখানে আপনাকে আপনার নতুন পাসওয়ার্ডটি প্রবেশ করতে হবে এবং পুনরায় কনফিগারেশনটি নিশ্চিত করতে হবে।

    snap1

    পুনরায় কনফিগ শেষ হওয়ার পরে ডিমন স্বয়ংক্রিয়ভাবে শুরু হবে।

  3. তারপরে আপনি লগ ইন করতে পারেন:

    mysql -u root -p
    

    এবং আপনার ডাটাবেস অ্যাডমিন টাস্ক শুরু করুন।

তথ্যসূত্র:

  1. https://help.ubuntu.com/commune/MysqlPasswordReset [যা শীঘ্রই পৃষ্ঠাতে উল্লিখিত হিসাবে পরিষ্কার করা হবে]]

  2. আপনার নির্দিষ্ট সংস্করণ সম্পর্কিত উবুন্টু সার্ভার গাইড


2
নিশ্চিত করতে পারেন যে dpkg-reconfigure mariadb-server-10.1মারিয়াডিবি-র জন্য কাজ করেছে যখন অন্য সমস্ত সমাধান না দেয়। এই জন্য আপনাকে ধন্যবাদ.
liviucmg

19
dpkg-reconfigureআমার জন্য পাসওয়ার্ডের অনুরোধ জানায়নি .. এটি জোর করার কোন উপায় আছে কি?
Unirgy

15
আমার পক্ষে কাজ করেনি। আমি উপরের মত কমান্ডটি ব্যবহার করেছি, এবং "আপডেটের প্রয়োজন হয় কিনা তা যাচাই করা হয়েছে My - ফোর্স ব্যবহার করে একই প্রতিক্রিয়া দেওয়া হয়েছে।
অ্যান্টনি স্কাইফ

5
স্পষ্টতই এটি আর কাজ করে না।
dpi

1
@ পাওলো হেনরিক নং পরিস্থিতি বিবেচনা করে আমরা সিদ্ধান্ত নিয়েছি যে আমাদের সময়ের সর্বোত্তম ব্যবহারটি একটি সম্পূর্ণ সার্ভার পুনরায় ইনস্টল করা ছিল।
অ্যান্টনি স্কাইফ

21

রেফারেন্স এই ব্লগ থেকে নেওয়া:

পদক্ষেপ 1: মাইএসকিউএল পরিষেবা বন্ধ করুন।

sudo service mysql stop

পদক্ষেপ 2: সমস্ত চলমান মাইএসকিএলডকে হত্যা করুন।

sudo killall -9 mysqld

পদক্ষেপ 3: নিরাপদ মোডে mysqld শুরু করা।

sudo mysqld_safe --skip-grant-tables --skip-networking &

পদক্ষেপ 4: মাইএসকিএল ক্লায়েন্ট শুরু করুন

mysql -u root

পদক্ষেপ 5: সফল লগইনের পরে, কোনও পাসওয়ার্ড পরিবর্তন করতে দয়া করে এই আদেশটি কার্যকর করুন।

FLUSH PRIVILEGES;

পদক্ষেপ:: আপনি মাইএসকিএল রুট পাসওয়ার্ড আপডেট করতে পারেন।

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

mysql> এর জন্য 5.7 উপরের পরিবর্তে এটি ব্যবহার করুন:

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

পদক্ষেপ 7: দয়া করে এই আদেশটি কার্যকর করুন।

FLUSH PRIVILEGES;

পদক্ষেপ 8: প্রস্থান মাইএসকিএল কনসোল

exit

পদক্ষেপ 9: mysqld_safe হত্যা করুন এবং মাইএসকিএল শুরু করুন

sudo killall mysqld_safe && sudo service mysql start

1
হওয়া উচিত sudo service mysql stop, নয়sudo stop mysql
নক করুন

1
এছাড়াও, শেষে এটি পদক্ষেপগুলি হারিয়ে যাচ্ছে sudo killall mysqld_safe && sudo service mysql startএবং তারপরে আবার লগ ইন করার চেষ্টা করবে
নোকট করুন

3
এমওয়াইএসকিউএল ৫. For-এর জন্য পাসওয়ার্ডের সিনট্যাক্স পরিবর্তন হয়েছেALTER USER root IDENTIFIED BY 'NEW_PASSWORD_HERE'
তারেক ফাদেল

7
নোট ! মাইএসকিউএল ৫.7 এ একটি নতুন জন্তু রয়েছে যার নাম অ্যাথ_সকেট। আপনি যদি কোনও রুট পাসওয়ার্ড ছাড়াই মাইএসকিএল ইনস্টল করেন, তবে জানোয়ারটি আপনাকে আক্রমণ করবে এবং আপনি 50 টি হিটপয়েন্টগুলি আলগা করবেন। উপরে 6 ধাপে আপনার প্রয়োজন ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NEWPASS';। আপনি এটি সম্পর্কে এখানে পড়তে পারেন । তাত্ত্বিকভাবে (আমি চেষ্টা করিনি), আপনি যদি "sudo su -" মূল হয়ে ওঠেন তবে পাসওয়ার্ড ছাড়াই মাইএসকিএল-এ লগ ইন করতে সক্ষম হবেন।
olafure

3
এবং ক্ষেত্রে ALTER USER ...যদি কাজ না করে, ব্যবহার করুনUPDATE mysql.user SET authentication_string = PASSWORD('NEWPASS'), plugin = 'mysql_native_password' WHERE User = 'root' AND Host = 'localhost';
olafure

9

উবুন্টু 16.04 এর অধীনে এবং mysql-server-5.7সঠিক উত্তরটি olafure এর শেষ মন্তব্য, dpkg-reconfigure mysql-server-5.7আর কাজ করে না।

sudo service mysql stop
sudo killall mysqld
sudo mysqld_safe --skip-grant-tables --skip-networking &
mysql -u root

এখন মাইএসকিএল কনসোলে রয়েছে >mysql

USE mysql;
UPDATE user SET authentication_string=PASSWORD('newpass') WHERE user='root';
FLUSH PRIVILEGES;
\q

ভাল mysql প্রক্রিয়া পুনরায় আরম্ভ করুন

sudo killall mysqld
sudo service mysql start

আপনার নতুন পাসওয়ার্ড পরীক্ষা করুন

mysql -u root -p
Enter password: newpass
mysql>

5
mysqld_safeসঞ্চালনের, আমি ভুল পান: Directory '/var/run/mysqld' for UNIX socket file don't exists.। সুতরাং আমি দৌড়েছি sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqldএবং উপরের উত্তরগুলির বাকীগুলি কাজ করে। এটি কি উবুন্টু 16 এ একটি বাগ আছে? আমি পাসওয়ার্ড আপডেট করার আগে এই সমস্ত সমস্যার আগে কখনও অভিজ্ঞতা করি নি।
চেস্টার

@ চেস্টার আপনাকে অনেক ধন্যবাদ !! এটিই একমাত্র উপায় যা অবশেষে এখন কাজ করেছিল কারণ অন্যান্য সমস্ত সমাধানগুলি ত্রুটি ফেলে। (উবুন্টু-সার্ভার এখানে 16.04) এটি উত্তরে যুক্ত করা উচিত
derHugo

3

মাইএসকিউএল 5.7 দিয়ে শুরু করে , প্রাথমিক ইনস্টলেশন চলাকালীন, আপনি যদি পাসওয়ার্ড খালি রেখে দেন, তবে সেই ব্যবহারকারীর জন্য, প্রমাণীকরণটি auth_socketপ্লাগইন ভিত্তিক হবে ।

পাসওয়ার্ড পরিবর্তন করার সঠিক উপায় হ'ল:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';

https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/


এটি ছিল আমার সঠিক কেস (মাইএসকিএল 5.7-এ ইনস্টলেশনের সময় খালি পাসওয়ার্ড) এবং এটিই আমার মামলার একমাত্র সমাধান।
চেরোভিম

আমি বার্তাটি ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
পেয়েছি

@ ব্যবহারকারী 2513149 দয়া করে --skip-grant-tablesবিকল্প ছাড়াই আপনার মাইএসকিউএল সার্ভারটি পুনরায় চালু করুন এবং দেখুন এই সমাধানটি কাজ করে।
বরুন

@ বারুন, না, --skip-grant-tablesবিকল্প ছাড়াই আমি মাইএসকিউএলকে মূল হিসাবে লগইন করতে পারি না। এটি বলেERROR 1698 (28000): Access denied for user 'root'@'localhost'
ব্যবহারকারীর 2513149

মীমাংসিত! আমাকে mysqld_safeপাসওয়ার্ড ছাড়াই রুট হিসাবে নিয়মিত মাইএসকিউএল কনসোলে (না ) লগইন করতে হয়েছিল । আমার উবুন্টু 18.04 এবং mysql-server-5.7 রয়েছে 5. এই উত্তরটি আমাকে জিজ্ঞাসা করতে সহায়তা করেছে জিজ্ঞাসাবাবু / a / 767252 / 585252 (নীচের অংশটি দেখুন)
ব্যবহারকারী 2513149

1

বাকি উত্তরগুলির কিছুই আমার পক্ষে কাজ করে নি বলে মনে হয়। এটি আমার সমাধান:

sudo service mysql stop
sudo mysqld_safe &
sudo mysql -u root

সেখানে:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
FLUSH PRIVILEGES;
QUIT;

তারপর:

sudo killall mysqld
sudo service mysql start
sudo mysql -u root -p

1
বাকিগুলি আমার 2017-05-30T06:33:22.291126Z mysqld_safe Logging to syslog. 2017-05-30T06:33:22.294375Z mysqld_safe Logging to '/var/log/mysql/error.log'. 2017-05-30T06:33:22.296874Z mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
পক্ষেও কার্যকর

1
আমার চেষ্টা করা ছয় বা তার মধ্যে পরামর্শের মধ্যে এটিই একমাত্র পরামর্শ, তবে "ইউনিক্স সকেট ফাইলটি উপস্থিত নেই" ত্রুটি এড়াতে আমি @ চেস্টার এর কিছুটা যোগ করেছি: sudo mkdir /var/run/mysqld; sudo chown mysql /var/run/mysqldএটি mysql 5.7 এবং উবুন্টু 18.04 এ রয়েছে ।
টোয়াহিলার

0

এটি দিয়ে একটি ফাইল তৈরি করুন:

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;

মাইএসকিএল সার্ভারটি বন্ধ করুন এবং এটি চালান:

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

আরও তথ্যের জন্য এখানে চেক করুন: http://dev.mysql.com/doc/refman/5.0/en/resetting-permitted.html

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