কীভাবে রুট পাসওয়ার্ড ব্যবহার করতে না পারলে --skip-grant-tables সহ MySQL পুনরায় চালু করবেন?


4

উবুন্টু 16.04 এ মাইএসকিউএল পুনরায় চালু করতে হবে --skip-grant-tables অপশন সক্রিয় করা হয়েছে, তবে আমি আমার রুট পাসওয়ার্ডটি জানি না বা এটি কাজ করছে না। আমি কিভাবে সেট করতে পারেন --skip-grant-tables পাসওয়ার্ড ছাড়া?

যখন আমি এটি নিয়মিত ব্যবহারকারী হিসাবে চেষ্টা করি:

mysqld --skip-grant-tables

আমি এটা দেখি:

mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied)

সুতরাং, আমি এই উদাহরণটি /etc/init.d/mysql এর বাইরে খুঁড়েছি এবং যোগ করেছি --skip-grant-tables পরামিতি:

su - mysql -s /bin/bash -c "/usr/sbin/mysqld --skip-grant-tables"
Password: 
su: Authentication failure

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

sudo su - mysql -s /bin/bash -c "/usr/sbin/mysqld --skip-grant-tables"
No directory, logging in with HOME=/

কিভাবে আমি mysql --skip-grant-table দিয়ে শুরু করতে পারি?


1
সবচেয়ে সহজ পদ্ধতি সাময়িকভাবে পরিবর্তন করা হবে /etc/init.d/mysql বিকল্পটি অন্তর্ভুক্ত করতে এবং তারপর এই স্ক্রিপ্টটি দিয়ে শুরু করুন ( /etc/init.d/mysql start )
Marek Rost

তাই সহজ নয় .. শুরু স্ক্রিপ্টের একটি xtrace এখানে থেকে কমান্ড চালানোর জন্য মনে হচ্ছে: /bin/systemctl --no-pager stop mysql.service .. এটি শুরু স্ক্রিপ্টে MySQL কমান্ড চলমান হয় না। এটি আমার কিছুক্ষণ সময় নিতে যাচ্ছে প্রকৌশলী mysql.service (একটি সম্পত্তি ফাইল)।
jcalfee314

1
এটা কাজ করেনি .. আমি যোগ --skip-grant-tables /lib/systemd/system/mysql.service .. বাহ, আমি এই আরো জটিল পেয়ে কল্পনা করতে পারবেন না।
jcalfee314

আহ্, আমি ইতিমধ্যেই systemb উপর উবুন্টু রান ভুলে গেছি। ভাল আপনি এটি figured :)
Marek Rost

উত্তর:


9

যখন আপনি আপনার রুট পাসওয়ার্ডটি জানেন না (অথবা একটি ত্রুটি যেমন 'ERROR 1045 (28000): Access denied for user 'root'@'localhost' অ্যাক্সেস প্রতিরোধ করে) আপনি MySQL কনফিগারেশন ফাইলটিতে বিকল্প যোগ করে অ্যাক্সেস পেতে পারেন। সম্পাদনা করার জন্য প্রথমে এটি খুলুন:

sudo nano /etc/mysql/my.cnf

তারপর জন্য অনুসন্ধান করুন [mysqld] এবং নীচের এই মান লিখুন:

[mysqld]
# For debugging and recovery only #
skip-grant-tables
skip-networking
###################################

আপনি দেখতে পারেন, কমান্ড লাইন প্যারামিটার যোগ করার কৌশল এখানে ড্রপ করছে -- পরামিতি সামনে থেকে। এখন MySQL সেবা পুনরায় আরম্ভ করুন এবং আপনি আপনার রুট ব্যবহারকারীর পাসওয়ার্ডটি রিসেট করতে অথবা প্রায় যেকোনো কিছু করতে আপনার টেবিল অ্যাক্সেস করতে পারেন। (তবে, আপনি অনুদান টেবিলগুলির সাথে কিছু করতে পারবেন না কারণ এটি লোড হয় না।)

সতর্ক থাকুন। আপনি এই মোডে থাকাকালীন, যে কোনো লগ-ইন ব্যবহারকারীর আপনার সমগ্র ডাটাবেসের অ্যাক্সেস আছে। যে কেন আমি যোগ skip-networking উপরে বিকল্প, আপনি পুনরুদ্ধারের সময় তাই দূরবর্তী ব্যবহারকারী টেবিল অ্যাক্সেস করতে পারবেন না।

সার্ভার পুনঃ-সুরক্ষিত করার জন্য, যখন আপনি সম্পন্ন করবেন তখন আবার সেই লাইনগুলি আউট করতে এবং পুনরায় চেষ্টা করুন নিশ্চিত করুন।


ইন্টারনেট অনুসন্ধানের দিন পরে, এই আমার সমস্যা সমাধান। তোমাকে অনেক ধন্যবাদ.
mungaih kamau

এটি একটি Linux সিস্টেমের সাথে কাজ করে যা systemd ব্যবহার করে। কমান্ড লাইন থেকে mysqld শুরু করে এমন সমাধান কাজ বলে মনে হচ্ছে না।
Craig S. Anderson

0

মন্তব্য থেকে।

Init.rc কনফিগারেশনগুলির জন্য:

সবচেয়ে সহজ পদ্ধতি বিকল্পটি অন্তর্ভুক্ত করতে সাময়িকভাবে /etc/init.d/mysql পরিবর্তন করতে হবে --skip-grant-tables এবং তারপর এই স্ক্রিপ্টটি দিয়ে শুরু করুন (/etc/init.d/mysql শুরু)।

উবুন্টু 16.04 এর মতো প্রারম্ভিক সিস্টেমে এটি করতে হবে /lib/systemd/system/mysql.service

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