mysql -u <user>
mysql -u <user> -p
À partir d'Ubuntu 18.04 l'utilisateur root de MySQL est authentifié par son compte système (plugin auth_socket) et non plus par un mot de passe (plugin mysql_native_password). Il lui suffit donc de taper :
sudo mysql
En cas de besoin d'un accès global depuis un même compte, la solution conseillée est de créer un nouvel utilisateur et de lui attribuer tous les privilèges :
CREATE USER 'nom_utilisateur_choisi'@'localhost' IDENTIFIED BY 'mot_de_passe_solide'; GRANT ALL ON *.* TO 'nom_utilisateur_choisi'@'localhost' WITH GRANT OPTION; FLUSH PRIVILEGES;
mysql> SELECT USER FROM mysql.user;
mysql> CREATE USER "nom_utilisateur"@"localhost"; mysql> SET password FOR "nom_utilisateur"@"localhost" = password('mot_de_passe');
mysql> CREATE USER "user"@"localhost" IDENTIFIED BY 'password';
mysql> DROP USER FROM "nom_utilisateur"@"localhost";
mysql> DROP USER "user"@"localhost";
mysql> SHOW grants FOR "user"@"localhost";
mysql> GRANT ALL ON nom_base.* TO "nom_utilisateur"@"localhost";
mysql> REVOKE ALL privileges ON nom_base.* FROM "nom_utilisateur"@"localhost";
mysql> FLUSH privileges;
SHOW DATABASES;
CONNECT <database_name>;
SHOW TABLES;
DESCRIBE <table_name>; SHOW COLUMNS FROM <table_name>; SHOW CREATE TABLE <table_name>; # Affiche les champs, les clé ainsi que les contraintes de la TABLE
SELECT * FROM matable WHERE id='truc'; SELECT * FROM matable WHERE champ LIKE '%truc%'; SELECT * FROM matable LIMIT 10; # limite l'affichage au 10 premiers enregistrements trouvés
SELECT * FROM matable WHERE id='truc' \G
Sélection depuis une table des éléments ayant un champ JSON toto non NULL dans le paramètre extraParameters, et dont l'identifiant ne commence par truc, et dont la date de modification est postérieur ou égale au 1er janvier 2020 ;
SELECT identifier, JSON_EXTRACT(extraParameters, '$.toto'),LastModificationDate FROM TABLE WHERE JSON_EXTRACT(extraParameters, '$.toto') IS NOT NULL AND identifier NOT LIKE 'truc%' AND LastModificationDate>='2000-01-01';
SELECT identifier, extraParameters INTO OUTFILE '/tmp/toto.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM TABLE WHERE identifier LIKE '%truc%';
UPDATE <base>.<table> SET param1='val1',param2='val2' WHERE param='truc';
mysql -u user -ppassword -D database -e "commande"
mysql -N -s -u user -ppassword -D database -e "commande"
mysql -u user -ppassword -D database << eof commandes eof
mysql -u user -ppassword < fichier.sql
mysqldump -u root -p maBase > maBase_backup.sql
mariadb-dump --user=<user> -p<passwd> --lock-tables --databases <DB> > fichier.sql
mysql -u root -p maBase < maBase_backup.sql
mysql> DROP DATABASE <database_name>;