شایان فرهنگ پژوه هستم. بنیانگذار سایت شایان وب. دربارهی من در سایت شخصی ام بیشتر بخوانید: shayanfp.ir
دو کار مهم بعد از خرید سرور وبسایت برای دیتابیس - این کارها را انجام بدهید تا بعدا پشیمان نشوید! - فعالسازی utf8mb4 و نصب mariadb 10 برای دایرکت ادمین
شاید بدانید، شاید هم نه! ولی وبسایت شایان وب رو به سرور منتقل کردم! قبلا سایت شایان وب روی هاست قرار داشت ولی بعد از مدتی که بازدید زیادی داشتیم و منابع اختصاصیتری برای وبسایت نیاز داشتیم، تصمیم گرفتم یک سرور تهیه کنم تا وبسایت منابع اختصاصیتری داشته باشد. هاست مشکلی ندارد؛ اما برای وبسایتی که به منابع بیشتری نیاز پیدا میکند و منابع اشتراکی برایش کافی نیست، بهترین هاست دنیا هم پاسخگو نیست! پس یک سرور تهیه کردم و تجریباتی رو با شما در اینجا و مقالات دیگر وبسایت شایان وب به اشتراک خواهم گذاشت.
یکی از مواردی که پیش اومد، مشکلات دیتابیس بود. خود سایت کاملا درست کار میکرد ولی وقتی بکاپ تهیه میشد (مثلا توسط افزونهی وردپرس updraftplus یا به هر نحو دیگری) مشکل بوجود میآمد.
چه مشکلی؟!
خب، بذارید براتون یکم جزئیتر ماجرا رو تعریف کنم، روی هاست قبلی که هاست وردپرس ایران سرور هم بود، دو مورد در خصوص دیتابیس با موارد سرور فرق داشت:
- نسخهی MySQL: در سرور جدید، از MySQL 5.7 استفاده شده بود ولی در هاست، از MariaDB 10.5 . ممکنه بپرسید ماریا دیبی (MariaDB) چیه؟ ماریا دیبی، یک نسخهی فورک از MySQL است، در اصل MySQL را ویرایش کردند و بهبود هم دادند و MariaDB ایجاد شده.
- دلیل دوم و مهمتر، نحوهی unicode کاراکترها بود: وقتی اطلاعات میخواهد در کامپیوتر ذخیره بشه، بصورت 0 و 1 ای ذخیره میشه که فکر میکنم همگی میدونید. حالا تبدیل متن به این 0 و 1 روشهایی داره. بطور پیشفرض روی سرور بصورت utf8 بود در حالیکه در هاست بصورت utf8mb4 بود.
تفاوت utf8 و utf8mb4
ببینید، داستان اصلی اینه که اول از همه utf8 منتشر شد و خوب کار میکرد ولی مشاهده شد که با برخی موارد چینی و همین طور ایموجیها (یعنی این دوستان: ??????) مشکل داره و بصورت ? سیو میکنه! پس بعدا اومدند و utf8mb4 رو نوشتند تا مشکل حل بشه!
پس ما باید بیاییم و utf8mb4 رو ست کنیم.
برگردیم سراغ مشکل
خب، پس متوجه شدید که دو مورد اصلی در خصوص دیتابیس در این سرور با هاست متفاوت بود که باعث مشکل شده بود. ولی چه مشکلی؟!!!
خب، همونطور که احتمالا حدس زدید، مشکل ایموجی بوجود اومد! یعنی وقتی بکاپ دیتابیس رو ریستور کردیم، ناگهان تمام ایموجیهای سایت به ? تبدیل شد!!! و تغییر و برگشت و اینها هم داستانی شد... (چون سایت رو برای چند روز به سرور منتقل کردیم و در سایت سفارش ثبت شده بود، کاربران ثبتنام کرده بودند، مطالبی در سایت بروز شده بود و...)
پس، بااااااید حتماااا شما هم اون دو موردی که گفتم رو انجام بدهید!
حالا چطوررری!؟! الان بهتون خیییلی ساده و سریع میگم! ??
چطور انجام بدهیم؟! (بریم سراغ راهکار!)
خب دوستان، برای تغییر نسخهی MySQL یعنی فعالسازی MariaDB نسخهی 10.5، کاری که بهتون میگویم رو انجام بدهید:
نصب MariaDB با CustomBuild دایرکت ادمین (در ترمینال لینوکس)
از طریق ssh به سرور متصل بشوید و دستورات زیر رو وارد کنید: (البته باید حتما کنترلپنلتون دایرکتادمین باشه)
cd /usr/local/directadmin/custombuild
./build set mariadb 10.5
./build set mysql_inst mariadb
./build set mysql_backup yes
./build update
./build mariadb
و تمام! mariadb نصب میشه!!
فعالسازی utf8mb4
و برای اینکه هر دیتابیس جدیدی که ایجاد میشه، بطور پیشفرض ساختار utf8mb4 رو داشته باشه، باید فایل /etc/my.cnf رو باز کنید، ویرایش کنید و بعد کد زیر رو در خط آخر وارد کنید: (اگر دقیقا چنین چیزی هست -ولی مثلا utf8mb4 رو چیز دیگری نوشته-، جایگزین قبلی کنید)
[mysqld]
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
و تمام! کل داستان همین بود!!
با انجام دو کاری که گفتم، درست میشه، البته فقط برای دایرکت ادمین به این شکل هست و دستورات و موارد برای سیپنل متفاوت هستش که با یک جستجو میتوانید پیدا کنید.
یک ریستارت هم سرور رو انجام بدهید بد نیست?? و البته!! این مقاله رو از زیر لایک کنید و نظرتون رو به من بگید! اگه هم کار کرد و کلی توی زمانتون صرفهجویی شد، توی کامنتهایی پایین برام بنویسید??
امیدوارم از این مقاله لذت برده باشید و براتون مفید بوده باشه???
مطلبی دیگر از این انتشارات
دوگانگی محصول نشان تجاری
مطلبی دیگر از این انتشارات
استارتاپ بودن از منظر سرمایهگذاری جسورانه
مطلبی دیگر از این انتشارات
روش های اندیشیدن به ایده های استارت آپ کدامند؟