Aujourd’hui, j’ai ouvert une session en tant qu’utilisateur root sur Ubuntu 14.04.1 LTS ll
puis apt-get install mariadb-server
(sans sudo mais en tant que root).
Avec mySQL -h localhost -u root --password=
Accès refusé pour l’utilisateur ‘root’ @ ‘localhost’ (en utilisant le mot de passe: OUI)
- Requête MySQL pour obtenir “l’intersection” de nombreuses requêtes avec des limites
- Définition PRIMARY KEY dans l’instruction MySQL CREATE TABLE
- Implémentation de la distance Levenshtein pour la recherche mysql / fuzzy?
- Comment importer un fichier XML dans la table de firebase database MySQL en utilisant XML_LOAD (); fonction
- Erreur: sélectionnez la commande refusée à l’utilisateur ” @ ” pour la table ”
Avec mySQL -u root -p
je me suis connecté à la firebase database et
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY ''; FLUSH ALL PRIVILEGES;
Mais cela n’a pas aidé. Avez-vous une idée? Je n’ai pas trouvé la réponse aux questions similaires.
TL; DR: Pour accéder aux nouvelles versions de mysql / mariadb en tant qu’utilisateur root, après une nouvelle installation, vous devez être dans un shell racine (par exemple, sudo mysql -u root
ou mysql -u root
dans un shell démarré par su -
ou sudo -i
premier)
Ayant juste fait la même mise à jour, sur Ubuntu, j’avais le même problème.
Ce qui était étrange était que
sudo /usr/bin/mysql_secure_installation
Accepterait mon mot de passe et me permettrait de le configurer, mais je ne pouvais pas me connecter en tant que root
via le client mysql
Je devais commencer mariadb avec
sudo mysqld_safe --skip-grant-tables
pour avoir access en tant que root, alors que tous les autres utilisateurs peuvent toujours y accéder correctement.
En regardant la table mysql.user
, j’ai remarqué que pour la racine, la colonne du plugin
est définie sur unix_socket
alors que tous les autres utilisateurs sont définis sur «mysql_native_password». Un rapide coup d’œil à cette page: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ explique que le socket Unix permet de se connecter en faisant correspondre uid
du processus exécutant le client avec celui de l’utilisateur dans la table mysql.user
. En d’autres termes, pour accéder à mariadb en tant que root
vous devez être connecté en tant que root.
Bien sûr, redémarrer mon démon mariadb avec une authentification requirejse Je peux me connecter en tant que root avec
sudo mysql -u root -p
ou
sudo su - mysql -u root -p
Ayant fait cela, j’ai réfléchi à la façon d’accéder sans avoir à faire le sudo, ce qui est juste une question de lancer ces requêtes mysql
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY ''; FLUSH PRIVILEGES;
ou
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket'; FLUSH PRIVILEGES;
Puis redémarrer mariadb:
sudo service mysql restart
Et voila j’ai eu access depuis mon compte personnel vi mysql -u root -p
VEUILLEZ NOTER QUE FAIRE CELA RÉDUIT LA SÉCURITÉ Les développeurs de MariaDB ont probablement opté pour un access root comme celui-ci pour une bonne raison.
En y repensant, je suis plutôt content d’avoir sudo mysql -u root -p
donc je reviens à cela, mais je pensais pouvoir poster ma solution car je n’en trouverais pas ailleurs.
Dans Ubuntu 16.04 LTS propre, la connexion racine MariaDB pour localhost est passée du style de mot de passe au style de connexion sudo …
alors, fais juste
sudo mysql -u root
puisque nous voulons nous connecter avec un mot de passe, créez un autre utilisateur ‘utilisateur’
dans la console MariaDB … (vous obtenez dans la console MariaDB avec ‘sudo mysql -u root’)
use mysql CREATE USER 'user'@'localhost' IDENTIFIED BY 'yourpassword'; \q
puis à l’invite du shell bash,
mysql-workbench
et vous pouvez vous connecter avec ‘utilisateur’ avec ‘votre mot de passe’ sur localhost
J’ai déjà eu un problème similaire. Dans mon cas, cela s’est produit parce que j’ai en quelque sorte corrompu ma table utilisateur du serveur MySQL.
Cet article m’a aidé: mysql-comment-réparer-Access-denied-for-user-‘root ‘@’ localhost ‘
Fondamentalement, vous devez réinitialiser l’utilisateur root.
Je devais être connecté à Ubuntu en tant que root pour pouvoir accéder à Mariadb en tant que root. Cela peut avoir quelque chose à voir avec ce “Harden …” qu’il vous invite à faire lors de la première installation. Alors:
$ sudo su [sudo] password for user: yourubunturootpassword # mysql -r root -p Enter password: yourmariadbrootpassword
et vous êtes dedans
La nouvelle commande pour vider les privilèges est la suivante:
FLUSH PRIVILEGES
L’ancienne commande FLUSH ALL PRIVILEGES
ne fonctionne plus.
Vous obtiendrez une erreur qui ressemble à ceci:
MariaDB [(none)]> FLUSH ALL PRIVILEGES; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ALL PRIVILEGES' at line 1
J’espère que cela t’aides 🙂
Essayer la commande
sudo mysql_secure_installation
appuyez sur Entrée et atsortingbuez un nouveau mot de passe pour root dans mysql / mariadb .
Si vous obtenez une erreur comme
ERROR 2002 (HY000): impossible de se connecter au serveur MySQL local via le socket ‘/var/run/mysqld/mysqld.sock’
activer le service avec
service mysql start
maintenant si vous entrez à nouveau avec
mysql -u root -p
si vous suivez le problème, entrez avec sudo su
et mysql -u root -p
maintenant appliquer les permissions à root
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '
ceci a corrigé mon problème dans MariaDB .
Bonne chance
Il suffit d’utiliser sudo pour le faire fonctionner
sudo mysql_secure_installation