Je suis un ingénieur électricien qui joue principalement avec les systèmes d'alimentation au lieu de la programmation. Récemment, j'ai suivi un manuel pour installer une suite logicielle sur Ubuntu. Je n'en ai aucune connaissance mySQL
, en fait. J'ai effectué les installations suivantes sur mon Ubuntu.
sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp
Alors je fais
me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"
J'ai fini avec le message d'erreur suivant.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Comment puis-je résoudre ce problème et continuer?
Réponses:
Remarque: pour MySQL 5.7+, veuillez consulter la réponse de @Lahiru à cette question. Cela contient des informations plus récentes.
Pour MySQL <5.7:
Le mot de passe root par défaut est vide (c'est-à-dire une chaîne vide) non
root
. Vous pouvez donc simplement vous connecter en tant que:Vous devez évidemment changer votre mot de passe root après l'installation
Dans la plupart des cas, vous devez également configurer des comptes d'utilisateurs individuels avant de travailler également de manière approfondie avec la base de données.
la source
-p
indicateur spécifie le mot de passe, donc après avoir changé votre mot de passe root, vous aimeriezmysql -u root -p[newpassword]
. Le< [filename]
utilise l'entrée std pour exécuter un fichier SQL au chemin indiqué via les informations d'identification utilisateur que vous fournissez.mysqladmin -u root password abc1234
, mais j'ai réussimysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'
. Merci beaucoup!J'ai pu résoudre ce problème en exécutant cette instruction
Ce qui changera le mot de passe root.
la source
dpkg --get-selections | grep sql
pour obtenir votre versionyum list installed
ajouter| grep sql
pour filtrer uniquement les packages SQL.sudo: dpkg-reconfigure: command not found
. Toute suggestion?Vous devez réinitialiser le mot de passe! étapes pour mac osx (testé et fonctionnel) et ubuntu
Arrêtez MySQL en utilisant
sudo service mysql stop
ou
$ sudo /usr/local/mysql/support-files/mysql.server stop
Démarrez-le en mode sans échec:
$ sudo mysqld_safe --skip-grant-tables --skip-networking
(au-dessus de la ligne se trouve la commande entière)
Ce sera une commande en cours jusqu'à ce que le processus soit terminé, alors ouvrez une autre fenêtre shell / terminal, connectez-vous sans mot de passe:
$ mysql -u root mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
Selon le commentaire de @ IberoMedia, pour les versions plus récentes de MySQL, le champ est appelé
authentication_string
:mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';
Démarrez MySQL en utilisant:
sudo service mysql start
ou
sudo /usr/local/mysql/support-files/mysql.server start
votre nouveau mot de passe est «mot de passe».
REMARQUE: pour la version de mysql> 5.7, essayez ceci:
update mysql.user set authentication_string='password' where user='root';
la source
--skip-grant-tables
en conjonction avec--skip-networking
pour empêcher les clients distants de se connecter. oh, et aussi, celui-ci n'a pas fonctionné pour moi. C'est pourquoi je suis venu ici: p--
Ce que je suggérerais est d'utiliserdpkg --get-selections | grep mysql-server-
pour obtenir votre version exacte de MySQL, puis optez pour sudo dpkg-reconfigure mysql-server-5.x (remplacez 5 .x avec la version de votre serveur, btw). J'ai commenté la réponse de @ Divz avec cette précision, mais elle est masquée par les nombreux commentaires "merci".Je sais que c'est une vieille question mais je pense que cela pourrait aider quelqu'un. J'ai récemment été confronté au même problème mais dans mon cas, je me souviens très bien de mon mot de passe mais il a continué à me donner la même erreur. J'ai essayé tellement de solutions mais toujours aucune n'a aidé alors j'ai essayé ceci
après quoi il vous demande un mot de passe comme celui-ci
puis j'ai tapé le mot de passe que j'ai utilisé. C'est tout
la source
Au démarrage initial du serveur, les événements suivants se produisent, étant donné que le répertoire de données du serveur est vide:
Pour le révéler, utilisez la commande suivante:
Modifiez le mot de passe root dès que possible en vous connectant avec le mot de passe temporaire généré et définissez un mot de passe personnalisé pour le compte de superutilisateur:
shell> mysql -u root -p #Login to root user with some password mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!';
la source
sudo grep 'temporary password' /var/log/mysqld.log
je reçois/var/log/mysqld.log: No such file or directory
sudo grep 'temporary password' /var/log/mysql/error.log
. La solution @Lahiru a fonctionné pour moi.shell> sudo grep 'password' /var/log/mysql/error.log
. Cela a fonctionné pour moi, mais j'obtiens: root @ localhost est créé avec un mot de passe vide! Veuillez envisager de désactiver l'option --initialize-insecure. Ma version mysql est: Ver 8.0.13 pour Linux sur x86_64 (MySQL Community Server - GPL)si le problème persiste, essayez de forcer le changement de passe
/etc/init.d/mysql stop mysqld_safe --skip-grant-tables & mysql -u root
Configurer le nouveau mot de passe de l'utilisateur root MySQL
use mysql; update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root'; flush privileges; quit;
Arrêtez MySQL Server:
/etc/init.d/mysql stop
Démarrez le serveur MySQL et testez-le:
la source
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
sévissait également sur mon serveur. 'mysqld_safe' a également échoué jusqu'à ce que je fasse un 'killall mysqld' APRÈS votre étape 1.--skip-grant-tables
en conjonction avec--skip-networking
pour empêcher les clients distants de se connecter. oh, et aussi, celui-ci n'a pas fonctionné pour moi. C'est pourquoi je suis venu ici: pCela se produit lorsque votre mot de passe est manquant.
Étapes pour changer le mot de passe lorsque vous avez oublié:
Arrêtez MySQL Server (sous Linux):
sudo systemctl stop mysql
Démarrez la base de données sans charger les tables d'octroi ni activer la mise en réseau:
sudo mysqld_safe --skip-grant-tables --skip-networking &
L'esperluette à la fin de cette commande fera que ce processus s'exécute en
arrière - plan afin que vous puissiez continuer à utiliser votre terminal et exécuter #mysql -u root, il ne vous demandera pas de mot de passe.
Si vous obtenez une erreur comme ci-dessous:
2018-02-12T08: 57: 39.826071Z mysqld_safe Le répertoire '/ var / run / mysqld' pour le
fichier socket UNIX n'existe pas. mysql -u root ERROR 2002 (HY000): Impossible de se connecter au serveur MySQL local via le socket
'/var/run/mysqld/mysqld.sock' (2) [1] + Quitter 1
Créez un répertoire de services MySQL.
Donnez à l'utilisateur MySQL l'autorisation d'écrire dans le répertoire de service.
Exécutez la même commande à l'étape 2 pour exécuter mysql en arrière-plan.
Exécutez mysql -u root, vous obtiendrez la console mysql sans entrer de mot de passe.
Exécutez ces commandes
FLUSH PRIVILEGES;
Pour MySQL 5.7.6 et plus récent
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
Pour MySQL 5.7.5 et versions antérieures
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
Si la commande ALTER USER ne fonctionne pas, utilisez:
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
Maintenant quitte
Pour arrêter l'instance démarrée manuellement
sudo kill `cat /var/run/mysqld/mysqld.pid`
Redémarrez mysql
sudo systemctl start mysql
la source
sudo kill `sudo cat /var/run/mysqld/mysqld.pid`
mysql -u root -p
travailler avec mon nouveau mot de passeJ'utilise Ubuntu-16.04: mysql installé - 5.7. J'ai eu le même problème: connexion refusée pour l'utilisateur root.
J'ai essayé les étapes ci-dessous:
dpkg --get-selections | grep mysql
(pour obtenir la version de mysql).dpkg-reconfigure mysql-server-5.7
mysql -u root -p
Sans -p, cela ne vous invite pas à demander le mot de passe. Une fois que vous y êtes, vous pouvez créer un utilisateur avec un mot de passe en suivant les étapes:
CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password'; GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;
Quittez la racine et connectez-vous à partir de celui que vous avez indiqué ci-dessus.
Pour une raison quelconque, le simple fait de taper mysql ne fonctionne pas. DU TOUT. Je suggère d'en faire une habitude à utiliser
mysql -u <name> -p
.la source
Je suis tombé sur ce problème très ennuyeux et j'ai trouvé de nombreuses réponses qui n'ont pas fonctionné. La meilleure solution que j'ai trouvée était de désinstaller complètement mysql et de le réinstaller. Lors de la réinstallation, vous avez défini un mot de passe root et cela a résolu le problème.
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5 sudo rm -rf /etc/mysql /var/lib/mysql sudo apt-get autoremove sudo apt-get autoclean
J'ai trouvé ce code ailleurs, donc je ne m'en félicite pas. Mais ça marche. Pour installer mysql après l'avoir désinstallé, je pense que Digital Ocean a un bon tutoriel à ce sujet. Vérifiez mon essentiel pour cela.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096
la source
Si aucune des autres réponses ne fonctionne pour vous et que vous avez reçu cette erreur:
mysqld_safe Logging to '/var/log/mysql/error.log'. mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists. [1]+ Exit 1 sudo mysqld_safe --skip-grant-tables
Suivez les commandes ci-dessous étape par étape jusqu'à ce que vous réinitialisiez votre mot de passe:
# Stop Your Server First sudo service mysql stop # Make MySQL service directory. sudo mkdir /var/run/mysqld # Give MySQL permission to work with the created directory sudo chown mysql: /var/run/mysqld # Start MySQL, without permission and network checking sudo mysqld_safe --skip-grant-tables --skip-networking & # Log in to your server without any password. mysql -u root mysql # Update the password for the root user: UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost'; #if you omit (AND Host='localhost') section, it updates the root pass regardless of its host FLUSH PRIVILEGES; EXIT; #kill mysqld_safe process sudo service mysql restart #Now you can use your new password to login to your Server mysql -u root -p #take note for remote access you should create a remote user and then grant all privileges to that remote user
la source
entrez simplement dans le terminal
mysql -u racine -p. qu'il vous demandera le mot de passe
la source
$ sudo cat /etc/mysql/debian.cnf
Cela montrera les détails comme-
# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock
Ci-dessus, nous pouvons voir le mot de passe que nous allons utiliser
(GUx0RblkD3sPhHL5)
dans l'invite-mysql -u debian-sys-maint -p Enter password:
maintenant fournir le mot de passe ( GUx0RblkD3sPhHL5 ).
Maintenant à
exit
partir de MySQL et connectez-vous à nouveau en tant que-mysql -u root -p Enter password:
Maintenant, fournissez un nouveau mot de passe. C'est tout, nous avons un nouveau mot de passe pour d'autres utilisations.
Cela a fonctionné pour moi, j'espère vous aider aussi!
la source
Veuillez lire la documentation officielle: Mysql: Comment réinitialiser le mot de passe root
Si vous avez accès au terminal:
MySQL 5.7.6 et versions ultérieures:
$ mysql mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
MySQL 5.7.5 et versions antérieures:
$ mysql mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
la source
> mysql -u {your_username}
J'utilise mysql-5.7.12-osx10.11-x86_64.dmg sous Mac OSX
Le processus d'installation configure automatiquement un mot de passe temporaire pour l'utilisateur root. Vous devez enregistrer le mot de passe. Le mot de passe ne peut pas être récupéré.
Suivez les instructions
cd /usr/local/mysql/bin/
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');
si vous souhaitez définir votre mot de passe: "root" alors la commande serait,SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
exit
./mysql -u root -p
Pour plus de commodité, vous devez ajouter
"/usr/local/mysql/bin"
à votre PATHMaintenant, de n'importe où, vous pouvez taper
./mysql -u root -p
puis taper le mot de passe et vous obtiendrez l'invite mysql>.J'espère que cela aide.
la source
La réponse peut sembler idiote, mais après avoir perdu des heures, c'est comme ça que je l'ai fait fonctionner
J'ai le message d'erreur
Même si je tapais le bon mot de passe (le mot de passe temporaire que vous obtenez lors de la première installation de mysql)
J'ai bien compris lorsque j'ai tapé le mot de passe lorsque l'invite de mot de passe clignotait
la source
si le problème persiste, essayez de forcer le changement de passe
Arrêtez MySQL Server (sous Linux):
/etc/init.d/mysql stop
Arrêtez MySQL Server (sur Mac OS X):
mysql.server stop
Démarrez le démon mysqld_safe avec --skip-grant-tables
mysqld_safe --skip-grant-tables & mysql -u root
Configurer le nouveau mot de passe de l'utilisateur root MySQL
use mysql; update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root'; flush privileges; quit;
Arrêtez MySQL Server (sous Linux):
/etc/init.d/mysql stop
Arrêtez MySQL Server (sur Mac OS X):
mysql.server stop
Démarrez le service serveur MySQL et testez la connexion par root:
la source
Si vous avez MySQL dans le cadre d'une image Docker (par exemple sur le port 6606) et une installation Ubuntu (sur le port 3306), la spécification du port ne suffit pas:
lancera:
comme il essaie de se connecter à localhost par défaut, la spécification de votre adresse IP locale résout le problème:
la source
Par défaut, le mot de passe sera nul, vous devez donc changer le mot de passe en suivant les étapes ci-dessous.
se connecter à mysql
root # mysql
Utilisez mysql
mysql> update user set password = PASSWORD ('root') where User = 'root'; Enfin, rechargez les privilèges:
mysql> privilèges de vidage; mysql> quitter
la source
Juste une ligne et cela a résolu mon problème.
la source
Dans Ubuntu 16.04 (MySQL version 5.7.13), j'ai pu résoudre le problème avec les étapes ci-dessous:
Suivez les instructions de la section B.5.3.2.2 Réinitialisation du mot de passe racine: Unix et Unix-like Systems Manuel de référence MySQL 5.7
Quand j'ai essayé #sudo mysqld_safe --init-file = / home / me / mysql-init et cela a échoué. L'erreur était dans /var/log/mysql/error.log
2016-08-10T11: 41: 20.421946Z 0 [Note] L'exécution du fichier_init '/ home / me / mysql / mysql-init' a démarré. 2016-08-10T11: 41: 20.422070Z 0 [ERREUR] / usr / sbin / mysqld: Fichier '/ home / me / mysql / mysql-init' introuvable (Errcode: 13 - Autorisation refusée) 2016-08-10T11: 41: 20.422096Z 0 [ERROR] Annulation
La permission de fichier de mysql-init n'était pas le problème, besoin de modifier l'autorisation apparmor
Édité par #sudo vi /etc/apparmor.d/usr.sbin.mysqld
.... /var/log/mysql/ r, /var/log/mysql/** rw, # Allow user init file /home/pranab/mysql/* r, # Site-specific additions and overrides. See local/README for details. #include <local/usr.sbin.mysqld> }
Faire #sudo /etc/init.d/apparmor recharger
Redémarrez mysqld_safe, essayez l'étape 2 ci-dessus. Vérifiez /var/log/mysql/error.log assurez-vous qu'il n'y a pas d'erreur et que mysqld est démarré avec succès
Exécutez #mysql -u root -p
Entrer le mot de passe:
Entrez le mot de passe que vous avez spécifié dans mysql-init. Vous devriez pouvoir vous connecter en tant que root maintenant.
Arrêtez mysqld_safe par #sudo mysqladmin -u root -p shutdown
Démarrez mysqld de manière normale en #sudo systemctl start mysql
la source
Dans les versions récentes de MySQL, il n'y a pas
password
demysql.user
table.Vous devez donc exécuter
ALTER USER
. Mettez cette commande d'une ligne dans le fichier.ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
Et exécutez-le en tant que fichier init (en tant qu'utilisateur root ou mysql)
mysqld_safe --init-file=/home/me/mysql-init &
Le serveur MySQL doit être arrêté pour démarrer
mysqld_safe
.En outre, il peut y avoir un problème avec les autorisations apparmor pour charger ce fichier init. En savoir plus ici https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql
la source
Si vous n'avez pas encore défini de mot de passe, exécutez
mysql -uroot
, cela fonctionne pour moi.la source
Sur Mac, si vous rencontrez un problème pour vous connecter avec le premier mot de passe que vous avez reçu lors de l'installation, vous pouvez peut-être simplement tuer le processus mysql, puis essayer.
Donc: 1- exécutez la commande suivante pour trouver le PID de mysql:
2- Tuez le processus:
kill -15 [process id]
Ensuite, vous pouvez vous connecter avec le mot de passe initial en utilisant cette commande:
Ce qui vous demande de saisir votre mot de passe. Entrez simplement le mot de passe initial.
la source
J'ai eu un problème similaire:
Mais dans mon cas, la cause était vraiment idiote. J'ai copié la commande à partir d'un document Word, et le problème était qu'un trait d'union n'avait pas le code ASCII 2D mais l'Unicode E28093.
Fausse route:
La bonne façon:
Les deux se ressemblent mais ne sont pas identiques (essayez-le, copiez et collez en remplaçant votre mot de passe).
Face à ce type d'erreur, la recommandation est d'essayer de taper la commande au lieu de copier-coller.
la source
J'ai essayé avec la bonne réponse de @Lahiru, mais je n'ai pas fonctionné avec le serveur MySQL version 8.0.16 (Communauté) sur macOS Mojave.
En suivant les instructions de Sameer Choudhary ci-dessus et avec quelques ajustements, j'ai pu changer le mot de passe root et activer l'accès root à partir de localhost.
Mise à jour: Tous ces éléments ne sont pas nécessaires, si vous installez sur Mac OS en utilisant homebrew: "brew install mysql"
la source
J'ai eu ce problème avec Ubuntu 18.04 LTS et Mysql Server version 5.7.27-0ubuntu0.18.04.1 (Ubuntu).
Ma solution était (exécutée en tant que root avec
sudo -i
)mysql <<-EOSQL use mysql; update user set plugin="mysql_native_password" where User='root'; FLUSH PRIVILEGES ; EOSQL mysqladmin -u root password new_pw
la source
J'ai aussi rencontré le même problème, ce que j'ai fait était
1) Ouvrez votre cmd
2) Accédez à C: \ Program Files \ MySQL \ MySQL Server 8.0 \ bin> (où MySQL Server 8.0 peut être différent selon le serveur que vous avez installé)
3) Ensuite, mettez la commande suivante mysql -u root -p
4) Je vais vous demander le mot de passe ... appuyez simplement sur Entrée, car parfois le mot de passe que vous avez entré lors de l'installation est changé en vide.
maintenant vous pouvez simplement accéder à la base de données
Cette solution a fonctionné pour moi sur la plate-forme Windows
la source
Alors que la réponse principale (w / mysqladmin) fonctionnait sur mac 10.15, elle ne fonctionnait pas sur ubuntu. Ensuite, j'ai essayé de nombreuses autres options, y compris un démarrage sécurisé pour mysql, aucune n'a fonctionné. Ajoutant ainsi une nouvelle réponse.
Au moins pour la version, les
5.7.28-0ubuntu0.18.04.4
réponses manquaientIDENTIFIED WITH mysql_native_password
. 5.7.28 est la valeur par défaut sur le LTS actuel et devrait donc être la valeur par défaut pour la plupart des nouveaux systèmes (jusqu'à la sortie de 20.04 LTS).Trouvé: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server et maintenant appliqué
qui fonctionne.
la source
L'erreur à laquelle j'ai été confrontée était
c'était un problème avec le port en cours d'exécution.
Par défaut, mysql est en cours d'exécution
port 3306
.Vous pouvez vérifier cela en exécutant
dans un système 32 bits:
sudo /opt/lampp/manager-linux.run
dans un système 64 bits:
sudo /opt/lampp/manager-linux-x64.run
et cliquez sur le
configure
boutonDans mon cas, le port fonctionnait sur 3307 et la commande que j'ai utilisée était
la source
Dans mon cas, j'essayais de passer un coquillecommande à un conteneur. Dans ce cas, seul le premier mot a été interprété. Assurez-vous que vous n'êtes pas en cours d'exécution:
par opposition à:
essayez peut-être de citer:
la source