MySQL avec Mac OS X. Quelques manipulations avec le terminal sont nécessaires si une version de MySQL est déjà lancée:



Documents pareils
Construire une base de donnée pour bibliothèque

Olivier Mondet

Le Langage SQL version Oracle

Installation et Mise en œuvre de MySQL

SQL Historique

OpenPaaS Le réseau social d'entreprise

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

Bases de SQL. Hacks 1-6 CHAPITRE UN

Java DataBaseConnectivity

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

TP Programmation Java / JDBC / Oracle

Guide d installation de MySQL

Le langage SQL (première partie) c Olivier Caron

Introduction à JDBC. Accès aux bases de données en Java

Langage SQL : créer et interroger une base

CREATION WEB DYNAMIQUE

Bases de données relationnelles

Application BdD et JDBC. Introduction 1/28. I Dans tout les cas, une seule problématique. I Quelques alternatives :

INSTALLATION ET CONFIGURATION D'UN SERVEUR WEB SUR MAC OS X

PHP 5. La base de données MySql. A. Belaïd 1

Pratique et administration des systèmes

Comment Accéder à des Bases de Données MySQL avec Windows lorqu'elles sont sur un Serveur Linux

Configurer la supervision pour une base MS SQL Server Viadéis Services

Bases de Données relationnelles et leurs systèmes de Gestion

Mysql avec EasyPhp. 1 er mars 2006

Installation UpdatEngine serveur (CentOs apache2 / MySQL)

WEB page builder and server for SCADA applications usable from a WEB navigator

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Vanilla : Virtual Box

Mysql. Les requêtes préparées Prepared statements

Application web de gestion de comptes en banques

Installation d'un serveur FTP géré par une base de données MySQL

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Bible MySQL! La première version de MySQL est apparue en Cette première version est créée pour un usage personnel à partir de msql.

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Programmation d application Bases de données avec Java

Synchronisation Mysql (Replication)

FileMaker 13. Guide de référence SQL

WDpStats Procédure d installation

Guide d'installation rapide TFM-560X YO.13

LES ACCES ODBC AVEC LE SYSTEME SAS

COMPRENDRE LES DIFFERENTS TYPES DE CONNEXION LORS DE LA

Notes de cours : bases de données distribuées et repliquées

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Instructions Mozilla Thunderbird Page 1

Auto-évaluation Oracle: cours de base

TP Contraintes - Triggers

Pour les débutants. langage de définition des données

Historisation des données

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

I. MySQL : Serveur et SGBD

Devoir Data WareHouse

FileMaker 10. Guide ODBC et JDBC

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

Comment Connecter une Base de Données MySQL via un Driver JDBC Avec OpenOffice.org

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Architecture de la plateforme SBC

PHP et les Bases de données - Généralités

Exercices sur SQL server 2000

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

La base de données XML exist. A. Belaïd

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Création et Gestion des tables

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Afin d'éviter un message d'erreur au démarrage du service Apache du type :

VTP. LAN Switching and Wireless Chapitre 4

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Le Langage De Description De Données(LDD)

Accès aux bases de données

Gestion de base de données

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Once the installation is complete, you can delete the temporary Zip files..

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

windows. deb etch main deb-src etch main

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Les BASES de DONNEES dans WampServer

FileMaker 13. Guide ODBC et JDBC

Encryptions, compression et partitionnement des données

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Java et les bases de données

Tutoriel compte-rendu Mission 1

Cours: Administration d'une Base de Données

Modélisation et Gestion des bases de données avec mysql workbench

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

TP LINUX : LINUX-SAMBA SERVEUR DE FICHIERS POUR UTILISATEURS WINDOWS

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Le langage SQL Rappels

Bon ben voilà c est fait!

Gestion de stock pour un magasin

Transcription:

MySQL avec Mac OS X MySQL est un moteur de bases de données relationnelles (SGBDR système de gestion de bases de données relationnelles) basé sur le langage SQL. Il s'agit d'un langage normalisé de requêtes pour bases de données (Strutured Query Language) créé dans les années 70 par E. F. Codd d'abord pour IBM puis repris par Oracle. 1) Installation du moteur MySQL Télécharger le fichier "mysql-standard-4.1.4-gamma-apple-darwin7.5.0- powerpc.dmg" sur le site "http://dev.mysql.com/downloads/mysql/4.1.html" pour Mac OS X 10.3 et plus. Quelques manipulations avec le terminal sont nécessaires si une version de MySQL est déjà lancée: $ /usr/local/mysql/bin/mysqladmin -u root -p shutdown <votremotdepasse> Lancer l'installation du moteur de bases de données contenu dans "mysqlstandard-4.1.4-gamma-apple-darwin7.5.0-powerpc.pkg". Puis lancer l'installation de l'élément de démarrage automatique du moteur à l'initialisation du Mac contenu dans "MySQLStartupItem.pkg". Le moteur s'installe dans le répertoire /usr/local/mysql. L'élément de démarrage s'installe dans le répertoire /Library/StartupItems/ MySQLCOM. Si par la suite vous ne voulez plus du démarrage automatique vous devrez modifier la variable "MYSQLCOM" de "YES" à "NO" dans le fichier /etc/ hostconfig. Les messages d'erreur seront personnalisés en français en créant le fichier de configuration adéquat : $ sudo cat > /etc/my.cnf [mysqld] set-variable = language=french ^D

