今天好不容易安装好了MYSQL,然后访问phpmyadmin登陆竟然提示ERROR 1045 : Access denied for user'root'@'localhost'(usingpassword:YES)

今天好不容易安装好了MYSQL,然后访问phpmyadmin登陆竟然提示

ERROR 1045 : Access denied for user'root'@'localhost'(usingpassword:YES)

mysql数据库登陆错误#1045:Access denied for user 'root'@'localhost' (using password: YES)

真是郁闷,问题一大堆

用mysql -uroot -p登录时也一样,首先就判断是不是密码输错了。直接用mysql -uroot也登录不进,于是就想重新设一下密码看看,步骤如下:

1.停止mysql服务:使用cmd转到mysql的安装目录输入

net stop mysql

或者直接在服务里点停止

mysql数据库登陆错误#1045:Access denied for user 'root'@'localhost' (using password: YES)


2.以不检查权限的方式登录:

#bin/mysqld_safe --skip-grant-tables &

(进入你安装mysql的目录运行此条命令,比如我的mysql安装在/usr/local/mysql;如果你不想进入安装目录,则可以直接输入

/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &)

或者修改my.ini文件加上一句

skip-grant-tables

mysql数据库登陆错误#1045:Access denied for user 'root'@'localhost' (using password: YES)

然后启动mysql服务

3.用空密码登录,直接按回车,成功登录mysql

mysql -uroot -p

4.手动更新mysql库中的user表从而设置新密码:mysql>

update mysql.user set password=password("你要设置的密码") where user="用户名,这里用root";

5.刷新mysql的系统权限相关表,使密码生效:mysql>

flush privileges;

6.退出:mysql>

exit;

修改my.ini把skip-grant-tables去掉,在前面加#号或直接去掉,

7.重启mysql服务:

net start mysql

再用新密码登录看看,可以正常登录了。

当然这种方法也可以用来解决忘记mysql密码的问题。


------------------------------------分割线------------------------------------------------

网上其他方法

访问首页出现

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in c:InetpubwwwrootclasscoreIBMysql.php on line 51
mysql error:
1045:Access denied for user 'root'@'localhost' (using password: YES)

数据库连接文件里的用户名和密码设的不对
在config.php里改下你mysql的帐户的用户名和密码
帐户用root就得填上root对应的密码

 


错误描述: Mysql中添加用户之后可能出现登录时提示

ERROR 1045 (28000): Access denied for user

的错误.

原因分析: 在mysql.user表中可能出现user为空的记录,如:

mysql> select host,user from user;
+------------------+------+
| host | user |
+------------------+------+
| % | test |
| localhost | |
| localhost | root |
+------------------+------+
3 rows in set (0.00 sec)

解决 办法: 删除这些为空的用户或者更新为其他用户名

删除user.user中值为NULL的,或更新NULL为test

1)delete from user where user is NULL
2)update user set user='test' where user is NULL

意外的情况: 如果上述方法没有效果,依然出现空用户,则可以利用图形化用户client删除.


linux下
开场白:解决LINUX问题是一种乐趣,当然,能遇到问题就是上天赐的享受幸福的机会。
这次使用的是Mandriva2008spring。
因为要搞一个项目,所以需要安装MySql,以往安装MySql都是非常顺利的,尤其MySql提供的rmp包,只需双击下就可以搞定~但不知道什么时候,MYSQL ERROR 1045 (28000): Access denied for user (using password: YES),这个拒绝访问问题变得非常广泛。
百度了一下,没有现成的解决方法,唯有找出其问题所在了。
解决问题思路:
第一步,先使用跳过受权表访问,命令如下:

mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

(当然,在这之前,先停止mysql服务的运行)。
第二步,

mysql -uroot mysql

登录mysql。
第三步,访问mysql数据库下的user表。在我的机器上,

mysql> select * from user;

得到的,竟然是

Empty set (0.00 sec)。

这说明了,我的mysql没有任何可以访问的用户。知道了这问题所在,解决起来就简单了。
第四步,mysql>

 INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'username', PASSWORD(‘yourpassword'), 'Y', 'Y','Y');
 Query OK, 1 row affected, 3 warnings (0.00 sec)

返回成功,没问题。嘿嘿~~~就这么简单。
第五步,测试,再重启下mysql服务,正常登录,成功!!!

提示:mysql系统中的mysql数据库,存储的是系统数据,像这里的user表存储的是用户信息及其访问权限,还有其他,例如你要新建一个数据库mydb,这数据库有用户me管理的话,mysql数据库里面的db表就会存储相关信息。


上一篇:Meta标签技巧:拦截搜索引擎,防止页面被抓取

下一篇:mysql安装常见问题(系统找不到指定的文件、发生系统错误 1067 进程意外终止、服务没有报告任何错误。)

评论列表
发表评论
称呼
邮箱
网址
验证码(*)
热评文章
相关阅读