290 likes | 444 Views
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.
E N D
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
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
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.
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
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
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