07/03/2018

mysql

Installation

apt install mariadb-server

Le fichier de configuration est /etc/mysql/mariadb.conf.d/50-server.cnf

Le bind et le port peuvent être changés dans ce fichier (le port par defaut est 3306.

port                   = 3306
bind-address            = 0.0.0.0

J’ai mis 0.0.0.0 pour le bind pour laisser tout le monde y accéder.

systemctl restart mariadb

Securité

mysql_secure_installation

Créer un utilisateur mysql

Ajout des droit select sur une base

CREATE USER 'user'@'localhost' IDENTIFIED BY 'mdp';
GRANT SELECT ON [nombase].* TO 'mailuser'@'localhost';
FLUSH PRIVILEGES;

Exemple utilisateur qui a tout les droits

CREATE USER 'user'@'%' IDENTIFIED BY 'mdp';
GRANT ALL PRIVILEGES ON * . * TO 'user'@'%';
FLUSH PRIVILEGES;
Attention c'est quand même un utilisateur avec tous les droits depuis l'exterieur !

Restaurer une table depuis un dump

  1. Créer la base de données
mysql -u [username] -p
CREATE DATABASE [database_name];
  1. Importer la base
mysql -u [username] -p [database_name] < file.sql
  1. Exporter la table
mysqldump [database_name] [table_name] > file.sql
  1. Re-importer la table
mysql -u [username] -p [database_name] < file.sql

Exporter en .sql

mysqldump -u user -p my_database > db.sql

Importer un fichier sql

mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

Installer adminer

Adminer est phpmyadmin en plus léger (en mieux !) L’installation est hyper simple :

  1. Installer le paquet
apt install adminer

OU Installer depuis le site

mkdir /usr/share/adminer
wget "http://www.adminer.org/latest.php" -O /usr/share/adminer/latest.php
ln -s /usr/share/adminer/latest.php /usr/share/adminer/adminer.php
  1. Ajouter l’alias qui va bien
echo "Alias /adminer.php /usr/share/adminer/adminer" | tee /etc/apache2/conf-available/adminer.conf
a2enconf adminer.conf

Adminer est maintenant accessible à l’adresse suivant monsite.fr/adminer

phpmyadmin

Pour installer phpmyadmin il faut dans certains cas modifier le fichier apache2.conf :

Ajouter à la fin du fichier /etc/apache2/apache2.conf

Include /etc/phpmyadmin/apache.conf

Ensuite redémarer apache

/etc/init.d/apache2 restart 

Profile de connexion

Avec mysql vous pouvez créer des profiles pour simplifier vos commandes mysql. Vous pourrez alors vous servir de ces profiles dans vos scripts ou dans des commandes classiques.

Pour créer un profile, il faut créer un fichier nommé .my.cnf dans le dossier de l’utilisateur :

[mysql]
user     = user
password = password
host     = 10.0.0.32

Pour les commandes mysqldump remplacez [mysql] par [mysqldump] dans le fichier

Ensuite pensez bien à changer les droits de ce fichier :

chmod 600 /root/.my.cnf

Maintenant vous n’aurez plus besoin de rentrer le mot de passe pour lancer vos commande