Configuration Installation et Administration de mysql
Installation et administration d'un serveur mysql à la main c'est ici
Installation à la mano :
Installation serveur mysql plus init mot de passé root :
Téléchargement :
http://dev.mysql.com/downloads/mysql/5.0.html
Linux (non RPM packages) downloads
Désarchivez le dans /opt/
adduser mysql cd /opt cd mysql-version chown -R mysql . chgrp -R mysql . scripts/mysql_install_db --user=mysql chown -R root . chown -R mysql data bin/mysqld_safe --user=mysql & cd /opt ln -s mysql-version mysql
Définir un Password root :
mysqladmin -u root password "password"
ou après si vous voulez le changer :
use mysql;
select * from user;
UPDATE mysql.user SET Password = PASSWORD('password') WHERE User = 'root';
FLUSH PRIVILEGES;
Envirronement :
Important !
Mettre :
pathmunge /opt/mysql/bin
dans le /etc/profile (su - pour prendre en compte tout de suite) et dans /etc/ld.so.conf
/opt/mysql/lib
N'oubliez pas de faire prendre en compte par votre systeme les modification que vous venez de faire :
ldconfig
Pour le chargement des librairies et :
source /etc/profile
Pour les binaires mysql dans le PATH.
init.d:
#!/bin/bash PATH=/sbin:/bin:/usr/bin:/usr/sbin:/opt/mysql/bin case "$1" in start) cd /opt/mysql ./bin/mysqld_safe --user=mysql & ;; stop) cd /opt/mysql killall mysqld & ;; *) echo $"Usage: $0 {start|stop}" RETVAL=1 esac exit
Sinon vous en avez un plus complet ici
Pour configurer et sécuriser votre mysql taper :
bin/mysql_secure_installation
Création d'une base et de son utilisateur
création de la base :
CREATE DATABASE nom_base DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
création de l'utilisateur :
GRANT ALL PRIVILEGES ON nom_base.* TO 'utilisateur'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
recharger les droits :
FLUSH PRIVILEGES;
Sauvegarder toutes vos bases de données dans un fichier .sql:
mysqldump -u root -ppassword --default-character-set=latin1 -f --all-databases | bzip2 > /data/mysql-dump/mysql-dump-all-base.sql.bz2
L'option latin1 pour pas avoir de soucis d'accent en cas de ré-import, bzip2 pour que le fichier prenne moins de place, biensur ces deux options sont facultatives (bzip2 -d pour le décompresser), par contre le -f est important à mon avis (si mysqldump rencontre une erreur il continu quand meme.
Sauvegarder une base de donnée dans un fichier .sql :
mysqldump -u root -p -h localhost --opt nom-base > nom-base.sql
Sauvegarder une table d'une base :
mysqldump -u login -p -h localhost --opt nom-base nom-table > nom-table-de-nombase.sql
Injecter un .sql :
mysql -u root -p -D test < test.sql
-D pour la base de donnée qui doit déjà exister.
Informations importantes d’un serveur MySQL :
Pour l'utiliser, il suffit de vous connecter en root au serveur et de lancer la commande suivante :
mysql> s -------------- mysql Ver 14.12 Distrib 5.0.51a, for redhat-linux-gnu (i386) using readline 5.0 Connection id: 2 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.0.51a Source distribution Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: latin1 Conn. characterset: latin1 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 12 sec Threads: 1 Questions: 5 Slow queries: 0 Opens: 12 Flush tables: 1 Open tables: 6 Queries per second avg: 0.417 --------------
La commande nous permet donc de voir rapidement l'uptime du serveur, sa version, son encodage, le nombre de slow queries, le nombre de tables ouvertes ... etc...
Problème sur vos données : tables et bases
Moi j'utilise c'est commande de temps en temps, vous avez aussi la possibilité de la mettre dans une tache cron :
./mysqlcheck -u root -ppassword --all-databases --auto-repair
Visualiser les connexions à la base en temps réel
mysql -e 'SHOW PROCESSLIST' -ppassword
Modification de champs/valeurs en ligne de commande :
- show databases; (voir toutes les bases)
- use plop; (utiliser la base plop)
- show tables; (voir les tables de plop)
- select * from user; (voir le contenu de la table user)
- update user set Host='SRV-WWW' where Host='191.43.120.2'; (changer la valeur du champ Host de 191.43.120.2 à SRV-WWW)
- insert into user values('SRV-WWW2','root','*C4890413824','Y','Y','Y',,,0,0); (rajouter un champ avec les valeurs entre parenthèse)
Ajout d'un fichier de configuration my.cnf :
Avec un script init un peu plus fournit que celui utiliser dans cet article vous arez la possibilité de mettre en place un fichier de configuration my.cnf pour votre serveur mysql.
Pour le script d'init vous le trouverez dans cet article.
Maintenant vous n'avez plus qu'a créer un fichier my.cnf dans /etc/ avec comme contenu :
##my.cnf [mysqld] datadir=/opt/mysql/data socket=/tmp/mysql.sock user=mysql # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/opt/mysql/data/hostname.pid
Obtenir la taille de toutes les bases de données en Mo :
SELECT table_schema,round(sum(data_length+index_length)/1024/1024,4) AS "Size (MB)" FROM information_schema.tables GROUP BY table_schema;
Obtenir la taille d'une tables dans un base donnée :
SELECT table_schema,round(sum(data_length+index_length)/1024/1024,4) FROM information_schema.tables WHERE table_schema = 'dotclear' AND table_name = 'user';
ici vous aurez la taille de la table user dans la base de donnée dotclear
Configuration en UTF-8 :
Ajoutez les deux lignes suivantes à la fin de la section mysqld de votre my.cnf :
character-set-server=utf8 skip-character-set-client-handshake
Il faudra redémarrer votre serveur mysql.
Vous pouvez vérifier le résultat si vous vous connectez à mysql :
SHOW VARIABLES LIKE 'char%';
Lister les tables de la base de données utilisée (use nom_database) :
SHOW TABLES;
Structure d'une table :
DESCRIBE nom_table;
Renommer une table :
ALTER TABLE nom_table RENAME AS nouveau_nom;
Supprimer les droits sur une base à un utilisateur :
REVOKE ALL privileges ON nom_base.* FROM nom_utilisateur@localhost;
Créer un nouvel utilisateur :
CREATE user "nom_utilisateur"@"localhost";
Définir un mot de passe pour un user donné :
SET password FOR "nom_utilisateur"@"localhost" = password("mot_de_passe");
Supprimer un utilisateur :
DROP user nom_utilisateur@localhost;
Vider une table :
truncate table "nom_table";
Voila si vous voyez autre chose d'intéressant n'hésitez pas