因为执行了一个错误操作,导致登陆mysql时出现access denied for user 'root'@'localhost' using password yes 错误,按照以下方式解决的问题:
1.首先进入
windows命令行模式,本人的mysql安装在C盘,切换到mysql bin目录下。命令格式如下。
cd C:\program files\mysql\mysql server 5.1\bin
2.停止mysql的服务,敲入下面命令:
C:\Program Files\MySQL\MySQL Server 5.1\bin>mysqld --defaults-file="C:\Program
Files\MySQL\MySQL Server 5.1\my.ini" --console --skip-grant-tables
看到如下结果就说明启动成功了
C代码
Version: '5.1.33-community-log' socket: '' port: 3306 MySQL Community Server
(GPL)
3.再打开一个
dos窗口,同样切换到bin目录下
C代码
C:\Program Files\MySQL\MySQL Server 5.1\bin>
mysql -uroot mysql
显示结果如下:
C代码
Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 2
Server version: 5.1.33-community-log MySQL Community Server (GPL)
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
4.继续下面这个步骤,输入:
mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
mysql> FLUSH PRIVILEGES;
mysql> quit
mysql> mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
到此为止,成功更新了密码。
linux下的解决办法为:
# sudo /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
#sudo /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>