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 Class Connection 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 MySQL - Paul Dubois - CampusPress API's Clients Outils Web Outils d’authentification ….. MySQL - Paul Dubois - CampusPress