# MySQL/Manipulation de base

* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
* Introduction
* PhpMyAdmin
* Parcourir les bases de données
* Spécifier les noms
* LDD, LMD et LCD
* Variables utilisateurs
* Alias
* Types de données
* Manipulation de base
** mysqldump
* Manipulation de table
* Manipulation de données
* Requêtes
* NULL
* Opérateurs
* Fonctions
* Procédures stockées
* Regex
* Bases de données spatiales
* Importer et exporter
* Réplication
* Optimisation
* API
* Sécurité
* Mots réservés
* Débogage
[ Modifier le sommaire ]

## Création

NB : dans MySQL, CREATE SCHEMA est un parfait synonyme de CREATE DATABASE, contrairement à d'autres SGBD comme Oracle ou SQL Server.

### En ligne de commande

* mysqladmin create permet de le faire en ligne de commande.
* Sinon :

## Suppression

mysqladmin drop permet de le faire en ligne de commande. Le paramètre -f force celle-ci sans poser de question.

## Renommage

Dans les versions 5.1.x il existait une commande RENAME DATABASE db1 TO db2;, mais elle a été retirée suite à des pertes de données.
Il reste toutefois la ligne de commande pour le faire en plusieurs étapes :
Une autre option avec les droits root, est de renommer le répertoire de la base :
Après renommage, il convient de migrer les permissions :

## Copie
### Avec mysqldump

    Pour plus de détails voir : MySQL/mysqldump.

### Avec des outils de modélisation

Ces logiciels permettent de représenter les tables sous formes de diagrammes.

#### phpMyAdmin

    Pour plus de détails voir : MySQL/PhpMyAdmin.

#### MySQL Workbench

MySQL Workbench permet également la migration depuis d'autres bases de données, telles que Microsoft SQL Server.
Par rapport à phpMyAdmin, il a l’inconvénient de devoir être installé, mais a l'avantage de pouvoir modifier des tables en changeant de champ au clavier, comme dans un tableur.

#### DBDesigner

DBDesigner est en licence GNU GPL, mais ne peut pas être considéré comme un freeware car il requiert un compilateur Kylix non gratuit.
Il rencontre une erreur de connexion à MySQL sur la version 4 : unable to load libmysqlclient.so. Pour la résoudre :
* Installer les "Shared compatibility libraries" MySQL pour version 5.0).
Sous Linux :
* Remplacer le fichier libmysqlclient.so de DBDesigner par le nouveau :
* Trouver et installer kylixlibs3-unwind-3.0-rh.4.i386.rpm
* Trouver un vieux xorg (ex : xorg-x11-libs-6.8.2-37.FC4.49.2.1.i386.rpm depuis FC4) et l'extraire :
* Récupérer libXft.so.1.1 dans ce package et l'installer :
Maintenant DBDesigner4 peut se connecter à MySQL5.

#### Kexi

Il existe aussi Kexi de Calligra Suite, téléchargeable sur http://userbase.kde.org/Calligra/Download/fr.

### OpenOffice Base et ODBC

Configuration typique :
* Soit une base MySQL appelée mysqlhost.
* OpenOffice.org sur la machine cliente (Debian GNU/Linux dans l'exemple).
* Connexion via ODBC.
Sur le client, installer mysql-client :
Sous Fedora/CentOS :
Avant d'installer ODBC, test la connexion distante localement :
Il faut créer la base mysqldatabase et l'utilisateur user1 sur mysqlhost.
Toujours sur la machine cliente :
Pour Fedora/CentOS :
Les fichiers /etc/odbc.ini et /etc/odbcinst.ini sont créés.
odbcinst.ini déclare le pilote ODBC disponible. Exemple pour Debian :
Pour CentOS :
Maintenant odbcinst est utilisable :
Pour d'autres options : man odbcinst
Il faut créer au moins un DSN (Data Source Name ou Data Set Name), parce que chaque connexion ODBC avec OOo est initialisée avec.
Pour créer un DSN, il existe différente possibilités :
* Modifier /etc/odbc.ini (concerne tous les utilisateurs)
* Modifier ~/.odbc.ini (concerne un seul utilisateur)
* Utilise les applications graphiques comme ODBCConfig (Debian : unixodbc-bin, Fedora : unixODBC-kde).
Finalement, ces applications graphiques modifient /etc/odbc.ini ou ~/.odbc.ini.
Par exemple, un fichier /etc/odbc.ini (le nom du DSN est entre crochets) :
Dans ce cas, le DSN est appelé MySQL-test.
Ensuite pour tester, utiliser la commande isql :
Depuis OOo :
À ce stade, le programme est connecté à la base mysqldatabase en tant que user1. Il reste donc le mot de passe à rentrer.
Ensuite, Java est requis dans les Wizards uniquement (lors de création directe JRE est inutile) :
* Wizard pour créer un formulaire.
* Wizard pour créer des rapports.
* Wizard pour créer des requêtes.
* Wizard pour créer tables.
Les distributions GNU/Linux fournissent généralement OpenOffice avec IcedTea (openjdk-6-jre/java-1.6.0-openjdk) ou GCJ (java-gcj-compat/java-1.4.2-gcj-compat) donc les fonctionnalités basées sur du Java fonctionnent.

## Restauration

* Sous Linux, le mot de passe est demandé après entrée de la commande :
* Sous Windows, par défaut le compte root n'a pas de mot de passe et MySQL n'est pas dans les variables d'environnement donc on utilise son chemin absolu :
Contrairement aux importations de PhpMyAdmin il n'y a pas de limite. Par exemple on peut charger une base de 2 Go en cinq minutes.
À partir d'un fichier compressé :

## Références

* ↑ https://dev.mysql.com/doc/refman/8.4/en/mysqladmin.html
* ↑ https://dev.mysql.com/doc/refman/5.1/en/rename-database.html
* ↑ http://www.thegeekstuff.com/2014/03/mssql-to-mysql/