Vous êtes sur la page 1sur 29

MySQL

 I / Présentation.
 II / Administration et Outils.
 III / Mysql et le langage C.
 IV / Mysql et le langage C++.
V / Mysql et Java.
 VI / Benchmarks
 VII / Références
I / Présentation de Mysql
1) Historique
 En 94, M. Widenius crée un nouveau
serveur basé sur les caractéristiques de
msql.
 En 95, Tcx distribue MySQL sur Internet.
 Version 3.11.1 diffusée dès 1996 (plusieurs
plate-formes)
 Aujourd’hui Version 3.23.27
2) Caractéristiques (++)
 Vitesse.
 Facilité d’utilisation.
 Coût.
 Capacités.
 Connexion et Sécurité.
 Portabilité.
 Distribution ouverte.
3) Caractéristiques (--)
 Subselect.
 Transanctions et commit / rollback.
 Clés étrangères et intégrité référentielle.
 Procédures stockées.
 Déclencheurs.
 Vues.
4) Installation
 Récupérer les sources sur www.mysql.com
 tar zxf mysql-version.tar.gz
 ./configure - -prefix=« path »
 make
 make install
 lancer le script mysql_install_db
5) Démarrage
 lancer la commande safe_mysqld &
 Pour un démarrage automatique :
– Dans /etc/rc.d/init.d/ créer un lien symbolique
mysql vers /usr/local/share/mysql.server :
ln –s /usr/local /share/mysql.server /etc/rc.d/init.d/mysql
– Dans /etc/rc.d/rc3.d créer un lien symbolique
S90mysql vers /etc/rc.d/init.d/mysql
ln –s /etc/rc.d/init.d/mysql /etc/rc.d/rc3.d/S90mysql
II / Administration et Outils
2) Outils

 mysql : shell sql.


 mysqladmin : création, destruction de bases.
 mysqldump : sauvegarder une base.
 mysqlimport : importer un fichier de
données.
 mysqlshow : infos sur les bases, les
tables, les colonnes et les index.
 isamchk : maintenance et la réparation.
3) Exemples
III / Mysql et le langage C
1) API C et Structures
 MYSQL pointeur sur une base
 MYSQL_RES résultat d’une requete
 MYSQL_ROW ligne de données.
 MYSQL_FIELD infos sur un champ

 mysql_real_connect() mysql_close () //Connexions

 mysql_query () mysql_store_result ();


 mysql_free_result() // Execution

 mysql_fetch_row () // Récupération des résultats


 mysql_field_seek ();
 mysql_fetch_field ();
2) Exemple(1)
int main (int argc, char *argv[]){
……..
MYSQL *conn;
conn = mysql_init (NULL);
if(mysql_real_connect(conn,host_name,user_name,
password,db_name,port_num,socket_name,flags) == NULL){
printf("mysql_real_connect() failed");
return -1;
}
process_query (conn,argv[1]);
mysql_close (conn);
return 0;
}
Exemple(2)
int process_query (MYSQL *conn, char *query){

MYSQL_RES *res_set;

if (mysql_query (conn, query) != 0){


printf("process_query() failed");
return -1;
}
res_set = mysql_store_result (conn);
if (res_set != NULL){
process_result_set (conn, res_set);
mysql_free_result (res_set);
return 0;
}…
Exemple(3)
void process_result_set (MYSQL *conn, MYSQL_RES *res_set){
MYSQL_ROW row;

while ((row = mysql_fetch_row (res_set)) != NULL){


mysql_field_seek (res_set, 0);

for (i = 0; i < mysql_num_fields (res_set); i++){


field = mysql_fetch_field (res_set);
printf (" %s |",row[i]);
}
printf("\n");
}
}
3) Compilation
 Includes
-I/usr/include/mysql

Librairies
-L/usr/local/lib/mysql -lmysqlclient
IV / Mysql et le langage C++
1) API C++
 Installer MySQL++ 1.7.6

 Class Connection

 Class Query

 Class Result

 Class Row
2) Exemple
int main(int argc,char **argv) {
Connection con("etudiant");
Query query = con.query();
query << argv[1];
Result res = query.store();

Row row;
Result::iterator i;

for (i = res.begin(); i != res.end(); i++) {


row = *i;
cout << row[0] << " | " << row[1] << " | " << row[2]<< endl ;
}
return 0;
}
3) Compilation
 Includes
-I/usr/include/mysql

 Librairies
-L/usr/lib/mysql -lsqlplus
V / Mysql et Java
1) API Java
 Spécifiques à la base cible

 Installer mm.mysql.jdbc-2.0pre5.tar.gz
 Créer le CLASSPATH

 Class Connection
 Class Statement
 Class ResultSet
2) JDBC
 Java Database Connectivity
 Communiquer avec les bases de données
 Package java.sql
 Appel package généralisé vers propriétaire
 4 types :
– Type 1 : Passerelle JDBC - ODBC
– Type 4 : Pilotes 100 % Java, plus
performant.
3) Exemple

Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection Conn=
DriverManager.getConnection("jdbc:mysql://localhost/etudiant?
user=fred&password=fred");
Statement Stmt = Conn.createStatement();
ResultSet RS = Stmt.executeQuery(args[0]);
while (RS.next()) {
System.out.println(RS.getInt(1) + " | " + RS.getString(2) + " | " +
RS.getString(3));
}
RS.close();
Stmt.close();
Conn.close();

VI / Benchmarks

C’est pas moi les fait !!!


VII / Références
 www.mysql.com
– API's
– Clients
– Outils Web
– Outils d’authentification
– …..

 MySQL - Paul Dubois - CampusPress

Vous aimerez peut-être aussi