J'ai verrouillé mon utilisateur root à partir de notre base de données. Je dois obtenir tous les privilèges à l'utilisateur root. J'ai mon mot de passe et je peux me connecter à MySQL. Mais l'utilisateur root n'a pas tous les privilèges.
J'ai eu le même problème que le titre de cette question, alors incase quiconque googles sur cette question et veut démarrer MySql en mode 'sauts de subventions' sous Windows, voici ce que j'ai fait.
Arrêtez le service MySQL avec les outils de l’administrateur, Services.
Modifier le fichier de configuration my.ini (en supposant les chemins par défaut)
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
ou pour la version MySQL> = 5.6
C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
Dans la section SERVER, sous [mysqld], ajoutez la ligne suivante:
skip-grant-tables
de sorte que vous avez
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
skip-grant-tables
Redémarrez le service et vous devriez pouvoir vous connecter à votre base de données sans mot de passe.
Comment reprendre le contrôle de l'utilisateur root dans MySQL.
DANGER: OPÉRATION À RISQUE
Editez le fichier my.cnf
avec.
Sudo vi /etc/my.cnf
Ajouter une ligne au bloc mysqld. *
skip-grant-tables
Sauvegarder et quitter.
Redémarrez le service MySQL.
service mysql restart
Vérifier l'état du service.
service mysql status
Connectez-vous à mysql.
mysql
Utilisation de la base de données principale.
use mysql;
Redéfinissez le mot de passe root de l'utilisateur.
UPDATE user SET `authentication_string` = PASSWORD('myNuevoPassword') WHERE `User` = 'root';
Editez le fichier my.cnf.
Sudo vi /etc/my.cnf
Effacer la ligne.
skip-grant-tables
Sauvegarder et quitter.
Redémarrez le service MySQL.
service mysqld restart
Vérifier l'état du service.
service mysql status
Connectez-vous à la base de données.
mysql -u root -p
Tapez le nouveau mot de passe lorsque vous y êtes invité.
Cette action est très dangereuse, elle permet à quiconque de se connecter à toutes les bases de données sans aucune restriction, sans utilisateur ni mot de passe. Il doit être utilisé avec précaution et doit être retourné rapidement pour éviter les risques.
Sur le système Linux, vous pouvez faire ce qui suit (devrait être similaire pour d’autres systèmes d’exploitation)
Vérifiez si le processus mysql est en cours d'exécution:
Sudo service mysql status
Si vous exécutez, arrêtez le processus: (Assurez-vous de fermer tous les outils mysql)
Sudo service mysql stop
Si vous avez un problème d’arrêt, suivez les instructions suivantes:
Recherche du processus: ps aux | grep mysqld
Tuez le processus: kill -9 process_id
Maintenant, démarrez mysql en mode sans échec avec skip grant
Sudo mysqld_safe --skip-grant-tables &
Si vous utilisez le serveur mysql 5.6 et que vous rencontrez des problèmes avec C:\Program Files\MySQL\MySQL Server 5.6\my.ini
:
Vous devriez aller à C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
.
Vous devriez ajouter skip-grant-tables
et vous n'avez pas besoin d'un mot de passe.
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
# server_type=3
[mysqld]
skip-grant-tables
Remarque: une fois que vous avez terminé votre travail sur skip-grant-tables
, vous devez restaurer votre fichier au format C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
.
Après avoir essayé beaucoup de choses, voici ce qui a fonctionné pour moi:
Sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
Nous utilisons donc d'abord Sudo pour connecter mysql en tant que root sans avoir besoin d'un mot de passe. Ensuite, nous mettons à jour le mot de passe de root.
Après cela, j'ai redémarré mysqld
:
Sudo service mysql restart
Et la newpassword
racine connectée!
Utilisez la commande suivante (notez le "d"): mysqld --skip-grant-tables
si vous utilisez Apple MacBook OSX
, alors:
my.cnf
. (Pour moi, il a été placé @ /Applications/XAMPP/xamppfiles/etc
. Vous pouvez simplement rechercher si vous ne pouvez pas le trouver).my.cnf
dans n’importe quel éditeur de texte."skip-grant-tables"
(sans les guillemets) à la fin de la section [mysqld]
et enregistrez le fichier.skip-grant-tables
.Fais ce que tu veux maintenant !!
PS: Veuillez supprimer skip-grant-tables
du fichier my.cnf
une fois que vous avez terminé, peu importe ce que vous souhaitez faire. ELSE Le serveur MySQL fonctionnera toujours sans droits d'accès.
s'il s'agit d'une fenêtre Windows, la chose la plus simple à faire est d'arrêter les serveurs, d'ajouter skip-grant-tables au fichier de configuration mysql et de redémarrer le serveur.
une fois que vous avez résolu vos problèmes d'autorisation, répétez ce qui précède, mais supprimez l'option skip-grant-tables.
si vous ne savez pas où se trouve votre fichier de configuration, connectez-vous à mysql send SHOW VARIABLES LIKE '%config%'
et l'une des lignes retournées vous indiquera l'emplacement de votre fichier de configuration.
Je suis dans Windows 10, en utilisant le serveur WAMP64. Recherche de my.cnf
et my.ini
. my.ini
trouvé dans C:\wamp64\bin\mariadb\mariadb10.2.14
.
En suivant les instructions des collègues:
my.ini
ouvert dans un éditeur de texte, recherche de [mysqld]
'skip-grant-tables'
à la fin de la section [mysqld]
(mais à l'intérieur de celle-ci)skip-grant-tables
apparaît.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
my.ini
, effacez la ligne 'skip-grant-tables'
, enregistrez le fichier.Maintenant, vous pouvez entrer avec le nouveau mot de passe. Merci à toutes les réponses ici.
Editez le fichier my.ini, ajoutez les tables skip-grant-tables et redémarrez votre serveur mysql:
[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql"
tmpdir = "C:/xampp/tmp"
datadir = "C:/xampp/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"
skip-grant-tables
# Change here for bind listening
# bind-address="127.0.0.1"
# bind-address = ::1