Nous pouvons facilement tuer toutes les requêtes mysql d'un certain utilisateur avec l'élégant:

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

Nous remplaçons user123 par l'utilisateur que nous voulons et exécutons dans mysql et tout va bien 🙂

Nous avons acheté l'installateur Fantastico Deluxe la semaine dernière, qui, à mon humble avis, est l'un des plus décents pour les serveurs CPanel. Nous l'avons installé, testé et tout s'est bien passé. Aujourd'hui, un client a signalé un problème avec l'encodage d'une installation wordpress. J'ai passé en revue les choses et j'ai immédiatement signalé le problème que les bases de données encodaient par défaut Latin1 au lieu de UTF8 comme il était supposé. C'est encore plus amusant, qu'en phpmyadmin il est écrit que UTF8 est utilisé par défaut, drame. J'ai décidé de regarder les fichiers Fantastico pour voir s'il y avait un endroit où je pourrais fournir les paramètres de base de données par défaut à première vue, je n'ai rien vu. Ensuite, quelque chose m'a précipité pour voir ce qui est dans my.conf et ce qu'il faut voir, il n'y avait pas de paramètres correspondants dans la configuration et tout s'allume à ce qui est défini par défaut. Le serveur Mysql est en hardcode pour utiliser UTF8 s'il n'est pas configuré avec d'autres paramètres et le Fantastico est évidemment avec Latin1 ( ce qui est une décision assez stupide). La solution est comme toujours triviale ajoutée 2 ordre c [mysqld] partie pour faire de UTF8 l'encodage par défaut et tout s'endort 🙂

serveur de jeu de caractères = utf8
collation-server = utf8_general_ci

Je ne sais pas pourquoi j'ai raté ces paramètres étant donné que je jouais pour faire quelques “bien” paramètres mysql.

Amélioré par Zemanta

C’est . Xampp 1.8.0 C’est pas vrai. 1.7.7 C’est .. Phpmyadmin-ô 403

Accès interdit!


Nouveau concept de sécurité XAMPP:

L’accès à l’objet demandé n’est disponible que sur le réseau local.

Ce paramètre peut être configuré dans le fichier “httpd-xampp.conf”.

Веднага отворих httpd-xampp.conf който при мен се намира в /opt/lampp/etc/extra/, на пръв поглед всичко изглеждаше наред. Правилата за локалната мрежа бяха наред. Отделно че отварях от localhost. WTF ??? J'ai regardé le journal et j'ai vu que mon accès était coupé de la configuration. Les choses étaient haletantes pour moi ici, et pour être honnête, j'ai eu un peu de chance de trouver le problème. След като преглеждах httpd.conf-а видях в Allow/Deny клаузите един последен ред Require all granted. О да еврика. Това е новия контролен механизъм който влезе в apache 2.4.x. Il donne accès ou refuse l'accès à tous ceux requis, il imite généralement la fonctionnalité Autoriser / Refuser :). Pour résoudre le problème, ajoutez Exiger tout accordé dans les directives du dossier / opt / lampp / phpmyadmin. Après les changements, ça me ressemble

<Annuaire “/opt / lampp / phpmyadmin”>
AllowOverride AuthConfig Limit
La commande permet,Nier
Autoriser de tous
Require all granted
</Annuaire>

 

Viangi peut essayer d'autres sauvages, par exemple pour renommer le dossier phpmyadmin en quelque chose d'autre et faire un alias sans. Mais c'est plus laid et pas très significatif 🙂

p.s On m'a demandé pourquoi j'utilise XAMPP et non une installation propre de tous les composants car mon Debian leur a donné naissance – la réponse est très très simple – PARESSE. Je suis trop paresseux pour écrire quelques commandes puis toucher ma conf et ainsi de suite. Il est beaucoup plus facile de télécharger le package complet, de le décompresser et de le graver 😉

Amélioré par Zemanta

Image representing MySQL as depicted in CrunchBase

Il y a quelque temps, j'ai écrit Recherche de texte intégral MySQL 🙂 Aujourd'hui, j'ai eu une expérience très intéressante avec une seule demande. En général, la requête recherche les résultats manquants dans une autre table. Une sélection de base et une sous-sélection dans la partie OERE de la requête. En général, le squelette est

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

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

Fondamentalement, une simple requête. Je l'ai écrit pour 30 sec je l'exécute et la machine boucle. Après une longue et patiente attente de ma part ou plus précisément ~ 43 sec . J'ai craché le résultat lol . Pffff madhouse. J'entre dans la machine en regardant le CPU est normalement chargé presque au repos. Choc et horreur. J'exécute à nouveau la requête le même résultat. Baise WTF. Je cours expliquer la requête et tout brille – le deuxième champ secondTextField est seulement recherche en texte intégral sans index, et là la plaque est modeste d'environ 35k lignes. Qui lire – la recherche en texte intégral n'est pas un index. Le problème est rapidement clair

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

Et les choses se sont mises en place 0.0005 sec 😀

Faites attention à la façon dont vous mettez les index à partir d'eux, la vitesse de la requête dépend légèrement de vous.

p.s En général, je suis à blâmer pour la situation ci-dessus non seulement parce qu'il manque un index mais parce qu'il n'utilise pas la méthode de recherche en texte intégral 😀

Amélioré par 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 ви.