是的,另一个MySql:ERROR 1045(28000):拒绝访问用户’root’@’localhost’(使用密码:YES)

所以我不确定是什么原因造成我的MySql密码加密(升级到Mountain Lion,重新安装ruby / rails(其他问题),或者只是运气不好)但是我们在这里:

登录到mysql很好,但我无法登录到root

Ayman$ mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 96 Server version: 5.5.25 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

当我尝试登录root时:

 Ayman$ mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 

看着用户:

 mysql> CREATE USER root@localhost IDENTIFIED BY 'out22out'; ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation mysql> SELECT USER(),CURRENT_USER(); +-----------------+----------------+ | USER() | CURRENT_USER() | +-----------------+----------------+ | Ayman@localhost | @localhost | +-----------------+----------------+ 1 row in set (0.00 sec) mysql> SELECT USER, HOST FROM mysql.user; ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user' mysql> select user, host from mysql.user; ERROR 1142 (42000): SELECT command denied to user ''@'localhost' for table 'user' mysql> grant all on *.* to Ayman@'%'; ERROR 1045 (28000): Access denied for user ''@'localhost' (using password: NO) mysql> 

我已经尝试重新安装MySql(不确定如何卸载它),停止服务器实例并重新启动它,以及关于右侧无数类似问题的所有其他建议。 我已经在这3天了,这让我很伤心。

任何线索?

您可以使用--skip-grant-tables 启动MySQL (服务器,而不是命令行监视器),这会暂时关闭权限系统。 这将让你进入,更新你的帐户/密码,而没有那些搞砸的权限阻碍。 修复问题后,您可以执行flush privileges; 重新启用权限系统。

好的我用这个网站上的教程想出来了:

我不知道如何运行跳过授权表,如下所示:

 Last login: Wed Aug 22 23:10:42 on console Ayman$ --skip-grant-tables -bash: --skip-grant-tables: command not found Ayman$ mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Ayman$ --skip-grant-tables -bash: --skip-grant-tables: command not found 

这是我用Google搜索Skip Grant Tables的地方,找到了上面列出的教程:

不要认为教程的​​任何初始部分有效:

 Ayman$ # vi /etc/rc.d/init.d/mysql Ayman$ $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 & [1] 302 Ayman$ $bindir/mysqld_safe --skip-grant-tables --datadir=$datadir --pid- file=$server_pid_file $other_args >/dev/null 2>&1 & [2] 303 [1] Exit 127 $bindir/mysqld_safe --datadir=$datadir --pid- file=$server_pid_file $other_args > /dev/null 2>&1 Ayman$ mysql start ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) [2]+ Exit 127 $bindir/mysqld_safe --skip-grant-tables --datadir=$datadir - -pid-file=$server_pid_file $other_args > /dev/null 2>&1 Ayman$ # service mysql start Ayman$ mysql -u root mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Ayman$ mysql 

ERROR 2002(HY000):无法通过套接字’/tmp/mysql.sock’连接到本地MySQL服务器(2)

这里是魔术!:

 Ayman$ mysql -u root mysql Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> UPDATE user SET password=PASSWORD('newpassword') WHERE user='root'; Query OK, 4 rows affected (0.11 sec) Rows matched: 4 Changed: 4 Warnings: 0 mysql> flush privileges -> ; Query OK, 0 rows affected (0.00 sec) 

上面链接中的更多内容无效:

 mysql> service mysql stop -> ; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'service mysql stop' at line 1 mysql> # service mysql stop mysql> # vi /etc/rc.d/init.d/mysql mysql> $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 & -> -> ; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) ERROR: Can't connect to the server mysql> $bindir/mysqld_safe --skip-grant-tables --datadir=$datadir --pid- file=$server_pid_file $other_args >/dev/null 2>&1 &; No connection. Trying to reconnect... ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) ERROR: Can't connect to the server mysql> $bindir/mysqld_safe --skip-grant-tables --datadir=$datadir --pid- file=$server_pid_file $other_args >/dev/null 2>&1 &; No connection. Trying to reconnect... ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) ERROR: Can't connect to the server mysql> $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &; No connection. Trying to reconnect... ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) ERROR: Can't connect to the server 

它还活着!!!!:

 mysql> quit Bye Ayman$ mysql -u root -p Enter password: newpassword Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 25 Server version: 5.5.27 MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

感谢MARC B和StackOverflow社区指出我正确的方向并让这个新手回到游戏中!