Хуудсыг ачаалж байна. Түр хүлээнэ үү.
loading...

Зөвлөмж

Баазыг хэрхэн нөөцлөх вэ?
Local дээр баазтай харьцсан код бичиж байгаад дараа нь уг код оо баазын хамт интернэтэд хуулан байрлуулахдаа хүмүүс нэлээд алдаа гаргадаг. Уг асуудал маань крилл үсгээс улбаалан гарна. Яаж нөөцлөж, юуг анхаарах талаар бяцхан зөвлөгөө хүргэе.

Ихэнх кодерууд phpMyAdmin ийг ашиглан баазаа SQL форматтад хөрвүүлэн дараа нь уг файлыг өөр серверт мөн л phpMyAdmin ашиглан зөөдөг. Энэ тохиолдолд баазын болон хүснэгтийн charset-с шалтгаалан крилл юникод үсгүүд асуултын тэмдэгээр солигдох, Р, Я зэрэг зарим үсгүүд дутуу орох зэрэг асуудлууд гарна. Яагаад гэхээр нэг ширхэг юникод үсэг хоёр тэмдэгтээс бүрдэж байдаг. Жш: strlen('Я') кодыг хэвлэхэд 2 гэсэн хариу гарна.

Үүнийг яаж шийдэх вэ?

Уг асуудлыг шийдэх хэд хэдэн арга байдагийн ганц нэгээс сонирхуулъя.

1. Ихэнх серверт бараг 99%-д нь баазыг үүсгэхэд үндсэн кодчлол нь latin1 төрөл нь MyISAM гэж үүсдэг. Тиймээс хүснэгтээ үүсгэхдээ араас нь залгуулаад
Код:
ENGINE=MyISAM DEFAULT CHARSET=latin1;
кодыг нэмж өгөх хэрэгтэй. Уг код SQL файлд хүснэгт үүсгэх кодны төгсгөлд байгаа эсэхийг шалгаарай.  Дараа нь SQL файл аа уншуулна. Нэгэнт өөр хэлбэртэйгээр үүссэн бол phpMyAdmin -ий OPERATION хэсгээс засварлаж болно. Уг тохиолдолд том хэмжээний SQL файлуудтай харьцах үед тохиромжгүй.

Код:
MYSQL SERVER 1 --> SQL FILE ---> MYSQL SERVER 2


2. Том хэмжээний файлууд байнга асуудалтай. Тиймээс файлаа нөөцөлж авахдаа ZIP эсвэл GZ өргөтгөлтэй файл болгон хадгалах хэрэгтэй. Мөн уг файлыг уншуулахдаа өмнөх хүснэгтээ устгах тэмдэглэгээг тэмдэглэж өгвөл зүгээр. (Add DROP TABLE / VIEW / PROCEDURE / FUNCTION)
Дараа нь файлыг өөр серверт уншуулахдаа өнөөх шахаж нөөцөлсөн файлаа зааж өгнө. Крилл юникод мэдээллийн хувьд ZIP төрөл нь илүү тохиромжтой байдаг.  Энэ арга маань файлын хэмжээ хэтэрхий том буюу хэдэн сая бичлэгтэй баазыг зөөх аргад бас сайн тохирохгүй юм.

Код:
MYSQL SERVER 1 --> ZIP FILE ---> MYSQL SERVER 2


3. Маш том хэмжээний файлуудыг яаж зөөх талаар сонирхуулъя. SSH комманд ашиглан хялбархан хөрвүүлж болох ба уг тохиолдолд өнөөх крилл юникод үсгийн асуудал гарах магадлал мөн л байх болно. Тиймээс би маш олон удаа өөрийн биеэр туршсан аргыг хуваалцъя. Уг арга маань ерөөсөө хоёр MySQL серверийн хооронд шууд зөөх явдал юм.

Код:
MYSQL SERVER 1 -->  MYSQL SERVER 2


а. Зөөх сервер дээрээ гаднаас хандах хостийг зөвшөөрүүлэх. Ингэснээр өөр серверээс тухайн баазын сервер руу шууд хандах боломжтой болно.
б. Ямар нэгэн баазын программ ашиглана. Би анх MySQL Front ашигладаг байсан боловч уг программыг MYSQL -н зүгээс зөвшөөрөөгүйгээс хөгжүүлэлт нь зогссон юм. За тэгээд ч алдаа ихтэй программ байсан. Харин одоо бол байнга Navicat ашигладаг. Хүснэгтний бүтэц зэргийг шууд хэвлэж болохоос гадна олон хялбарчилсан коммандууд нь таалагддаг юм. Ямар ч программ ашигласан уг программд мэдээлэл шилжүүлэх буюу DATA TRANSFER гээд комманд заавал байж таарна. Өөрөөр нэрлэгдсэн байж бас болно. Уг комманд таны хэрэглэж буй программд байхгүй бол Navicat -г ашиглахыг зөвлөе.
в. Хоёр сервер руу холбогдох холболтыг NEW CONNECTION коммандаар үүсгэнэ.
г. DATA TRANSFER коммандыг ашиглан өөрийн локал серверээс гадаад сервер руу чиглэсэн сонголтыг хийгээд ЭХЛЭХ точвлуурыг дарснаар таны интернэтийн хурдаас хамаарсан тодорхой хугацааны дараа зөөлт амжилттай болох болно. Зарим тохиолдолд бичлэгийн алдааны улмаас зарим нэг мөр дээр очоод алдаа заах тохиолдолд байдаг. Уг тохиолдолд уг мөрийг устгаад дахин эхлэхээс өөр аргагүй.

Хамгийн сүүлд дахин хэлэхэд ямар нэгэн баазыг нөөцөлж авах хамгийн найдвартай арга нь

Код:
MYSQL SERVER 1 <-->  MYSQL SERVER 2

энэ арга юм.
Үнэлэх
Нэвтрэнэ үү
Үнэлгээ (1)

Сэтгэгдэл үлдээх
Нэр
Сэтгэгдэл
Өмнөх сэтгэгдлүүд »