Sur cPanel lorsque je suis connecté en tant que root et que je tape "mysql" sans nom d'hôte et mot de passe, cela me donne un accès direct à l'utilisateur root mysql.
Je voudrais le faire pour un de mes serveurs non cpanel où l'utilisateur root linux obtient une connexion sans mot de passe à l'utilisateur root mysql de la même manière que sur cPanel.
Est-ce possible ?
La façon la plus simple de procéder consiste à utiliser une section client du fichier ~/.my.cnf et à y ajouter les informations d'identification.
[client]
user=root
password=somepassword
...
c'est une bonne idée de rendre ce fichier lisible uniquement par root aussi.
Pour mysql 5.7+, si vous définissez un mot de passe vide pour la configuration initiale, mysql utilisera automatiquement auth_socket
comme stratégie. Une tentative de mise à jour du mot de passe sans modifier la stratégie n'aura aucun résultat. Vous pouvez toujours vous connecter sans mot de passe si votre utilisateur est root
.
Solution Exécutez la commande suivante pour changer la stratégie d'authentification et définir le mot de passe
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''
référence: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/
Depuis MySQL 5.6.6, vous pouvez utiliser mysql_config_editor pour créer un fichier crypté qui vous connectera automatiquement:
mysql_config_editor set --login-path=client --Host=localhost --user=root --password
Saisissez ensuite le mot de passe lorsque vous y êtes invité.
Remarque: si votre mot de passe contient '#' et éventuellement d'autres caractères, utilisez des guillemets simples lors de la saisie du mot de passe.
Faire un fichier contenant uniquement le mot de passe root mysql et seul root peut lire.
# ls -l /root/.mysqlpw
-rw------- 1 root root 7 2013-08-19 13:24 /root/.mysqlpw
Vous pouvez importer une base de données avec
# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase < databasedump.sql
ou connectez-vous à votre base de données et lancez des commandes mysql
# mysql -u root -p`cat /root/.mysqlpw ` yourdatabase
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20460
Server version: 5.1.63-0ubuntu0.10.04.1 (Ubuntu)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| yourdatabase |
+--------------------+
3 rows in set (0.00 sec)
mysql> show tables;
...