گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

خطای عدم دسترسی به کاربر root در نسخه های جدید mariadb

نویسنده:
۱۰ خرداد ۹۶

اگه هنوز به جای استفاده از MariaDB دارین از MySQL استفاده میکنید باید بگم خیلی در اشتباه هستین و بهتره خیلی زود به فکر مهاجرت باشین که البته این مهاجرت اصلاً سخت نیست و سازگاری خوبی بین MySQL و MariaDB وجود داره.

اخیراً بعد از نصب MariaDB روی یک سرور توی مراحل نصب پرسشی مبنی بر انتخاب گذرواژه برای root نکرد و بعد از نصب هم وقتی میخواستم با دستور mysql -u root -p ارتباط با سرور برقرار کنم خطای عدم دسترسی کاربر root میداد.

اول فکر کردم شاید گذرواژه ست نشده و با روش‌ skip-grant-tables– وارد شدم و گذرواژه را توی جدول user پایگاه mysql ست کردم اما بعد از اتمام کار متوجه شدم خیر باز هم اجازه برقراری ارتباط نمیده. خیلی شانسی متوجه شدم داره بی دردسر اجازه میده با sudo و بدون گذرواژه ارتباط برقرار کنم که با کمی جستجو متوجه شدم MariaDB داره به صورت پیش‌فرض برای کاربر root از unix_socket plugin استفاده میکنه و این plugin اجازه دسترسی از طریق socket را به کاربر متناظر سیستم میده.

خوب ایده جالبی بود چون کلاً توی محیط های production بهتره ارتباط با root برقرار نباشه و این پلاگین خیلی هم در تأمین امنیت کاربردی هست ولی اگه ارتباط از طریق root خیلی مهمه میتونید با ساختن یک کاربر دیگه مثلاً admin و دادن دسترسی های root بهش از برنامه‌های دیگه ارتباط بزنید. دوستانی هم که ترجیح میدن مثل گذشته کاربر root گذرواژه بگیره کافیه Query زیر را بزنن :

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your password'

حل مشکل Resolving Host در اوبونتو

نویسنده:
۱ خرداد ۹۶

یک مدت بود که بعد از کمی کار کردن با سیستم مروگر خطای Resolving Host میداد و گاه و بی گاه رفع و دوباره تکرار میشد. اولش به DNS های ISP شک کردم و توی NetworkManager از DNS های OpenDNS و Google استفاده کردم اما باز هم مشکل تکرار میشد که با بررسی های بیشتر متوجه شدم اصلاً درخواست Resolve به DNS ارسال نمیشه و یه چیزی توی خود سیستم عامل داره مانع میشه.

تا دلتون بخواد جستجو کردم و ساعت‌ها جستجو نتیجه‌ای در بر نداشت ، البته مشکل اینجا بود که دنبال راه حل‌هایی بودم که دوستان تأیید کرده بودن جواب میده و راه حل‌هایی که برای دیگران جواب نداده بود را بررسی نمیکردم. یکی از موارد که اصلاً فکرم بهش خطور نمیکرد این بود که افرادی توصیه کرده بودن dnsmasq که یک DNS Forwarder و DHCP Server هست را غیر فعال کنیم.

خیلی شانسی توی یک وبلاگ کسی توضیح داده بود که dnsmasq که گویا از Ubuntu 16.04 پیش‌فرض نصب و فعال هست میتونه به دلایلی که جاش در این متن نمیگنجه باعث مشکلات Resolve بشه. خوب گفتم کار پیچیده‌ای نیست و کافیه حذفش کنیم و تویetc/NetworkManager/NetworkManager.conf/ هم غیر فعالش کنیم ببینیم چی میشه :

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

[ifupdown]
managed=false

بعدش هم NetworkManager را Restart کنیم :

sudo service network-manager restart

و در نهایت تعجب مشکل حل شد !!!!
به اندازه‌ای اعصابم از این مشکل خورد بود که حوصله کنکاش بیشتر نداشتم اما گفتم تجربش را توی وبلاگ بگذارم و در زمان مقتضی حتماً مفصل بررسیش کنم.