-
SQL > configuration du serveur mySQL ou mariaDB
MYSQL
mysql -u root -p
mysql -u root -D nom_base
Dans mysql :
mysql> use votre_base
Ajouter ou changer le mot de passe de root
NOTE le root de mysql est différent du root système :
Dans mysql :
SET password FOR "root"@"localhost" = password('nouveau_mdp');
Depuis un terminal :
sudo mysqladmin -u root password nouveau_mdp -p ancien_mdp
Lorsque l’utilisateur root ne possède aucun mot de passe, utiliser cette commande :
sudo mysqladmin -u root password Nouveau_mot_de_passe -p ""
Redéfinir de force le mot de passe de root
sudo service mysql reset-password
ou :
sudo dpkg-reconfigure mysql-server-5.7
Plus compliquée, si vous avez perdu votre mot de passe root pour MySQL :
On stoppe le serveur MySQL :
sudo service mysql stop
On se connecte au serveur sans tenir compte des privilèges utilisateurs :
sudo /usr/bin/mysqld_safe --skip-grant-tables & mysql -h localhost
Nous allons utiliser la table contenant les paramètres de MySQL :
USE mysql
On met en place le nouveau mot de passe :
UPDATE mysql.user SET authentication_string=<votre_mot_de_passe>('NouveauMdP') WHERE USER='root' AND host='localhost';
(Placez le nom de la table `user` entre quotes (AltGr + 7) et remplacez
<votre_mot_de_passe>par le mot de passe de votre choix)On quitte le prompt de MySQL :
quit
On stoppe totalement mysqld & mysqld_safe :
sudo mysqladmin shutdown
On redémarre le serveur MySQL en utilisation normale :
sudo service mysql start
Créer un utilisateur mysql
se connecter sur mysql en root :
mysql -u root -p
une fois connecté :
grant all privileges on *.* to 'remote_user'@'192.168.0.1' identified by 'mot_de_passe';
*.*pour l’ensemble des bases de données, sinon remplacer *.* par le nom de la base de données.remote_usernom de l’utilisateur qui sera créé.192.168.0.1IP à partir de laquelle nous pourrons nous connecter à distance. Pour autoriser l’accès venant de toutes machines (limité par l’authentification), remplacer l’ip par le symbole ‘%’.Pour rendre ces privilèges effectifs :
flush privileges;
Configuration en UTF-8
Ajouter les deux lignes suivantes à la fin de la section «
[mysqld]» du fichier /etc/mysql/mysql.conf.d/mysqld.cnf :character-set-server=utf8 skip-character-set-client-handshake
puis de relancer le serveur mysql :
sudo service mysql restart
Vérifier le résultat dans mysql :
mysqld> SHOW VARIABLES LIKE 'char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysqld/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)
Quelques requêtes SQL
Importer une base de données située dans le répertoire courant (base de donnée exportée en .sql)
SOURCE fichier.sql;
Renommer une table :
ALTER TABLE nom_table RENAME AS nouveau_nom;
Utilisateurs
Créer un utilisateur
GRANT ALL PRIVILEGES ON ma_table.* TO 'mon_user'@'localhost' IDENTIFIED BY 'mot_de_passe';
Pour rendre ces privilèges effectifs :
flush privileges;
Définir un mot de passe
SET password FOR "nom_utilisateur"@"localhost" = password('mot_de_passe');
Supprimer un utilisateur
DROP USER "nom_utilisateur"@"localhost";
Lister les utilisateurs
SELECT USER FROM mysql.user;
Privilèges
Donner tous les droits sur une base de données à un utilisateur précis
GRANT ALL ON nom_base.* TO "nom_utilisateur"@"localhost";
Supprimer les droits sur une base de données à un utilisateur précis
REVOKE ALL privileges ON nom_base.* FROM "nom_utilisateur"@"localhost";
Sauvegarde et importation
Exporter la base de donnée « maBase », utilisez la commande :
mysqldump -u root -p maBase > maBase_backup.sql
Pour exporter une table (par exemple ma_table )appartenant à une base des données (par exemple maBase) :
mysqldump -u root -p maBase ma_table > ma_table.sql
Importer une base de données ou une sauvegarde sur « maBase », utilisez la commande :
mysql -u root -p maBase < maBase_backup.sql
Puis tapez votre mot de passe.