web-dev-qa-db-fra.com

Autoriser l'utilisateur root Linux mysql root sans mot de passe

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 ?

31
user1066991

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.

55
user9517

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/

25
chaintng

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.

7
Brian Deterling

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;
...
0
jris198944