Mysql commandes diverses

De BlaxWiki
Aller à la navigationAller à la recherche

Commandes divers

 - describe nomdunetable : info sur la structure d'une table
 - show full processlist : info sur les requetes en cours
 - show variables : donne les variables du serveur mysql
 - show variables like '%char%': donne les variables incluant *char*
 - \G à la fin d'une requete sort le résultat en ligne et non en colonne
 - \P more : définit le pager sur more, ce qui permet d'afficher page par page
 - show grants for user@host : info sur les droits de ce user
 - select (count(*)) from user : retourne le nombre 
 - insert into whitelist set login="smtp@corp.lecroupier.com", passwd="oueteo";
 - select if( find_in_set('Migrated',migrated),'','') from easy.mbox ; 
 - GRANT ALL PRIVILEGES ON *.* TO 'root'@'IP' IDENTIFIED BY 'MDP"; (rajoute un user root pour taper depuis une autre ip que localhost)
 - UPDATE mysql.user SET Password = PASSWORD('NEWPASSWD') where User="vision"; (modifie le password)

Exemple de création de tables:
CREATE TABLE `pop3_imap_proxy` (`user` varchar(128) NOT NULL,`servername` varchar(255) NOT NULL,`port` varchar(8) default NULL,PRIMARY KEY  (`user`),
KEY `idxtblPerdition_user` (`user`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Pb avec mysql 4.1 et client 3.23

mysql > SET PASSWORD FOR 'postfix'@'localhost' = OLD_PASSWORD('reixaetu');
mysql > flush privileges;

ou

# mysqladmin -uroot! -p -hip_du_serveur! old-password nouveaupassword!

ou

dans le my.cnf en mettant :
set_variable = old_passwords=1 dans la partie [mysqld]

Suppression / modification d'un enregistremen

suppression : DELETE FROM nom_table WHERE id=1 and name="lkl"

modification : UPDATE nom_table SET prenom='Jean-Pierre', nom='Papin', ville='Marseille', enfants=3 WHERE id=1
Si on est sur qu'il n'y a qu un enregistrement à supprimer, on peut rajouter limit 1 à la fin dans le cas où nous ne sommes pas sur
<pre>

== Création d'un user ==

Création du user root pour une connexion depuis une autre ip, et affectation de tous les droits
<pre>
CREATE USER 'root'@'172.26.15.17' IDENTIFIED BY 'tVBBF1OO';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'172.26.15.17' WITH GRANT OPTION;

Commandes mysql en bash

mysql -u postfix -e "INSERT into mailbox (username,password,name,maildir,domain) values ('$MBOX', '$PASSWD', '$NAME', '$MBOX/', '$DOMAIN');" -pmotdepasse postfix

Reset du password root

1. Arreter le serveur mysql (avec le script d'init)

2. Sous le user mysql :
# mysqld --skip-grant-tables --skip-networking --datadir=/data/mysql/data --pid-file=/data/mysql/data/antispam.amesys.fr.pid --socket=/data/mysql/data/mysql.sock
(les options --datadir, --pid-file et --socket sont optionnellesà

3. Sous le user root 
# mysql --socket=/data/mysql/data/mysql.sock

mysql> use mysql;

mysql> UPDATE user SET password=PASSWORD('Ch00bAk1') WHERE user="root";
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)