Մենք կարող ենք հեշտությամբ սպանել բոլոր mysql հարցումներ է որոշակի օգտվողի հետ էլեգանտ:

select concat('KILL ',id,';') from information_schema.processlist where user='user123';

և մենք կկարողանանք այնպես փոխարինել user123 հետ ցանկալի է մեզ օգտագործողի և իրականացնում է mysql և ամեն ինչ OK է 🙂

Անցյալ շաբաթ գնել Fantastico Deluxe տեղադրել, ով իմ խոնարհ կարծիքով, դա մեկն է առավել приличните համար CPanel սերվերների. Ստացվում է, որ փորձարկել են, եւ ամեն ինչ շատ հարթ է անցել. Այսօր մի հաճախորդ ինձ տեղեկացրել է խնդրի հետ енкодинга է wordpress. Ես ուսումնասիրել է ամեն ինչ ու միանգամից лъсна խնդիրները, դրա հետ енкодинг լռելյայն Latin1 փոխարեն UTF8, ինչպես եւ ենթադրվում էր. Դեռ ծիծաղելին այն, որ phpmyadmin-ը գրում է, որ օգտագործվում է UTF8 լռելյայն, թատրոն. Ես որոշեցի տեսնել ֆայլերը Fantastico-որ բան տեսնել, թե արդյոք մի տեղ, որտեղ ես կարող եմ ցուցաբերել կառավարում համար տվյալների բազայի լռելյայն առաջին հայացքից չի տեսել ոչինչ. Ինչ-որ բան ինձ текна, տեսնել, թե ինչ կա my.եա-ինչպես տեսնում ես, որ չի եղել համապատասխան պարամետրերը կազմաձեւման, եւ ամեն ինչ ընկավ այն է, որ այն տեղադրվել է լռելյայն. Mysql սերվերի хардкоднат օգտագործել UTF8 եթե ոչ տրամադրված այլ պարամետրեր եւ Fantastico, դա ակնհայտ է, Latin1 ( որ դա բավականին հիմար որոշումը). Решението както винаги е тривиално добавят се 2 реда в [тузды] часста за да се окаже UTF8 като кодировка по подразбиране и всичко заспива 🙂

character-set-server=utf8
collation-server=utf8_general_ci

Нямам никаква идея поради каква причина съм пропуснал тези настройки при положение че си играх да правя няколкофининастройки на mysql-а.

Ընդլայնված by Zemanta

Մի քանի օր առաջ դուրս է եկել Ծրագրի xampp 1.8.0 երեկ թարմացման տարբերակ 1.7.7 ինձ շատ հետաքրքիր խնդիր է. Phpmyadmin-չի բացվել, և ես покатился հետ 403

Access forbidden!


New XAMPP security առաջընթացը:

Access to the requested օբյեկտի is only available from the local network.

This setting can be configured in the file “httpd-xampp.հակամարտութ”.

Անմիջապես ես բացեցի httpd-xampp.conf ով ինձ մոտ է գտնվում /opt/lampp/etc/extra/, առաջին հայացքից ամեն ինչ նորմալ է. Կանոնները համար լոկալ ցանցում կարգով. Հետ մեկտեղ բացման տեղական. WTF ??? Նայեցի log-իսկ ես նայում, որ իմ մուտք է եղել отрезан է конфигуацията. Ահա հիմա բոլորը ինձ ахнаха եւ, անկեղծ ասած, մի փոքր հաջողություն, ես գտա խնդիրը. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Require all granted. Մասին էվրիկա!. Սա նոր վերահսկողության մեխանիզմը, որը ներառում է apache 2.4.x. Հետ չեն տալիս մուտք գործել կամ հրաժարում նման անհրաժեշտ, հիմնականում նմանակող Լուծել/Արգելել ֆունկցիոնալ :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. Հետո փոփոխություններ են ինձ նայում, այնքան

<Կատալոգ “/opt/lampp/phpmyadmin”>
AllowOverride AuthConfig Սահմանափակել
Order allow,արգելել
Allow from all
Require all granted
</Կատալոգ>

 

Թեեւ դա ճիշտ է, կարող եք փորձել և այլ վայրի, օրինակ, որպեսզի վերանվանել թղթապանակը phpmyadmin ինչ-որ բան այլ է, եւ անել alias ոչ. Բայց դա տգեղ է եւ հատկապես կարեւոր է 🙂

p.s Հարցնում էին ինձ, թե ինչու եմ օգտագործում են XAMPP, այլ ոչ թե մաքուր տեղադրել բոլոր բաղադրիչների, իսկ նրանց իմ Debian ծնվել – отговорът е много много простМЪРЗЕЛ. Мързи ме да напиша няколко команди после да си пипна конфовете и прочие. Доста по лесно е сваляш целия пакет разархивираш и палиш 😉

Ընդլայնված by Zemanta

Image representing MySQL as depicted in CrunchBase

Преди известно време бях писал за MySQL Полнотекстового Որոնման 🙂 Днес имах много интересно преживяване с една заявка. В общи линии заявката търси за резултати който липсват друга таблица. Един основне Select и един sub select в WHERE частта на заявката. В общи линии скелета и е

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

В общи линии елементарна заявка. Написах я за 30 сек пускам я и зацикли машината. След дълго и търпеливо чакане от моя страна или по точно ~43 сек . Ми се изплю резултат lol . Пффф лудница. Влизам в машината гледам процесора е нормално натоварен почти в idle състояние. Шок и ужас. Пускам пак заявката пак същия резултат. Fuck WTF. Пускам explain на заявката и всичко лъснавторото поле secondTextField е само full text search без index, а там табличката е скромна от около 35к реда. Кой да четеfull text search не е индекс. Вече е ясен проблема набързо едно

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

И нещата си дойдоха на местата Query took 0.0005 sec 😀

Внимавайте как си слагате индексите от тях ви зависи маргинално скоростта на заявката.

p.s Като цяло аз съм си крив за горната ситуация не само защото липсва индекс ами защото не ползва full text search метода 😀

Ընդլայնված by Zemanta

Երեկ, հետո upgrade տարբերակը mysql, server-խոստովանել է իմ սկսեց ինձ վրա գոռում,, որ կա ցուցանակ, որը չի փակվել մաքուր է եւ վերանորոգման կարիք ունի, և այլն,. Բլա, ինչպիսի ՞ ն կլինի այս աղյուսակը, ամեն դեպքում, ինձ մոտ 30-թի տվյալ սերվերի վրա. Տարբերակներից մեկը հանդիսանում է տեսնել log-երում, թե ինչ է գրում այս հարցի շուրջ եւ կատարել վերանորոգման սեղանի շուրջ կամ այլ տարբերակ – շատ ավելի լավ է – - կատարել վերանորոգման, ստուգում և օպտիմալացում բոլոր աղյուսակների. Համար, այս ծրագիրը կլինի օգտագործել mysqlcheck. Общо взето вариантите в случая са като и двете коменди са синонимни една на друга:

mysqlcheck -Aor -u root -p

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

Общо взето, която и от двете команди да използвате, ефектът ще е еднакъвароматична поправка, проверка и оптимизация на всички таблици. След като напишете която и да е от двете команди, ще бъдете попитани за root паролата на mysql server-a ви.