Aller au contenu principal

MySQL

Comment configurer mon application pour accéder à MySQL ?

Dans le cadre d’une installation de MySQL mono serveur

Il faut toujours configurer votre application sur l’adresse IP 127.0.0.1

Dans le cadre d’une installation de MySQL en multi-serveur (master/master)

Il faut toujours configurer votre application sur l’adresse IP virtuelle de MySQL (appelé VIP dans le tableau de votre infrastructure).
Ceci évite une écriture locale simultanée sur vos serveurs, qui entrainerait une perte de synchronisation et parfois une corruption des données.

** !!! Ne jamais utiliser localhost ou 127.0.0.1 sauf sur les nouvelles stacks !!! **

Comment mon service bascule du serveur Master vers le serveur Slave ?

Dans le cadre d’une installation MySQL en multi-serveurs (master/master), un système de haute disponibilité se charge d'adresser les requêtes vers le second serveur en cas d'indisponibilité du premier.

Sur la génération intermédiaire de système la bascule est manuelle, ceci permettant de prévenir du flapping du à de possible micro-coupure réseau et aux collision de clefs qui apparaîssent alors.

Sur la dernière génération, la bascule est automatique et le risque de flapping̀̀ est très réduit.

Comment créer une nouvelle base de données avec son utilisateur associé ?

Vous avez le droit de créer une base de données et un utilisateur associé grâce à une procédure stockée installée sur la machine.

Script interactif

Voici un exemple d’utilisation :

Createuserdb.sh
Vérification connexion SQL en cours
Veuillez entrer le nom de la base de données à créer
base_exemple
Veuillez entrer l'utilisateur pour la base base_exemple à créer
Userexemple
Veuillez entrer le mot de passe de l'utilisateur Userexemple.
PassWdUser#123
Création de la base base_exemple , avec l'utilisateur Userexemple et mot de passe PassWdUser#123
Voulez-vous continuez ? Oui(O) ou Non(N), C pour annuler
O
Veuillez entrer le mot de passe de l'utilisateur SQL votreutilisateurpardefaut
motdepasseutilisaeurpardefaut
+--------------------+
| Database |
+--------------------+
| base_exemple |
| information_schema |
+--------------------+
################################################################

>> Base de données : base_exemple
>> Utilisateur : Userexemple
>> Mot de passe : PassWdUser#123

################################################################

Veuillez noter deux points importants de sécurité sur cette partie :

• Il est important de créer un utilisateur par base afin de séparer les privilèges verticalement. • la longueur du mot de passe doit être de douze caractères au minimum en utilisant les chiffres, lettres majuscules et minuscules ainsi que les caractères spéciaux.

Script non-interactif

Veuillez noter deux points importants de sécurité sur cette partie

  • il est important de créer un utilisateur par base afin de séparer les privilèges verticalement ;
  • la longueur du mot de passe doit être de douze caractères au minimum en utilisant les chiffres, lettres majuscules et minuscules ainsi que les caractères spéciaux.
/usr/local/bin/nimysql.sh help
Usage: nimysql.sh [OPTIONS] [ARGS]...

DESCRIPTION
nimysql.sh help you to create MySQL accounts.
First you must generate a credential file, then, you can create a new MySQL account.

OPTIONS
[1] credential generate a temporary credential file, needed for open MySQL connection
[2] create create a new MySQL user, password and database
[3] check check MySQL connectivity and credential
[4] password generate a strong random password
ARGS
credential
[1] 'Own MySQL user name' (mandatory)
[2] 'Own MySQL user password' (mandatory)
create
[1] 'MySQL new user name' (mandatory)
[2] 'MySQL new user password' (mandatory)
[3] 'MySQL new database' (mandatory)
check
no args needed
password
no args needed
EXAMPLES
# generate MySQL credential for establish connection
./nimysql.sh credential myuser mypassword
# create MySQL account and his database
./nimysql.sh create newuser newpassword newdatabase
# check MySQL connectivity and credential
./nimysql.sh check
# generate a strong random password
./nimysql.sh password

Exemple

 ./nimysql.sh credential myuser mypassword 
./nimysql.sh create newuser newpassword newdatabase

Comment acceder à PhpMyAdmin ?

Consulter l'article dédié à cette question.

Comment puis-je déployer ma base sql sur mon nouveau serveur

  • à l'aide de phpMyAdmin (https://doc.kokiris.com/phpmyadmin)

  • avec ssh, en déposant son dump sql que l'on injectera avec la commande mysql madatabase < mondump.sql sur un serveur mono et sur mysql -h 192.168.10.100 madatabase < mondump.sql sur une infrastructure répliquée.

Une base portant le nom de votre identifiant a été pré-créé lors de l'installation du serveur, elle est donc directement utilisable.