Autres
AideEnLigne
CahierDeBrouillon
Présentation
Administration

MesLectures
[Articles publiés]
[Blog Affordance]
[LibreOffice en ligne]
[Journal d'Ophelia]
[Kim Khal]

Informations
[Rue 89]

DNS etc
[Robtex]
Logins
Votre ID: 111
Nom:
Login utilisateur
Mot de passe éditeur

MySQLViteFait

Démarrer avec MySQL?

C'est pas mon truc. Alors je prends 2 ou 3 notes pour démarrer vite fait.

Manuel de reference en francais: https://dev.mysql.com/doc/refman/5.7/en/

Installer

Installer la base MySQL? (c'est souvent fait automatiquement, mais on peut le refaire si nécessaire) :

 prompt#mysql_install_db --user=mysql

Implicitement, il y a création de 2 comptes root et de 2 comptes anonymes qui peuvent utiliser la base test.

Ensuite mettre en place un mot de passe root avec une des deux commandes ci-dessous :

 prompt#/usr/bin/mysqladmin -u root password 'new-password'
 prompt#/usr/bin/mysqladmin -u root -h zig.cetu.prv password 'new-password'

Exe: grant privileges to cmic sur toute la base jardin de ce serveur :

 mysql>grant all privileges on jardin.* to cmic@localhost identified by '<motdepasse>';
 mysql>flush privileges;

Réference

 mysql>show databases
 mysql>use database;
 mysql>select version();
 mysql>show current_date;
 mysql>show tables;                   #==> table agents
 mysql>describe agents;               #structure de la table agents
 mysql>tee /tmp/abc.txt ;             #copie de la sortie
 mysql>source /home/moi/requete.sql; #exec. d'un requete

 prompt#mysqladmin version      #Verifier que le daemon MySqld? tourne et autre infos 
 prompt#mysqladmin variables    #Le contenu des variables 

Changer le mot de passe root

 mysqladmin -u root -p password 'azerty$1';
 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password$1;
 FLUSH PRIVILEGES;

Mot de passse root perdu ?

mot de passe perdu ou acces impossible sur la console avec le message suivant :

 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

 prompt#kill <pid de MySqld?>
 prompt#mysqld_safe --skip-grant-tables --skip-networking &
 prompt#mysql -uroot mysql 
 mysql>update user set password=PASSWORD('azerty$1') where user="root" and host='localhost'; 
 mysql>flush privileges;
 mysql>exit;
 prompt#mysqladmin shutdown 
 prompt#/etc/init.d/mysql start

On peut alors se logger root avec le mot de passe azerty$1.

Dans le cas de MySQL? version 8 dans une jail FreeBSD?, ajouter "skip-grant-tables" dans la section [mysqld] de /usr/local/etc/mysql/my.cnf. cf https://stackoverflow.com/questions/41645309/mysql-error-access-denied-for-user-rootlocalhost

Autoriser l'utilisateur <user> de tous les clients à accéder à MySQL?.

A travers le port 3306. Dangereux. Se servir de la ligne ci-dessous en restreignant à 1 user sur 1 host particulier.

 mysql>select Host, User from mysql.user ;
 mysql>grant all privileges on *.* to '<user>'@'%' identified by '<motdepasse>' with grant option;

Autoriser l'utilisateur grigri a accéder la ligne de commande en local

suite à l'erreur :

 root@zombie:/tmp# mysql --user=grigri --password=gris ma_base
 ERROR 1045 (28000): Access denied for user 'grigri'@'localhost' (using password: YES)

 prompt#mysql -u root -p
 ...
 mysql>use mysql ; 
 mysql>set password for 'grigri'@'localhost' = PASSWORD('gris') ;

Crer un utilisateur

.. puis changer son mot de passe et voir la table mysql.user:

 CREATE USER 'cmic1'@'localhost' IDENTIFIED BY 'Password$1';      #cmic1 ne pourra se connecter que sur le serveur local
 CREATE USER 'cmic2'@'%'        IDENTIFIED BY 'Password$$2';      #cmic2 pourra se connecter sauf sur le le serveur local
 GRANT SELECT, INSERT, UPDATE ON database-name.* TO 'cmic2'@'%';  #grants for cmic2
 FLUSH PRIVILEGES; 

Changer son mot de passe, 3 manières:

 ALTER USER 'testuser'@'localhost' IDENTIFIED BY 'new-password';
 SET PASSWORD for 'testuser'@'localhost' = 'new-password';
 UPDATE user SET authentication_string = PASSWORD('new-password') WHERE user = 'testuser' AND host = 'localhost';
 SET PASSWORD for 'testuser'@'localhost' = 'new-password';
 FLUSH PRIVILEGES; 

Voir la table user (et notamment l'algorhytme de chiffrement par defaut qui est passé dans la version 8 de 'mysql_native_password' à 'caching_sha2_password')

 SELECT user, authentication_string, plugin, host FROMmysql.user;

-- Cmic -- Cmic