رضا سامعی

دفتر من ..... کشکول من، قیل و قال‌های من، پرت و پلاهای من

۲ مطلب با کلمه‌ی کلیدی «mysql» ثبت شده است

. [یک نقطه‌ی کوچولو]

سلام؛... دقت کنید:

[root@somedir]#rm -rf ./*
[root@somedir]#rm -rf /*

دیدید همین یک نقطه میتونه با آدم چیکار کنه؛ واقعا آدم ضعیف آفریده شده.... دیگه نمیدونم مغرور شدنش برای چیه؟

حالا خدا رو شکر به موقع متوجه شدم، کمی قبل از اینکه پوشه‌ی var بپره و داده‌های mysql و چیز‌های دیگه از دست بره؛ الحمدالله.

و اما بعد؛ باید مجدد برنامه رو راه‌اندازی میکردیم. بعد از نصب سیستم عامل وقتی که پوشه‌ی سابق داده‌های mysql رو (/var/lib/mysql) رو با پوشه‌ی جدید جاگذاری کردم و خواستم سرویس رو (mysqld) راه بندازم خطا داد و گفت(/var/logs/mysql.log):

Can't find file: './mysql/plugin.frm' (errno: 13)

بعد از کمی جستجو توی وب مشخص شد مشکل از دسترسی مربوط به پوشه است؛ در حقیق مالک و گروه پوشه باید چیزی باشه mysqld برای دسترسی به اونها با مشکل مواجه نشه (SELinux فراموش نشه). خب با توجه منبعی که پیدا کردم( اینجا )، باید بعد از کپی کردن پوشه‌ی داده‌های mysql د رمسیر /var/lib دستورات زیر رو هم اجرا میکردم:

[root@somewhere]#cd /var/lib
[root@/var/lib]#chown -R mysql:mysql mysql
[root@/var/lib]#chmod -R ug+rwX mysql
[root@/var/lib]#chmod g-rwX mysql/mysql

و اما اگر روی سیستمتون SELinux فعاله:

[root@/var/lib]#chcon -R -t mysqld_db_t mysql

خدا رو شکر بعدش mysqld هم اجرا شد.

۲۷ آذر ۹۱ ، ۱۸:۲۵ ۰ نظر موافقین ۰ مخالفین ۰
رضا

Reset Mysql Root Password

سلام...؛
فکر کنید sysadmin از شرکت بره و کسی نباشه که رمز های سرویس ها رو بدونه..... آقا نخند، برای شما جوکه برای ما خاطره است (^_^)
خب حالا با mysql هم کار داریم و پسورد root اش رو نمیدونیم....
Reset Mysel Root Password: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
کار خیلی راحتیه... اول سرویس رو میاریم پایین:
#service mysqld stop
بعدش سرویس رو مستقیما با پارامترهای دلخواهمون بالا میاریم:
#/bin/mysqld_safe --skip-grant-tables --skip-networking
پارامتر اولی (--skip-grant-tables)باعث میشه که هنگام connect شدن به سرور mysql از ما نام کاربری و رمز عبور رو نخواد..... پارامتر دومی هم (--skip-networking) باعث میشه که به هیچ درخواست connect شدنی که از روی شبکه برای mysqld میاد بهش پاسخ نده... به قولی اصلا روی شبکه کار نکنه و فقط به localhost جواب بده ( از اون جایی که --skip-grant-tables کردیم این کار ضروریه تا هر کسی نتونه از روی شبکه وارد mysqld بشه؛ از اونجایی که در این حالت به هیچ وجه دسترسی‌های یک کاربر رو چک نمیکنه، هر کسی میتونه هر دستوری رو اجرا... مثلا تغییر رمز همه‌ی کاربرها یا پاک کردن تمام db ها ).
اما بعد با mysql-client به mysqld متصل میشیم و password رو reset میکنیم:
#mysql
> UPDATE mysql.user SET Password=PASSWORD('MyNewPass')  WHERE User='root';
> FLUSH PRIVILEGES;
> \q
خب تمام شد... حالا باید mysqld رو restart کنیم(kill و start):
#killall mysqld_safe
#service mysqld start
حالا دیگه میشه با رمز جدید به mysqld متصل شد.
۲۸ مهر ۹۱ ، ۰۸:۳۵ ۱ نظر موافقین ۰ مخالفین ۰
رضا