Extraire les requêtes SQL depuis un binlog au format RAW

Le format des log binaires RAW a un gros inconvenant, lorsque vous voulez rejouer des requêtes a partir des log binaires, l’extraction de celle ci est plus complexe. #!/bin/sh LIST=$(ls -1 /var/log/mysql/mysql-bin.* | grep -v index | awk -F "." '{print $2}') DIRDST="/mnt/pad/" DIRSRC="/var/log/mysql" DATABASE="votrebdd" echo -n > $DIRDST"/"result.txt for i in $LIST; do echo -ne $i mysqlbinlog --database=$DATABASE --base64-output=DECODE-ROWS --verbose --start-datetime="2012-01-06 00:00:00" --stop-datetime="2012-01-06 13:00:00" $DIRSRC"/mysql-bin."$i | grep "^###" $DIRDST"/"result.txt echo -ne "\tdone\r\n" done Supprimez ou modifiez les paramètres suivant en fonction de vos besoin : [Voir plus]

Les variables système

La liste des variables système MySQL se trouve http://dev.mysql.com.

Il y est indiqué si ces variables sont dynamique ou non, si elle le sont, vous pouvez les changer a chaud (ne pas oublier de mettre a jour le fichier de configuration MySQL 😉 ).

[Voir plus]

Lister toutes les tables/base

Cette requête va lister toutes les bases/tables du serveur MySQL en ignorant les “ bases ” performance_schema et informationschema mais aussi en filtrant les tables dont le nom commence par tmp et la table test.

SELECT table_schema, table_name
	FROM information_schema.tables
	WHERE table_schema NOT IN ('performance_schema','information_schema')
		AND table_name NOT REGEXP '^tmp_|^test$
	ORDER BY table_schema;

Vous pouvez filtrer sur tout ce qui est dans la table “ tables ”

desc tables;
+-----------------+---------------------+------+-----+---------+-------+
| Field           | Type                | Null | Key | Default | Extra |
+-----------------+---------------------+------+-----+---------+-------+
| TABLE_CATALOG   | varchar(512)        | YES  |     | NULL    |       |
| TABLE_SCHEMA    | varchar(64)         | NO   |     |         |       |
| TABLE_NAME      | varchar(64)         | NO   |     |         |       |
| TABLE_TYPE      | varchar(64)         | NO   |     |         |       |
| ENGINE          | varchar(64)         | YES  |     | NULL    |       |
| VERSION         | bigint(21) unsigned | YES  |     | NULL    |       |
| ROW_FORMAT      | varchar(10)         | YES  |     | NULL    |       |
| TABLE_ROWS      | bigint(21) unsigned | YES  |     | NULL    |       |
| AVG_ROW_LENGTH  | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_LENGTH     | bigint(21) unsigned | YES  |     | NULL    |       |
| MAX_DATA_LENGTH | bigint(21) unsigned | YES  |     | NULL    |       |
| INDEX_LENGTH    | bigint(21) unsigned | YES  |     | NULL    |       |
| DATA_FREE       | bigint(21) unsigned | YES  |     | NULL    |       |
| AUTO_INCREMENT  | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_TIME     | datetime            | YES  |     | NULL    |       |
| UPDATE_TIME     | datetime            | YES  |     | NULL    |       |
| CHECK_TIME      | datetime            | YES  |     | NULL    |       |
| TABLE_COLLATION | varchar(32)         | YES  |     | NULL    |       |
| CHECKSUM        | bigint(21) unsigned | YES  |     | NULL    |       |
| CREATE_OPTIONS  | varchar(255)        | YES  |     | NULL    |       |
| TABLE_COMMENT   | varchar(80)         | NO   |     |         |       |
+-----------------+---------------------+------+-----+---------+-------+

Lister les tables en InnoDB/MyISAM

Voici la requête SQL :

SELECT table_schema, table_name, engine
FROM information_schema.tables
WHERE table_schema NOT IN ('performance_schema','information_schema')
AND engine != 'NULL
ORDER BY table_schema;

Compter le nombres de tables en InnoDB/MyISAM

Voici la requête SQL :

SELECT engine, COUNT(engine) AS 'nb tables
FROM information_schema.tables
WHERE engine NOT IN ('NULL','CSV','MEMORY','PERFORMANCE_SCHEMA')
GROUP BY engine;

Installer son FAMP (FreeBSD Apache MySQL PHP)

Un “FAMP” est une plateforme Apache/PHP/MySQL installé sur une FreeBSD 😉 et oui, ce n’est pas un L_inux_AMP !

Apache

cd /usr/ports/www/apache22/
make config install distclean
echo 'apache2_enable="YES"' >> /etc/rc.conf
echo 'apache2ssl_enable="YES"' >> /etc/rc.conf
echo 'accf_http_ready="YES"' >> /etc/rc.conf && kldload accf_http

PHP

cd /usr/ports/lang/php5
make config install distclean
cd /usr/ports/lang/php5-extensions
make config install distclean

MySQL

cd /usr/ports/databases/mysql51-server
make install WITH_OPENSSL=yes
make distclean
echo 'mysql_enable="YES"' >> /etc/rc.conf
/usr/local/etc/rc.d/mysql-server start
/usr/local/bin/mysql_secure_installation

Générer un dump par base MySQL

Le script va générer generer les sql pour, creer les base, table, les remplirs, les vues/fonctions, les comptes MySQL

[Voir plus]

Exporter une base SQLite pour l'importer dans une base MySQL

Voici comment procéder pour faire un dump de votre base SQLite dans le bute de l’importer dans une base MySQL Dump de la structure SQLite echo ".sch" | sqlite /etc/appli/db.sqlite > /tmp/db.sql Dump des données echo ".dump" | sqlite /etc/appli/db.sqlite >> /tmp/db.sql Import MySQL mysql -umonuser -p mabase < /tmp/db. [Voir plus]

PureFtpd/MySQL – Création de comptes en masse

En entrée du script, une liste de compte utilisateur a créer ( liste-users-clean ) modifiez ce que renvoie le ‘echo’ a la fin de la boucle pour mettre ce que vous voulez a la place. #!/bin/bash MAXSIZE=10 array1=( w e r t y u p a s d f h j k z x c v b m Q W E R T Y U P A D F H J K L Z X C V B N M 2 3 4 7 8 ! [Voir plus]