Ensuite quelques manipulations avec le terminal sont nécessaires pour lancer le serveur si cela ne l'a pas été de façon automatique : $ sudo /usr/local/mysql/bin/mysqld_safe & $ /usr/local/mysql/bin/mysqladmin -u root password <votremotdepasse> De cette façon le contrôle sera assuré par le moteur dont l'administrateur "root" est protégé par un mot de passe, à ne pas confondre avec l'utilisateur "root" du Mac. 2) Utilisation avec le terminal Lancer l'interpréteur de commande interactif : (La version réellement affichée peut être différente de celle présentée ici) $ /usr/local/mysql/bin/mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 to server version: 4.0.18-standard Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> Afficher la liste des commandes avec : mysql> help; For the complete MySQL Manual online visit: http://www.mysql.com/documentation For info on technical support from MySQL developers visit: http://www.mysql.com/support For info on MySQL books, utilities, consultants, etc. visit: http://www.mysql.com/portal List of all MySQL commands: (Commands must appear first on line and end with ';') help (\h) Display this help.? (\?) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. edit (\e) Edit command with $EDITOR. exit (\q) Exit mysql. Same as quit.... quit (\q) Quit mysql.

rehash (\#) Rebuild completion hash. source (\.) Execute a SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. Connection id: 1 (Can be used with mysqladmin kill) Pour créer une base de données nous devons nous connecter avec l'utilisateur "root" (au sens de MySQL) : $ /usr/local/mysql/bin/mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 to server version: 4.0.18-standard Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> create database bibli1; Query OK, 1 row affected (0.14 sec) mysql> show databases; Database bibli1 mysql test 4 rows in set (0.00 sec) Nous lui affectons les droits pour nous : (Remplacer "toto" par votre nom d'utilisateur MySQL.) mysql> grant all privileges on bibli1.* to toto@localhost; Query OK, 0 rows affected (0.19 sec) mysql> exit Bye

Nous pouvons repasser en mode utilisateur : $ /usr/local/mysql/bin/mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 to server version: 4.0.18-standard Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> show databases; Database bibli1 test 3 rows in set (0.00 sec) mysql> use bibli1; Database changed mysql> show tables; Empty set (0.00 sec) mysql> Voilà, la base de données est prête à recevoir les commandes pour créer la structure et saisir les données.

3) Installation et utilisation du logiciel CocoaMySQL Télécharger le fichier "CocoaMySQL-v0.5.dmg.gz" sur le site "http:// cocoamysql.sourceforge.netl". Ouvrer dans le Finder CocoaMySQL-v0.5.dmg.gz, l'image disque s'affiche sur le bureau. Copier le logiciel dans le dossier "Applications" et lancer le. Pour créer une base de données nous devons nous connecter avec l'utilisateur "root" (au sens de MySQL). Dans la fenêtre de connexion entrer l'utilisateur "root" sur "localhost" avec son mot de passe : Note : le cryptage des mots de passe de MySQL 4.1.x est incompatible avec CocoaMySQL 0.5.

La création se réalise en suivant les étapes 1 et 2 : (La version réellement affichée peut être différente de celle présentée ici) Nous lui affectons les droits pour nous en suivant les étapes 3, 4 et 5 :

Nous pouvons repasser en mode utilisateur. Fermons la fenêtre pour se déconnecter de "root" puis ouvrons en une nouvelle avec "New" du menu "File" : Voilà, la base de données est prête à recevoir les actions pour créer la structure et saisir les données. Aidez-vous des messages d'aide qui apparaissent sous le curseur ainsi que du menu "Help". 4) Installation de JDBC et utilisation avec Java Java Database Connectivity (JDBC) fournit les API de liaison avec les moteurs de base de données, notamment pour les besoins d'applications utilisant Internet ou Intranet. JDBC est basé sur le langage SQL. Chaque pilote spécifique correspondant à un moteur de base de données SQL implémente l'api JDBC. Il peut en exister plusieurs dans l'application. Le choix du pilote est réalisé au moment du chargement du pilote et de la connexion avec le moteur de la base de données. Ce qui fait la puissance de Java. Il y a indépendance de la plate-forme (PC, Mac, Unix), du type d'application (exécutable, applet, servlet) et du moteur de base de données (Oracle, MySQL) grâce à Java et JDBC. Télécharger le pilote JDBC de MySQL à l'adresse : http://www.mysql.com/products/connector-j/index.html Prendre la version correspondante à celle de MySQL. Le pilote JDBC version 3.1.4 correspond à MySQL version 4.1.4.

