Aujourd'hui, je me suis connecté en tant que root dans Ubuntu 14.04.1 LTS ll
et puis apt-get install mariadb-server
(sans sudo mais en tant que root).
Avec mySQL -h localhost -u root --password=<PW>
j'ai
Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe: OUI)
Avec mySQL -u root -p
je me suis connecté à la base de données et j'ai fait
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<PW>';
FLUSH ALL PRIVILEGES;
Mais cela n'a pas aidé. Avez-vous une idée? Je n'ai pas trouvé de réponse aux questions similaires.
Réponses:
TL; DR: Pour accéder aux versions plus récentes de mysql / mariadb après en tant qu'utilisateur root, après une nouvelle installation, vous devez être dans un shell root (c'est
sudo mysql -u root
-à- dire , oumysql -u root
dans un shell démarré parsu -
ou ensudo -i
premier)Ayant juste fait la même mise à jour, sur Ubuntu, j'ai eu le même problème.
Ce qui était étrange était que
Accepterait mon mot de passe et me permettrait de le définir, mais je ne pouvais pas me connecter
root
via lemysql
clientJe devais commencer mariadb avec
pour accéder en tant que root, tandis que tous les autres utilisateurs peuvent toujours accéder correctement.
En regardant le
mysql.user
tableau que j'ai remarqué pour root, laplugin
colonne est définie surunix_socket
alors que tous les autres utilisateurs, elle est définie sur «mysql_native_password». Un rapide coup d'œil sur cette page: https://mariadb.com/kb/en/mariadb/unix_socket-authentication-plugin/ explique que le socket Unix permet de se connecter en faisant correspondreuid
le processus exécutant le client avec celui de l'utilisateur dans lemysql.user
table. En d'autres termes, pour accéder à mariadb,root
vous devez être connecté en tant que root.Bien sûr, en redémarrant mon démon mariadb avec l'authentification requise, je peux me connecter en tant que root avec
ou
Après avoir fait cela, j'ai réfléchi à la façon d'accéder sans avoir à faire le sudo, qui est juste une question d'exécuter ces requêtes mysql
(en remplaçant
<password>
par votre mot de passe root mysql souhaité). Ce mot de passe activé se connecte pour l'utilisateur root.Vous pouvez également exécuter la requête mysql:
Va changer le compte root pour utiliser la connexion par mot de passe sans changer le mot de passe, mais cela peut vous laisser avec une installation mysql / mariadb sans mot de passe root.
Après l'un ou l'autre de ces derniers, vous devez redémarrer mysql / mariadb:
Et voila j'ai eu accès depuis mon compte personnel via
mysql -u root -p
VEUILLEZ NOTER QUE FAIRE CELA RÉDUIRE LA SÉCURITÉ Les développeurs de MariaDB ont probablement choisi de faire fonctionner l'accès root comme celui-ci pour une bonne raison.
En y
sudo mysql -u root -p
réfléchissant, je suis assez heureux de devoir le faire, alors je reviens à cela, mais j'ai pensé publier ma solution car je ne pouvais pas en trouver ailleurs.la source
GRANT ALL PRIVILEGES on *.* to 'root'@'localhost' IDENTIFIED BY '<password>';
commande deux fois avant de vider les privilèges?sudo service mysql restart
Dans Ubuntu 16.04 LTS propre, la connexion root MariaDB pour localhost est passée du style de mot de passe au style de connexion sudo ...
alors fais juste
puisque nous voulons nous connecter avec mot de passe, créez un autre utilisateur 'utilisateur'
dans la console MariaDB ... (vous obtenez dans la console MariaDB avec 'sudo mysql -u root')
puis dans l'invite du shell bash,
et vous pouvez vous connecter avec 'utilisateur' avec 'votre mot de passe' sur localhost
la source
Essayez la commande
appuyez sur Entrée et attribuez un nouveau mot de passe pour root dans mysql / mariadb .
Si vous obtenez une erreur comme
activer le service avec
maintenant si vous entrez à nouveau avec
si vous suivez le problème, entrez
sudo su
etmysql -u root -p
appliquez maintenant les autorisations à rootGRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '<password>';
cela a résolu mon problème dans MariaDB .
Bonne chance
la source
de la réponse acceptée par le superutilisateur :
la source
Je devais être connecté à Ubuntu en tant que root pour accéder à Mariadb en tant que root. Cela peut avoir quelque chose à voir avec ce "Harden ..." qu'il vous invite à faire lors de votre première installation. Alors:
et vous êtes dedans.
la source
La nouvelle commande pour vider les privilèges est:
FLUSH PRIVILEGES
L'ancienne commande
FLUSH ALL PRIVILEGES
ne fonctionne plus.Vous obtiendrez une erreur qui ressemble à ça:
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 :)
la source
Exécutez mysql_upgrade.
Regarde ça
dit
Vérifiez que la table existe _mysql.proxies_priv_.
Accès refusé pour l'utilisateur «root» @ «localhost» lors de la tentative d'octroi de privilèges. Comment accorder des privilèges?
la source
Un système comme Ubuntu préfère utiliser le plugin auth_socket . Il essaiera de s'authentifier en comparant votre nom d'utilisateur dans la base de données et le processus qui fait la requête mysql; il est décrit ici
Au lieu de cela, vous voudrez peut-être revenir avec le mysql_native_password , qui nécessitera un utilisateur / mot de passe pour s'authentifier.
À propos de la méthode pour y parvenir, je recommande plutôt ceci .
la source