jeremm

Jérémy MURIEL ( jeremy [at] jeremm [dot] fr )

Fév 192012
 

Pour ajouter ou activer des indexes sur une table MyISAM, la requête peut être très long en fonction du nombre d’indexes.

Mysql utilise un repair table pour activer les indexes, mais il y a deux façons :
– avec un repair by sorting
– avec un repair using keycache (cette façon est très lente car crée les indexes 1 par 1)

Mysql utilise ‘repair using keycache’ si :
– nombre d’index > myisam_repair_threads
– taille de chaque index > myisam_max_sort_file_size

Augmenter le paramètre myisam_repair_threads devrait la plus part du temps permettre à mysql d’utiliser le repair by sorting

Fév 192012
 

Un petit script bash pour voir les droits de tous les utilisateurs mysql.

#!/bin/bash
tmp=/tmp/showgrant$$
mysql --batch --skip-column-names -e "SELECT user, host FROM mysql.user" > $tmp
cat $tmp | while read user host
do
      echo "# $user @ $host"
      mysql --batch --skip-column-names -e"SHOW GRANTS FOR '$user'@'$host'"
done
rm $tmp
 Posted by at 16 h 06 min  Tagged with:
Fév 192012
 
# ~/.bashrc: executed by bash(1) for non-login shells.
 
export PS1='\h:\w\$ '
umask 022
 
# You may uncomment the following lines if you want `ls' to be colorized:
export LS_OPTIONS='--color=auto'
eval "`dircolors`"
alias ls='ls $LS_OPTIONS'
alias ll='ls $LS_OPTIONS -l'
alias la='ls $LS_OPTIONS -la'
alias l='ll'
alias vi='vim'
alias pstree='pstree -A'
 
[ -f /etc/bash_completion ] && . /etc/bash_completion
HISTTIMEFORMAT="%d/%m/%Y(%H:%M:%S) # "
HISTSIZE="5000"

http://blog.jeremm.fr/.bashrc

 Posted by at 16 h 03 min
Fév 192012
 

TCPDUMP

Tout sauf le ssh :

tcpdump -n port not 22

Tout sauf moi :

tcpdump -n host not <IP>

Les paquets syn et ack sur le port 80 :

tcpdump -n tcp and port 80 and 'tcp[tcpflags] & tcp-syn == tcp-syn'

Les paquets syn sur le port 80 :

tcpdump -n tcp and port 80 and 'tcp[tcpflags] == tcp-syn'

Les paquets arp ou ping :

tcpdump -enqti eth0 \( arp or icmp \)

NETSTAT

Le nombre de connexions sur le port 80 :

netstat -nt | grep ":80" | awk '{print $5}' | cut -d':' -f1 | sort | uniq -c

Port qui écoute :

netstat -tulpn

Nomre de connexions :

netstat -nt | wc -l
Fév 192012
 

Installation :

Debian :

gpg --keyserver  hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
gpg -a --export CD2EFD2A | apt-key add -
echo "deb http://repo.percona.com/apt lenny main" >> /etc/apt/sources.list.d/percona.list
echo "deb-src http://repo.percona.com/apt lenny main" >> /etc/apt/sources.list.d/percona.list
apt-get update
apt-get install percona-toolkit

Quelques commandes pour analyser les requêts MySQL :

Avec un tcpdump :

tcpdump -i eth0 port 3306 -s 65535 -c 10000 -x -n -q -tttt | pt-query-digest --type tcpdump --report-format=profile --limit=10

Avec les logs slow-query :

pt-query-digest --limit=10 /var/log/mysql/mysql-slow.log

Avec les binlogs :

mysqlbinlog /var/log/mysql/mysql-bin.XXXXXX | pt-query-digest --type binlog --limit=10

La documentation de Percona :
http://www.percona.com/doc/percona-toolkit/2.0/pt-query-digest.html