Placer l'archive sur votre bureau. Lancer l'installation sous /usr/local/mysql : $ cd /usr/local/mysql $ sudo tar xzvf ~/mysql-connector-java-3.1.4-beta.tar.gz La bibliothèque du pilote JDBC est le fichier : /usr/local/mysql-connector-java-3.1.4-beta/mysql-connector-java-3.1.4-betabin.jar Essayons avec ce programme proposé par Marc Liyanage sur le site www.entropy.ch : // testmysql.java import java.sql.*; public class testmysql { public static void main(string argv[]) throws Exception { // Load the driver class try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (Exception ex) { // handle the error System.out.println("Exception: " + ex.getmessage()); } // Try to connect to the DB server. // We tell JDBC to use the "mysql" driver // and to connect to the "test" database // which should always exist in MySQL. // We use the username "" and no // password to connect. This should always // work for the "test" database. try { Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost/test"); // Set up and run a query that fetches // the current date using the "now()" SQL function. Statement stmt = conn.createstatement(); ResultSet rset = stmt.executequery("select now();"); // Iterate through the rows of the result set // (obviously only one row in this example) and // print each one.

while (rset.next()) { System.out.println(rset.getString(1)); } rset.close(); stmt.close(); conn.close(); } catch (SQLException ex) { // handle any errors System.out.println("SQLException: " + ex.getmessage()); System.out.println("SQLState: " + ex.getsqlstate()); System.out.println("VendorError: " + ex.geterrorcode()); } } } Le programme charge dynamiquement le pilote SQL puis se connecte à la base "test" fourni par défaut avec MySQL. Compilons le source Java : $ javac testmysql.java Exécutons le programme avec la bibliothèque JDBC en paramètre : $ java -classpath /usr/local/mysql/mysql-connector-java-3.1.4- beta/mysql-connector-java-3.1.4-beta-bin.jar:. testmysql 2004-09-10 10:27:45 Le programme demande la date et l'heure à MySQL puis l'affiche.

5) Les commandes SQL usuelles. création d'une table : create table nom (col1 type1 [default exp1] [contrainte1],..., [contrainte_table]);. les types : char(n), varchar(2), number, date, int, blob, clob, bfile, long, raw,. contraintes de colonne : not null, primary key, unique, references table(col), check (cond). contraintes de table : primary key, unique, foreign key, references table(col), check (cond). suppression d'une table : drop table nom [cascade constraints};. modification d'une table : alter table nom {add modify} (col1 type1 [default exp1] [contrainte1]); alter table nom add [constraint nom] contrainte; alter table nom drop contrainte;. création de lignes : insert into table [(col1,...)] values (exp1,...);. supression de ligne : delete from table [where condition];. modification de ligne : update table set col1=exp1,... [where condition];. extraction des lignes avec condition et ordre : select {col, exp} [as nom] from table [where conditions] [order by col [{asc, desc}]]; cond : exp1 {=,!=, <>, <, <=, >, >=} exp2 exp1 in (val1,...) exp1 between val1 and val2 exp1 like '%_' not cond cond1 and cond2 cond1 or cond2. opérateur in, comparaison modifié par any ou all, exists. élimination des doublons : select distinct col from table; select col from table group by col

. fonction sur groupes : select col, exp from table group by col [having cond];. produit cartésien : select col1, col2 from table1, table2;. jointure : select col1, col2 from t1, t2 where t1.col1 = t2.col2; select col1, col2 from t1 [inner] join t2 on t1.col1 = t2.col2; select col1, col2 from t1 [{full, left, right} outer] join t2 on t1.col1 = t2.col2;. sous-requêtes : - derrière from select a.col1, a.col2, b.col3 from (select col1, col2 from T1) a, (select col3 from T2) b; - imbriquée select n.note, n.noel from notes n where n.noel = (select e.noel from eleves e where e.nom = 'dupont'); - corrélées select noemp, nom, serv from emp e1 where e1.sal > (select avg(e2.sal) from emp e2 where e2.serv = e1.serv); Le mois prochains nous verrons l'utilisation de MySQL avec PHP. Pascal Pignard, mars, avril, août-octobre 2004.