MAMP mysql cassé utilisateur root

J'ai lu beaucoup de discussions sur DONC et quelques autres endroits et que vous n'avez pas été capable de réparer mon installation de mysql dans MAMP.

Arrière-plan. J'ai fait modifier ma racine de l'utilisateur de l'autre jour, dans une tentative pour obtenir un service de proximité pour vous connecter correctement. Après le redémarrage de ma machine phpmyadmin dans mamp ne s'affiche plus aucun de mes dbs et montré "Aucun privilège" pour créer une base de données. J'ai essayé beaucoup de choses pour restaurer les privilèges que j'ai lu ici et d'ailleurs en vain. --skip-grant-tables ne semble pas fonctionner. La connexion en tant que root dans le shell je n'ai pas la permission que localhost, mais je ne 127.0.0.1.

show grants for root@localhost;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION

J'ai installé une nouvelle installation de MAMP et copié sur mon DBs. Bien que cela fonctionne, j'ai couru dans les cas où DBs ne présentent pas toutes les tables.

J'ai donc à résoudre l'un des deux problèmes. Je dois soit pour corriger l'installation d'origine ou de faire en sorte que la toutes les tables spectacle pour mon dbs dans mes frais mamp installer.

Leçon à retenir ici est de ne pas être paresseux et de la vis autour de votre utilisateur root en local et il suffit de créer une autre connexion.

Mise à JOUR
Lorsque je me connecte en tant que:

/Applications/MAMP/Library/bin/mysql -uroot -h127.0.0.1 -p
mysql> SHOW GRANTS FOR 'root'@'localhost';
+------------------------------------------------------------------------+
| Grants for root@localhost                                              |
+------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION    | 
| GRANT ALL PRIVILEGES ON `db`.* TO 'root'@'localhost' WITH GRANT OPTION | 
+------------------------------------------------------------------------+

Mais lorsque je me connecte en tant que:

/Applications/MAMP/Library/bin/mysql -uroot -hlocalhost -p
mysql> SHOW GRANTS FOR 'root'@'localhost';
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
mysql> SELECT user();
+----------------+
| user()         |
+----------------+
| root@localhost | 
+----------------+
mysql> SELECT current_user();
+----------------+
| current_user() |
+----------------+
| @localhost     | 
+----------------+

Donc, lorsque je me connecte en tant que localhost, soit par IP ou d'une douille, je suis en quelque sorte pas connecté en tant que root. Je trouve cela très confus?

J'ai résolu ce problème et je suis sur le point de poster une réponse.

OriginalL'auteur bikedorkseattle | 2012-10-17