Mit dem eleganten können wir problemlos alle MySQL-Anfragen eines bestimmten Benutzers beenden:

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

Wir ersetzen user123 durch den gewünschten Benutzer und führen MySQL aus. Alles ist in Ordnung

Wir haben letzte Woche den Fantastico Deluxe Installer gekauft, Dies ist meiner bescheidenen Meinung nach einer der anständigsten für CPanel-Server. Wir haben es installiert, getestet und alles verlief reibungslos. Heute hat ein Client ein Problem mit der Codierung einer WordPress-Installation gemeldet. Ich überprüfte die Dinge und stellte sofort das Problem fest, dass die Datenbanken standardmäßig Latin1 anstelle von UTF8 codierten, wie es angenommen wurde. Es macht noch mehr Spaß, dass in phpmyadmin geschrieben steht, dass UTF8 standardmäßig verwendet wird, Theater. Ich habe mich entschlossen, in den Fantastico-Dateien nachzuschauen, ob es irgendwo einen Ort gibt, an dem ich die Standarddatenbankeinstellungen bereitstellen kann. Auf den ersten Blick habe ich nichts gesehen. Dann stürzte mich etwas, um zu sehen, was sich in my.conf befindet und was zu sehen ist. Es gab keine entsprechenden Einstellungen in der Konfiguration und alles leuchtet auf, was standardmäßig eingestellt ist. Der MySQL-Server ist ein Hardcode für die Verwendung von UTF8, wenn er nicht mit anderen Einstellungen konfiguriert ist und der Fantastico offensichtlich mit Latin1 ( Das ist eine ziemlich dumme Entscheidung). Die Lösung ist wie immer trivial hinzugefügt 2 Bestellung c [mysqld] Teil, um UTF8 zur Standardkodierung zu machen und alles schläft ein 🙂

Zeichensatzserver = utf8
collation-server = utf8_general_ci

Ich habe keine Ahnung, warum ich diese Einstellungen verpasst habe, da ich ein paar gespielt habe “fein” MySQL-Einstellungen.

Verbessert von Zemanta

Es kam vor ein paar Tagen heraus Xampp 1.8.0 gestern nach dem Upgrade von der Version 1.7.7 Ich hatte ein ziemlich interessantes Problem. Phpmyadmin öffnete sich nicht für mich und explodierte mit 403

Zugang verboten!


Neues XAMPP-Sicherheitskonzept:

Access to the requested object is only available from the local network.

This setting can be configured in the filehttpd-xampp.conf”.

Веднага отворих httpd-xampp.conf който при мен се намира в /opt/lampp/etc/extra/, на пръв поглед всичко изглеждаше наред. Правилата за локалната мрежа бяха наред. Отделно че отварях от localhost. WTF ??? Погледнах log-а гледам че достъпа ми е отрязан от конфигуацията. Тука вече нещата ме ахнаха и честно казано донякъде малко на късмет открих проблема. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Require all granted. О да еврика. Dies ist der neue Steuermechanismus, der eingegeben wurde Apache 2.4.x.. Es gibt Zugriff oder verweigert den Zugriff auf alle erforderlichen, Es ahmt im Allgemeinen die Allow / Deny-Funktionalität nach :). За да поправим проблема добавяме Require all granted в директивите за папката /opt/lampp/phpmyadmin. Nach den Änderungen sieht es für mich so aus

<Verzeichnis “/opt / lampp / phpmyadmin”>
AllowOverride AuthConfig Limit
Bestellung erlauben,verweigern
Erlaube von allen
Require all granted
</Verzeichnis>

 

Viangi kann andere Wilde ausprobieren, Zum Beispiel, um den Ordner phpmyadmin in etwas anderes umzubenennen und einen Alias ​​für no zu erstellen. Aber es ist hässlicher und nicht sehr bedeutungsvoll 🙂

ps Ich wurde gefragt, warum ich XAMPP verwende und nicht alle Komponenten sauber installiere, da mein Debian sie hervorgebracht hat – Die Antwort ist sehr sehr einfach – FAULHEIT. Ich bin zu faul, um ein paar Befehle zu schreiben und dann meine Conf zu berühren und so weiter. Es ist viel einfacher, das gesamte Paket herunterzuladen, zu entpacken und zu brennen 😉

Verbessert von Zemanta

Image representing MySQL as depicted in CrunchBase

Vor einiger Zeit habe ich über MySQL Volltextsuche 🙂 heute hatte ich eine sehr interessante Erfahrung mit einer Anfrage. Im Allgemeinen sucht die Abfrage nach Ergebnissen, die in einer anderen Tabelle fehlen.. Eine einfache Select- und eine Unterauswahl im WHERE-Teil der Abfrage. Grundsätzlich ist das Skelett

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

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

Grundsätzlich ist eine einfache Abfrage. Ich schrieb es für 30 Sec. Ich lasse es fallen und die Maschine. Nach langem und geduldiges Warten auf mich oder in genau 43 Sek. . Meine spat partitur lol . PFFF Wahnsinn. Ich betrete die Maschine beobachten, dass der Prozessor normalerweise fast im Leerlauf-Zustand geladen wird. Schock und Schrecken. Ich führe die Abfrage erneut mit demselben Ergebnis aus.. Gebohrtes WTF. Ich führe die Erklärung der Anfrage und alles leuchtet – Das zweite zweiteTextField-Feld ist nur Volltextsuche Ohne Index, Und dort ist das Tablett bescheiden von ca. 35 k die Bestellung. Wer zu lesen – Volltextsuche ist kein Index. Ist jetzt klar das Problem ein Quickie

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

Und die Dinge kamen an die Orte, die Query 0.0005 SEC-😀

Seien Sie vorsichtig, wie Sie Ihre Indizes auf sie setzen hängt marginale Geschwindigkeit der Anwendung.

P. s insgesamt bin ich falsch über die oben genannte Situation nicht nur, weil der Index fehlt, weil es nicht die Volltext-Suchmethode verwendet 😀

Verbessert von Zemanta

Вчера след обновяване на версията на mysql, server-ът ми започна да ми крещи, че има табличка, която не е била затворена чисто и има нужда от поправка и прочие. Блах, коя ще е тая таблица, все пак са ми около 30-тина на тоя сървър. Единият вариант е да видите в log-овете какво пише по въпроса и да пуснете поправка на съответната таблица или другият вариантдалеч по-добрияте да пуснете поправка, проверка и оптимизиране на всички таблици. За тази цел ще използвам mysqlcheck инструмента. Общо взето вариантите в случая са като и двете коменди са синонимни една на друга:

mysqlcheck -Aor -u root -p

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

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